рабочий код:
import boto3
def lambda_handler(event, context):
ec2 = boto3.client('ec2')
# Get list of regions
regions = ec2.describe_regions().get('Regions',[] )
# Iterate over regions
for region in regions:
print("*************** Checking region -- %s " % region['RegionName'])
reg = region['RegionName']
print(reg)
Выход:
*************** Checking region -- eu-north-1
eu-north-1
*************** Checking region -- ap-south-1
ap-south-1
*************** Checking region -- eu-west-3
eu-west-3
*************** Checking region -- eu-west-2
eu-west-2
*************** Checking region -- eu-west-1
он повторяется и показывает все регионы, но мой код просто завершается с первой итерацией после того, как я пытаюсь описать детали ресурса.
import boto3
def lambda_handler(event, context):
ec2 = boto3.client('ec2')
# Get list of regions
regions = ec2.describe_regions().get('Regions',[] )
# Iterate over regions
for region in regions:
print("*************** Checking region -- %s " % region['RegionName'])
reg = region['RegionName']
print(reg)
print ("+++++++++++++ Starting EC2 Instances now -----------------")
client = boto3.client('ec2', region_name=reg)
response = client.describe_instances()
ошибка вывода:
Response:
{
"errorMessage": "2019-03-14T18:08:00.104Z 5fb67a9a-3bf9-40e3-ad56 Task timed out after 3.00 seconds"
}
Request ID:
"5fb67a9a-3bf9-40e3-ad56"
Function Logs:
START RequestId: 5fb67a9a-3bf9-40e3-ad56 Version: $LATEST
*************** Checking region -- eu-north-1
eu-north-1
+++++++++++++ Starting EC2 Instances now -----------------
*************** Checking region -- ap-south-1
ap-south-1
+++++++++++++ Starting EC2 Instances now -----------------
END RequestId: 5fb67a9a-3bf9-40e3-ad56
REPORT RequestId: 5fb67a9a-3bf9-40e3-ad56-Duration: 3003.21 ms Billed Duration: 3000 ms Memory Size: 128 MB Max Memory Used: 79 MB
2019-03-14T18:08:00.104Z 5fb67a9a-3bf9-40e3-ad56-Task timed out after 3.00 seconds
я дал все разрешения лямбда-роли для доступа к ресурсам. Может ли кто-нибудь помочь мне, что я делаю неправильно и как узнать, в чем ошибка?
Работает после увеличения времени ожидания ... спасибо






Ваш код выполнил итерацию eu-north-1 и ap-south-1 успешно, но затем истекло время ожидания после тайм-аута Lambda по умолчанию, равного 3 секундам. Вам нужно либо ускорить выполнение кода, либо увеличить время ожидания Lambda.
К вашему сведению, настоятельно рекомендуется не увеличивать его до максимального времени ожидания, если вы столкнетесь с проблемой, это может привести к тому, что он будет работать намного дольше, чем необходимо. Рад, что это сработало, хотя :)
Lambda, кажется, истекает, можете ли вы добавить try/catch вокруг вызова client.describe_instances()? И, возможно, немного увеличьте время ожидания, посмотрите, есть ли у вас какие-либо ошибки