Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 跨多个帐户运行aws cli的方法_Amazon Web Services_Aws Cli_Amazon Ami - Fatal编程技术网

Amazon web services 跨多个帐户运行aws cli的方法

Amazon web services 跨多个帐户运行aws cli的方法,amazon-web-services,aws-cli,amazon-ami,Amazon Web Services,Aws Cli,Amazon Ami,我试图找出10个不同帐户中运行非AmazonAMI映像的所有EC2实例。以下CLI命令提供了所有AMI的列表: aws ec2 describe-instances --output text --query 'Reservations[*].Instances[*].[ImageId]' | sort | uniq -c 我想我可以进一步修改它以获得所有非AmazonAMI,但是有没有一种方法可以在一次调用中跨10个不同的帐户运行它 有没有一种方法可以在一次通话中跨10个不同的帐户运行此功能

我试图找出10个不同帐户中运行非AmazonAMI映像的所有EC2实例。以下CLI命令提供了所有AMI的列表:

aws ec2 describe-instances --output text --query 'Reservations[*].Instances[*].[ImageId]' | sort | uniq -c
我想我可以进一步修改它以获得所有非AmazonAMI,但是有没有一种方法可以在一次调用中跨10个不同的帐户运行它

有没有一种方法可以在一次通话中跨10个不同的帐户运行此功能


不,那是不可能的。您需要编写一个循环,在每个帐户上迭代,为每个帐户调用一次
ec2 descripe instances

下面是一个脚本,可以使用AMI查找所有者不在亚马逊的实例:

导入boto3
ec2_client=boto3.client('ec2',region_name='ap-Southast-2')
实例=ec2_客户端。描述_实例()
#获取一组用于所有实例的AMI
images=set(实例中r的i['ImageId']r['instances']的i['Reservations']
#找出哪些是亚马逊所有的
amis=ec2_客户端。描述_图像(ImageID=list(图像),所有者=['amazon'])
amazon_amis=[i['ImageId']表示amis['Images']]
#哪些实例不使用Amazon图像?
非亚马逊实例=[(i['InstanceId',i['ImageId'])对于实例中的r['Reservations']对于r中的i['instances'],如果i['ImageId']不在亚马逊实例中]
对于非亚马逊实例中的i:
打印(f“{i[0]}使用{i[1]}”)
需要注意的几点:

  • 不推荐使用的AMI可能没有可访问的信息,因此可能被标记为非Amazon
  • 如前所述,此脚本仅适用于一个区域。您可以将其更改为通过区域循环
  • 正如所写的,这个脚本只在一个帐户上工作。您需要一种方法来循环其他帐户的凭据

我编写的cli命令是否良好?或者,为了找到非amazon ami,可以更好地编写此文件吗?我不确定如何在
ec2 descripe instances
调用中按ami所有者进行筛选,因为响应中不包含该信息。我不需要按所有者进行筛选。我只想知道AMI是亚马逊图片还是定制的。有更好的方法吗?所有者是如何检查的。您将检查Amazon是否是所有者。这没有所有者:aws ec2描述实例。我只在通过linux或windows搜索时获得所有者。我遗漏了什么吗?在Python中,使用boto3可能会更简单。