我开始使用python和boto3编写lambda函数,
我设法分别在每个地区工作,但我看不到如何在几个地区一起工作。
这是我宣布我的客户的方式:
region= 'ap-southeast-2'
ec2 = boto3.client('ec2', region_name=region)
如果我不给它一个区域,它将在您创建了lambda函数的区域上运行,这是我不希望的。
有人做过吗?
答案 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'])
希望这会有所帮助。谢谢!