正在尝试从boto3获取快照ARN



我最终试图获取/构建快照的ARN,以便将其与详细的计费报告相匹配。快照在详细计费报告中记录的ResourceId示例如下所示。

arn:aws:ec2:us-east-2:210987654321:snapshot/snap-12345678901234567

boto3中的describe_snapshots()方法只返回此信息

{
'Description': 'Created by CreateImage(i-12345678901234567) for ami-12345678901234567 from vol-12345678901234567', 
'Encrypted': False, 
'OwnerId': '210987654321', 
'Progress': '100%', 
'SnapshotId': 'snap-12345678901234567', 
'StartTime': datetime.datetime(2020, 10, 22, 16, 24, 14, 564000, tzinfo=tzlocal()), 
'State': 'completed', 
'VolumeId': 'vol-12345678901234567', 
'VolumeSize': 8
}

最终,我唯一缺少的信息是确定快照是在哪个区域创建的。如果我能在某个地方找到这些信息,我就可以自己构建ARN。

我已经考虑过通过获取与快照关联的卷来查找区域,但是,快照似乎可以在没有卷的情况下存在,因此不是检索此信息的理想方法。如有任何建议,我们将不胜感激。

基于注释。

describe_snapshots仅返回当前区域的快照。因此,通过明确设置区域,或使用boto3中的默认区域,可以获得构建ARN所需的区域。

要从多个区域获取快照,可以迭代感兴趣的区域,并使用boto3.client从不同区域获取快照:

ec2 = boto3.client('ec2', region_name='<region-name>')

最新更新