结合使用PowerShell的Where-Object -Filterscript和AWS EC2标签来过滤资源

时间:2019-09-03 09:58:39

标签: amazon-web-services powershell filtering

如何使用Where-Object -Filterscript根据Tag和相应的Tag值查找AWS资源?

如果我运行命令来查看标签:

(Get-Ec2Address -region $region).Tags

我收到如下输出:

  

键值

     

---

     

环境开发

     

项目

     

姓名等等

因此,如果我要查找项目标记具有与“ project”匹配的值的所有EIP资源,该怎么办?我正在尝试:

 Get-EC2Address -region $region | Where-Object -FilterScript {
     $_.Tags.Key -match "project" -and `
     $_.Tags.Value -like "*$project*"
}

但这只是向我显示具有键“项目”和值“项目”的EIP,而不是EIP具有键“项目”和CORRESPONDING值是“项目”的地方。

例如

Get-EC2Address -region $region | Where-Object -FilterScript {
     $_.Tags.Key -match "project" -and `
     $_.Tags.Value -like "*dev"
}
尽管我们没有名为“ dev”的项目,但

仍将返回结果

在过滤时如何链接键和值?

1 个答案:

答案 0 :(得分:0)

您总是可以这样做

Get-EC2Address -region $region | Where-Object -FilterScript {$_.Tags.Key -match "project"} | Where-Object -FilterScript {$_.Tags.Value -like "*$project*"}

我没有AWS环境来测试您的代码。 ^^效率不高,但应该可以。