首页 > 解决方案 > 使用 python 在所有区域中查找正在运行的 ec2 实例

问题描述

我想找到所有区域中所有正在运行的 Ec2 机器实例。

我试过执行以下代码。

导入 boto3

def lambda_handler(event,context):
    regions=['us-east-1','ap-south-1']
    for j in regions:    
        ec2client = boto3.client('ec2',region_name=j)
        response = ec2client.describe_instances()
        for reservation in response["Reservations"]:
            for instance in reservation["Instances"]:
                if instance['State']['Name'] == 'running':
                    print(instance["InstanceId"])

该代码仅针对列表“us-east-1”中的第一个区域执行并返回正在运行的实例,但为下一个区域提供以下错误。

"errorMessage:" 任务在 3.00 秒后超时

标签: pythonamazon-web-servicesaws-lambdaboto3

解决方案


看起来您正在 Lambda 函数中运行此代码。默认超时为 3 秒,因此您只需在 AWS 控制台中或以编程方式增加此值:

aws lambda update-function-configuration --function-name my-function --timeout <seconds>

更多信息,请访问https://docs.aws.amazon.com/lambda/latest/dg/resource-model.html


推荐阅读