[英]How to filter with value only regardless the name in AWS CLI
我的 EC2 實例有許多帶有期望值 EBM 的標簽。 這個值可能在不同的名稱中,有時在標簽:名稱下,有時在標簽:XXX 下,我嘗試了以下查詢但它沒有用:
aws --region sa-east-1 ec2 describe-security-groups --filters 'Name=*,Values=*EBM*'
調用 DescribeSecurityGroups 操作時發生錯誤 (InvalidParameterValue):過濾器“*”無效
知道如何使 Name as wild card 與值匹配嗎?
我試過這個但沒有用:
aws --region sa-east-1 ec2 describe-security-groups --filters 'Name=*,Values=*EBM*'
調用 DescribeSecurityGroups 操作時發生錯誤 (InvalidParameterValue):過濾器“*”無效
我也試過這個但沒有用:
aws --region sa-east-1 ec2 describe-security-groups --filters 'Name=*.*,Values=*EBM*'
這是不可能的。 您必須先獲取所有規則,然后再自己進行過濾。
使用describe-tags
要--filter
with a value 而不管 AWS CLI 中的名稱,您只需使用"Name=value,Values=*tg*"
即可。
Name=value
以便僅查看值字段。Value=*EBM*
它將獲取所有具有EBM
的值,無論前綴或后綴如何。 但是,您可以將--filters
與--query
選項結合使用以過濾 output 並僅顯示特定字段。 例如,要只顯示tag
名稱和values
,可以使用以下命令:
$ aws ec2 describe-tags --filters "Name=value,Values=*tg*" --query 'Tags[*].{Key_Name: Key, VauleOfKey: Value}' --profile dev
[
{
"Key_Name": "SSM_Managed",
"VauleOfKey": "Stg"
},
{
"Key_Name": "SSM_Managed",
"VauleOfKey": "Stg"
},
{
"Key_Name": "SSM_Managed",
"VauleOfKey": "Stg"
},
{
"Key_Name": "SSM_Managed",
"VauleOfKey": "Stg"
},
{
"Key_Name": "SSM_Managed",
"VauleOfKey": "Stg"
},
{
"Key_Name": "SSM_Managed",
"VauleOfKey": "Stg"
},
{
"Key_Name": "SSM_Managed",
"VauleOfKey": "Stg"
},
{
"Key_Name": "SSM_Managed",
"VauleOfKey": "Stg"
},
{
"Key_Name": "SSM_Managed",
"VauleOfKey": "Stg"
}
]
要么
您可以將其作為表格獲取,以提高可讀性。
$ aws ec2 describe-tags --filters "Name=value,Values=*tg*" --query 'Tags[*].{Key_Name: Key, VauleOfKey: Value}' --profile dev --output table
-------------------------------
| DescribeTags |
+--------------+--------------+
| Key_Name | VauleOfKey |
+--------------+--------------+
| SSM_Managed | Stg |
| SSM_Managed | Stg |
| SSM_Managed | Stg |
| SSM_Managed | Stg |
| SSM_Managed | Stg |
| SSM_Managed | Stg |
| SSM_Managed | Stg |
| SSM_Managed | Stg |
| SSM_Managed | Stg |
+--------------+--------------+
為了在使用上面之前更明確,您可以使用以下命令更簡單。 它將返回所有值為“VALUE”的標簽,無論標簽名稱如何。:
aws ec2 describe-tags --filters "Name=value,Values=VALUE"
如果你想進一步過濾結果,你可以通過將它們添加到 --filters 標志的列表中來包含額外的過濾器,用逗號分隔。 例如,要僅返回與安全組關聯的值為“VALUE”的標簽,您可以使用以下命令:
aws ec2 describe-tags --filters "Name=value,Values=VALUE","Name=resource-type,Values=security-group"
編輯:
使用包含所有值*SecGrpec2*
describe-security-groups
,然后獲取這些值所屬的安全組的名稱。
$ aws ec2 describe-security-groups --filters "Name=tag-value,Values=*SecGrpec2*" --profile dev | jq -r '.SecurityGroups[].GroupName'
EC2 - SC101
EC2 - SD102
EC2 - ST101
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.