import boto3
ecs = boto3.client('ecs', region_name='us-east-1')
ec2 = boto3.client('ec2', region_name='us-east-1')
rc = ecs.list_clusters()
for cluster in rc['clusterArns']:
ci = ecs.list_container_instances(cluster=cluster)
if len(ci['containerInstanceArns']) > 0:
r2 = ecs.describe_container_instances(
cluster=cluster,
containerInstances=ci['containerInstanceArns'])
ids = [x['ec2InstanceId'] for x in r2['containerInstances']]
r3 = ec2.describe_instances(InstanceIds=ids)
for r in r3['Reservations']:
for i in r['Instances']:
print("{0}: instance {1}, state {2}, AMI {3}, private IP {4}, public IP {5}".format(
cluster.split('/')[-1],
i['InstanceId'],
i['State']['Name'],
i['ImageId'],
i['PrivateIpAddress'] if 'PrivateIpAddress' in i else 'n/a',
i['PublicIpAddress'] if 'PublicIpAddress' in i else 'n/a'))
{{1}给你一个容器的响应。在
然后,您可以将其作为
containerInstances
传递给describe_container_instances,以获得containerInstances[*].ec2InstanceId
中容器实例及其底层EC2实例ID的列表。在然后,您可以将这些EC2实例id作为
InstanceIds
传递给describe_instances,这将为您提供它们的IP地址。在也许有一种更简洁的方法可以做到这一点,但我并没有立即意识到这一点。在
下面是一个例子:
这将产生如下输出:
^{pr2}$相关问题 更多 >
编程相关推荐