使用 powershell 按 TAG 值列出 AWS 实例
List of AWS instances by TAG value using powershell
我们正在标记我们的 AWS 实例,我想通过 TAG 引用检索我们所有实例(ELB、S3、EC2、安全组)的列表。例如,我们一直用这样的方式标记我们的资源: { "Key": "Project", "Value": "bananas" },
我们怎样才能获得能量-shell 我们所有包含 TAG 项目值 "bananas" 的资源的列表?
我能够使用以下脚本获取我所有的 EC2:
$instance = 获取 EC2Instance
-Filter @( @{name='tag:Project'; values="bananas"};
@{name='instance-state-code'; values = 16} )
| Select-Object -ExpandProperty instances #获取实例 ID 忽略任何终止的实例
$实例 |导出 CSV "C:\ec2.csv"
但我不确定如何使用一个脚本获取我所有标记的资源。
查看 AWS Resource Groups Tagging API cmdlet——它们相对较新,因此您可能需要将适用于 PowerShell 的 AWS 工具更新到最新版本才能使用它们。
例子
下面的示例为标签 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