使用PowerShell通过TAG值列出AWS实例

时间:2017-07-12 13:17:44

标签: powershell amazon-web-services aws-powershell aws-resource-group

我们正在调查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"

但我不确定如何使用一个脚本获取所有标记资源。

1 个答案:

答案 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

进一步阅读