猿问

Python boto3-如何跨区域工作

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


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


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


region= 'ap-southeast-2'

ec2 = boto3.client('ec2', region_name=region)

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


以前有人做过吗?


斯蒂芬大帝
浏览 194回答 2
2回答

慕标5832272

如果您不为其指定区域,它将使用您运行 Lambda 函数的区域。如果您想通过 Boto3 在多个区域进行 AWS API 调用,您必须为每个区域创建一个客户端对象,并为每个区域进行单独的 API 调用。

慕尼黑8549860

在这里,我列出了跨多个区域可用的所有实例。你可以做类似的事情,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'])希望这可以帮助。谢谢!
随时随地看视频慕课网APP

相关分类

Python
我要回答