簡體   English   中英

如何僅使用值進行過濾,而不管 AWS CLI 中的名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM