2

我们正在标记我们的 AWS 实例,我想通过 TAG 引用检索我们所有实例(ELB、S3、EC2、安全组)的列表。例如,我们一直用这样的东西标记我们的资源:{“Key”:“Project”,“Value”:“bananas”},

我们如何通过 power-shell 获取包含 TAG Project 值“bananas”的所有资源的列表?

我能够使用以下脚本获取我所有的 EC2:

$instance = 获取 EC2Instance -Filter @( @{name='tag:Project'; values="bananas"}; @{name='instance-state-code'; values = 16} ) | Select-Object -ExpandProperty instances #Get instance ID 忽略任何终止的实例 $instance | 导出-CSV "C:\ec2.csv"

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

4

1 回答 1

5

查看AWS Resource Groups Tagging API cmdlet - 这些是相对较新的,因此您可能必须将适用于 PowerShell 的 AWS 工具更新到最新版本才能使用它们。

例子

下面的示例调用Get-RGTResource标签 Key=Project、Value=Bananas,并过滤对检索到的所有 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

延伸阅读

于 2017-07-12T21:29:56.743 回答