我在AWS上有几个与同一个IAM角色关联的实例。我正在寻找一个返回这些实例的代码
根据此文档:http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html,我发现有一个可用的过滤器iam-instance-profile.arn
。我只是不确定如何使用它,或者这是我应该使用的。
这是一个按标签过滤实例的示例。
conn = boto.ec2.connect_to_region('ap-southeast-1')
reservations = conn.get_all_instances(filters={"tag:Name": "my-instance-1"});
for reservation in reservations:
instance = reservation.instances[0]
除了使用IAM角色作为过滤器之外,我还想做类似的事情。
另一件事 - 上面的示例conn.get_all_instances(filters={"tag:Name": "my-instance-1"});
会返回预订。我想得到实例而不必通过预订。例如:conn.get_only_instances(instance_ids=['i-cc186913'])
返回实例。
我可以拥有过滤器(IAM角色)并返回ONLY实例(没有通过预订)的最佳方式是什么?
答案 0 :(得分:0)
为该角色传递您的实例配置文件ARN(可以从IAM仪表板获取,也可以构建它)。例如:
conn.get_only_instances(filters={"iam-instance-profile.arn": "arn:aws:iam::<your-account-number>:instance-profile/<your-role-name>"})
它将返回一个实例列表,你可以遍历它。
>>> conn.get_only_instances(filters={"iam-instance-profile.arn":"arn:aws:iam::123456781221:instance-profile/stackoverflowRole"})
[Instance:i-8ba223ab]