AWS Lambda python描述异常

时间:2019-03-14 18:16:17

标签: python amazon-web-services aws-lambda

工作代码:

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

我已授予lambda角色所有访问权限。 谁能帮助我我在做什么错以及如何知道错误所在?

1 个答案:

答案 0 :(得分:1)

您的代码成功地迭代了eu-north-1ap-south-1,但是在默认的Lambda超时3秒后超时。您需要使代码运行更快或延长Lambda超时。

  1. 转到您的Lambda console
  2. 找到您的功能并打开它
  3. 向下滚动并在“基本设置”下查找“超时”
  4. 延长超时时间(当前最长为15分钟)
  5. 点击顶部的保存