def get_partition_for_region(session):
# based on https://github.com/boto/botocore/pull/1715
region_name = session.region_name
partitions = session.get_available_partitions()
for partition in partitions:
regions = session.get_available_regions('stepfunctions', partition)
if region_name in regions:
return partition
# use the default aws partition in case nothing is found
return 'aws'
partition = get_partition_for_region(boto3.Session())
sts = boto3.client('sts')
region = boto3.Session().region_name
instance_id='id-3324234'
account_id = sts.get_caller_identity()['Account']
instance_arn=f"arn:{partition}:ec2:{region}:{account_id}:instance/{instance_id}"
print(instance_arn)
您可以自己重新创建它:
arn:aws:ec2:<REGION>:<ACCOUNT_ID>:instance/<instance-id>
为此,我认为您甚至可以使用*as和<;帐户ID>;,它会起作用的
有关更多信息,请参见此question
实际上,实例['Reservations'][0]['instances']可能没有所有实例。实例按安全组分组在一起。不同的安全组意味着将有许多列表元素。要获取该区域中的每个实例,需要使用下面的代码
注意:['Reservations'][0]['Instances']没有列出所有实例,它只提供按第一个安全组分组的实例。如果有许多组,则无法获得所有实例
你可以自己构建它。简言之,它是:
但要学究式地获得AWS分区,这将是:
相关问题 更多 >
编程相关推荐