我们正在调查AWS实例,我想通过TAG参考检索所有实例(ELB,S3,EC2,安全组)的列表。例如,我们始终使用以下内容标记资源: {" Key":" Project", "价值":"香蕉" },
我们如何通过power-shell获取包含TAG项目值的所有资源列表"香蕉"?
我能够使用以下脚本获取所有EC2:
$ instance = Get-EC2Instance
-Filter @( @{name='tag:Project'; values="bananas"};
@{name='instance-state-code'; values = 16} )
| Select-Object -ExpandProperty实例#Get实例ID忽略任何已终止的实例
$ instance | Export-CSV" C:\ ec2.csv"
但我不确定如何使用一个脚本获取所有标记资源。
答案 0 :(得分:1)
查看AWS Resource Groups Tagging API cmdlet - 这些相对较新,因此您可能需要将AWS Tools for PowerShell更新为最新版本才能使用它们。
以下示例为标记Key = Project,Value = Bananas调用Get-RGTResource
,并过滤对检索到的所有ResourceARN的响应。 ResourceARN是每个AWS资源的唯一标识符,您可以将这些标识用作呼出其他AWS服务的起点,以获取有关每个关联资源的更多详细信息。
(Get-RGTResource -TagFilter @{Key="Project"; Values = @("bananas")}).ResourceARN
arn:aws:ec2:us-east-1:<accountid>:instance/i-abcd1234
arn:aws:ec2:us-west-2:<accountid>:vpc/vpc-abcd1234
arn:aws:ec2:us-east-2:<accountid>:security-group/sg-abcd1234
arn:aws:elasticloadbalancing:us-east-1:<accountid>:loadbalancer/abcd1234
arn:aws:elasticmapreduce:us-east-1:<accountid>:cluster/abcd1234