0
그래서 내가 ec2 인스턴스를 시작하는이 boto3 스크립트가 있습니다. 그러나이 람다 함수를 실행할 때 describe_instance_status 함수는 빈 InstanceStatus 배열을 반환합니다. 그래서 프로그램은 인덱스의 범위를 말한 후에 종료됩니다. 어떤 제안?boto3 문제 ec2 인스턴스 상태 확인
import boto3
from time import sleep
region = 'your region name'
def lambda_handler(event, context):
cye_production_web_server_2 = 'abcdefgh'
ec2 = boto3.client('ec2',region)
start_response = ec2.start_instances(
InstanceIds=[cye_production_web_server_2, ],
DryRun=False
)
print(
'instance id:',
start_response['StartingInstances'][0]['InstanceId'],
'is',
start_response['StartingInstances'][0]['CurrentState']['Name']
)
status = None
counter = 5
while (status != 'ok' and counter > 0):
status_response = ec2.describe_instance_status(
DryRun=False,
InstanceIds=[cye_production_web_server_2, ],
)
status = status_response['InstanceStatuses'][0]['SystemStatus'] ['Status']
sleep(5) # 5 second throttle
counter=counter-1
print(status_response)
print('status is', status.capitalize())
람다 (cloudwatch) 로그에서 오류 메시지를 확인 했습니까? – helloV
목록 색인이 범위를 벗어남 : IndexError 추적 (가장 최근 호출 마지막) : 파일 "/var/task/lambda_function.py", 줄 31, lambda_handler 상태 = status_response [ 'InstanceStatuses'] [0] [ 'SystemStatus '] ['Status '] IndexError : 목록 색인이 범위를 벗어납니다. –
이 스크립트가 독립 실행 형 스크립트로 작동 했습니까? – helloV