Python boto3-如何在跨区域上工作

时间:2018-12-30 16:30:10

标签: python boto3

我开始使用python和boto3编写lambda函数,

我设法分别在每个地区工作,但我看不到如何在几个地区一起工作。

这是我宣布我的客户的方式:

region= 'ap-southeast-2'
ec2 = boto3.client('ec2', region_name=region)

如果我不给它一个区域,它将在您创建了lambda函数的区域上运行,这是我不希望的。

有人做过吗?

2 个答案:

答案 0 :(得分:1)

如果不给它一个区域,它将使用运行Lambda函数的区域。

如果您想通过Boto3在多个区域中进行AWS API调用,则必须为每个区域创建一个客户端对象,并为每个区域进行单独的API调用。

答案 1 :(得分:0)

在这里,我列出了多个区域中所有可用的实例。

您可以做类似的事情,

1。列出所有可用区域。

    client = boto3.client('ec2')


    def get_all_regions():
        all_regions = [ region['RegionName'] for region 
        inclient.describe_regions['Regions']]
        return all_regions

    regions_arr = []
    regions = get_all_regions()

2。将结果附加到python列表

    for each_reg in regions:
        regions_arr.append(each_reg)

3。遍历python列表中的每个区域,并为其设置region_name属性。

    for x in range(0, len(regions_arr)):
         client_2 = boto3.client('ec2', region_name=regions_arr[x])
         response = client_2.describe_instance_status()

         for x in response['InstanceStatuses']:
              print(x['InstanceId'])

希望这会有所帮助。谢谢!