資源群組的服務組態 - AWS Resource Groups

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

資源群組的服務組態

資源群組可讓您以單位形式管理AWS資源集合。一些AWS服務通過對該組的所有成員執行請求的操作來支持這一點。這類服務可以將要套用至群組成員的設定儲存為組,採用附加至群組的 JSON 資料結構形式。

本主題說明支援AWS服務的可用組態設定。

如何存取附加至資源群組的服務組態

支援服務連結群組的服務通常會在您使用該服務提供的工具 (例如該服務的管理主控台或其AWS CLI和 AWS SDK 作業) 時,為您設定組態。有些服務會完全管理其服務連結群組,除非主控台或擁有AWS服務提供的命令允許,否則您無法以任何方式修改這些服務。不過,在某些情況下,您可以使用 AWS SDK 或其AWS CLI對等項目中的下列 API 作業與服務設定互動:

服務組態的 JSON 語法

資源群組可以包含定義服務特定設定的組,這些設定可套用至屬於該群組成員的資源。

一個配置表示為一個 JSON 對象。在最頂層,配置是組配置項的數組。每個群組組態項目都包含兩個元素:一個Type用於組態,以及由該類型Parameters定義的一組。每個參數都包含一個或多個Name和一個或多個陣列Values。下列含預留位置的範例顯示單一範例資源類型之組態的基本語法。此範例顯示具有兩個參數的型別,每個參數都有兩個值。下一節將討論實際的有效類型、參數和值。

{ "Configuration": [ { "Type": "configuration-type", "Parameters": [ { "Name": "parameter1-name", "Values": [ "value1", "value2" ] }, { "Name": "parameter2-name", "Values": [ "value3", "value4" ] } ] } ] }

支援的組態類型和參數

Resource Groups 支援使用下列組態類型。每個組態類型都有一組對該類型有效的參數。

AWS::ResourceGroups::Generic

此組態類型會指定對資源群組強制執行成員資格需求的設定,而不是為AWS服務配置特定資源類型的行為。需要此組態類型的服務連結群組會自動新增,例如AWS::EC2::CapacityReservationPoolAWS::EC2::HostManagment類型。

下列項Parameters目對AWS::ResourceGroups::Generic服務連結群組Type有效。

  • allowed-resource-types

    此參數指定資源群組只能包含指定類型的資源。

    值的資料類型:字串

    允許的值:

    • AWS::EC2::Host— 當服務組態也包含 of 類型時,需要Configuration具有此參數和值Configuration的 A AWS::EC2::HostManagement。這可確保群HostManagement組只能包含 Amazon EC2 專用主機。

    • AWS::EC2::CapacityReservation— 當服務組態也包含類型Configuration項目時,需要Configuration具有此參數和值的 A AWS::EC2::CapacityReservationPool。這可確保群CapacityReservation組只能包含 Amazon EC2 容量保留容量。

    必要:以附加至資源群組的其他Configuration元素為基礎的條件式。請參閱上一個項目以瞭解允許的值

    下列範例將群組成員限制為僅使用 Amazon EC2 主機執行個體。

    { "Configuration": [ { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": ["AWS::EC2::Host"] } ] } ] }
  • deletion-protection

    此參數指定除非資源群組不包含任何成員,否則無法刪除該資源群組。如需詳細資訊,請參閱《L icense Manager 使用指南》中的刪除主機資源群組

    值的數據類型:字符串數組

    允許的值:唯一允許的值是[ "UNLESS_EMPTY" ](值必須為大寫)。

    必要:以附加至資源群組的其他Configuration元素為基礎的條件式。只有當資源群組也具有的另一個Configuration元素時,才需要此參TypeAWS::EC2::HostManagement

    下列範例會啟用群組的刪除保護,除非群組沒有成員。

    { "Configuration": [ { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "deletion-protection", "Values": [ "UNLESS_EMPTY" ] } ] } ] }

AWS::AppRegistry::Application

Configuration類型指定資源群組代表由建立的應用程式AWS Service Catalog AppRegistry。

此類型的資源群組由 AppRegistry 服務完全管理,除了使用提供的工具以外,使用者無法建立、更新或刪除 AppRegistry。

注意

由於此類型的資源群組是由使用者自動建立AWS和維護,而不是由使用者管理,因此這些資源群組不會計入您可在中建立的資源群組數目上限的配額限制AWS 帳戶。

如需詳細資訊,請參閱 Service Catalog 使用指南 AppRegistry中的使用。

AppRegistry 建立此類型的服務連結資源群組時,也會自動為與應用程式相關聯的每個AWS CloudFormation堆疊建立個別的額外AWS CloudFormation服務連結群組

AppRegistry 自動為此類型所建立的服務連結群組命名,AWS_AppRegistry_Application-後面加上應用程式名稱的前置詞:AWS_AppRegistry_Application-MyAppName

AWS::AppRegistry::Application服務連結群組類型支援下列參數。

  • Name

    此參數指定使用者在中建立應用程式時所指派的易記名稱 AppRegistry。

    值的資料類型:字串

    允許的值: AppRegistry 服務允許用於應用程式名稱的任何文字字串。

    必要:是

  • Arn

    此參數指定由 AppRegistry指派之應用程式的 Amazon 資源名稱 (ARN) 路徑。

    值的資料類型:字串

    允許的值:有效的 ARN。

    必要:是

注意

若要變更任何這些元素,您必須使用 AppRegistry 主控台或該服務的 AWS SDK 和AWS CLI作業來修改應用程式。

此應用程式資源群組會自動將針對與 AppRegistry 應用程式相關聯之AWS CloudFormation堆疊所建立的資源群組納入為群組成員。您可以使用此ListGroupResources作業來查看這些子群組。

下列範例顯示AWS::AppRegistry::Application服務連結群組的設定區段。

{ "Configuration": [ { "Type": "AWS::AppRegistry::Application", "Parameters":[ { "Name": "Name", "Values": [ "MyApplication" ] }, { "Name": "Arn", "Values": [ "arn:aws:servicecatalog:us-east-1:123456789012:/applications/<application-id>" ] } ] } ] }

AWS::CloudFormation::Stack

Configuration類型指定該組表示AWS CloudFormation堆棧,其成員是該堆棧創建的AWS資源。

當您將AWS CloudFormation堆疊與 AppRegistry 服務產生關聯時,系統會自動為您建立此類型的資源群組。除非使用提供的工具,否則您無法建立、更新或刪除這些群組 AppRegistry。

AppRegistry 自動為此類型所建立的服務連結群組命名,AWS_CloudFormation_Stack-後面加上堆疊名稱的前置詞:AWS_CloudFormation_Stack-MyStackName

注意

由於此類型的資源群組是由使用者自動建立AWS和維護,而不是由使用者管理,因此這些資源群組不會計入您可在中建立的資源群組數目上限的配額限制AWS 帳戶。

如需詳細資訊,請參閱 Service Catalog 使用指南 AppRegistry中的使用。

AppRegistry 針對您與 AppRegistry 應用程式相關聯的每個AWS CloudFormation堆疊,自動建立此類型的服務連結資源群組。這些資源群組會成為 AppRegistry應用程式之父項資源群組的子項成員。

此AWS CloudFormation資源群組的成員是建立為堆疊一部分的AWS資源。

AWS::CloudFormation::Stack服務連結群組類型支援下列參數。

  • Name

    此參數指定使用者在建立AWS CloudFormation堆疊時所指派之堆疊的易記名稱。

    值的資料類型:字串

    允許的值:AWS CloudFormation服務允許用於堆疊名稱的任何文字字串。

    必要:是

  • Arn

    此參數指定中附加至應用程式之AWS CloudFormation堆疊的 Amazon 資源名稱 (ARN) 路徑。 AppRegistry

    值的資料類型:字串

    允許的值:有效的 ARN。

    必要:是

注意

若要變更任何這些元素,您必須使用 AppRegistry 主控台或同等的 AWS SDK 和AWS CLI作業來修改應用程式。

下列範例顯示AWS::CloudFormation::Stack服務連結群組的設定區段。

{ "Configuration": [ { "Type": "AWS::CloudFormation::Stack", "Parameters":[ { "Name": "Name", "Values": [ "MyStack" ] }, { "Name": "Arn", "Values": [ "arn:aws:cloudformation:us-east-1:123456789012:stack/MyStack/<stack-id>" ] } ] } ] }

AWS::EC2::CapacityReservationPool

Configuration類型指定資源群組代表群組成員所提供的一般容量集區。此資源群組的成員必須是 Amazon EC2 容量保留。資源群組可包含您在帳戶中擁有的產能保留,以及使用從其他帳號與您共用的產能保留AWS Resource Access Manager。這可讓您使用此資源群組做為容量保留參數的值來啟動 Amazon EC2 執行個體。執行此操作時,執行個體會使用群組中的可用保留容量。如果資源群組沒有可用容量,則執行個體會以集區外的獨立隨需執行個體的形式啟動。如需詳細資訊,請參Amazon EC2 Linux 執行個體使用者指南中的使用容量保留群組

如果您使用此類型的Configuration項目設定服務連結資源群組,則也必須使用下列值指定個別Configuration項目:

  • 具有一個參數的AWS::ResourceGroups::Generic類型:

    • 參數allowed-resource-types和的單一值AWS::EC2::CapacityReservation。這可確保只有 Amazon EC2 容量保留可以成為資源群組的成員。

群組設定中的AWS::EC2::CapacityReservationPool項目不支援任何參數。

下面的例子顯示了這樣的組的Configuration部分是什麼樣子。

{ "Configuration": [ { "Type": "AWS::EC2::CapacityReservationPool" }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::CapacityReservation" ] } ] } ] }

AWS::EC2::HostManagement

此識別碼指定 Amazon EC2 主機管理的設定AWS License Manager,並針對群組的成員強制執行。如需詳細資訊,請參閱中的主機資源群組AWS License Manager

如果您使用此類型的Configuration項目設定服務連結資源群組,則也必須使用下列值指定個別Configuration項目:

  • 具有參數allowed-resource-types且單一值為的AWS::ResourceGroups::Generic類型AWS::EC2::Host。這可確保只有 Amazon EC2 專用主機可以成為群組的成員。

  • 具有參數deletion-protection且單一值為的AWS::ResourceGroups::Generic類型UNLESS_EMPTY。如此可確保除非群組為空,否則無法刪除群組。

AWS::EC2::HostManagement服務連結群組類型支援下列參數。

  • auto-allocate-host

    此參數指定執行處理是啟動到特定專用主機,還是啟動至具有相符組態的任何可用主機。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的了解自動放置和親和性

    值的資料類型:布林

    允許的值:「真」或「假」(必須是小寫)。

    必要:否

    { "Configuration": [ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "auto-allocate-host", "Values": [ "true" ] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::Host" ] }, { "Name": "deletion-protection", "Values": [ "UNLESS_EMPTY" ] } ] } ] }
  • auto-release-host

    此參數指定群組中的專用主機是否在上次執行的執行個體終止後自動釋放。如需詳細資訊,請參閱 Amazon EC2 執行個體使用者指南中的釋放專用機。

    值的資料類型:布林

    允許的值:「真」或「假」(必須是小寫)。

    必要:否

    { "Configuration": [ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "auto-release-host", "Values": [ "false" ] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::Host" ] }, { "Name": "deletion-protection", "Values": [ "UNLESS_EMPTY" ] } ] } ] }
  • allowed-host-families

    此參數指定做為此群組成員的例證可使用哪些例證類型族群。

    值的數據類型:字符串數組。

    允許的值:每個都必須是有效的 Amazon EC2 執行個體類型系列識別碼C4,例如M5P3dn、、或R5d

    必要:否

    下列範例組態項目指定啟動的執行個體只能是 C5 或 M5 執行個體類型系列的成員。

    { "Configuration": [ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "allowed-host-families", "Values": ["c5", "m5"] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": ["AWS::EC2::Host"] }, { "Name": "deletion-protection", "Values": ["UNLESS_EMPTY"] } ] } ] }
  • allowed-host-based-license-configurations

    此參數指定您要套用至群組成員的一或多個以核心/通訊端為基礎的授權組態的 Amazon 資源名稱 (ARN) 路徑。

    值的資料類型:ARN 的陣列。

    允許的值:每個值都必須是有效的 L icense Manager 組態 ARN

    必要:有條件限制。您必須指定此參數或any-host-based-license-configuration,但不能同時指定兩者。它們是相互排斥的。

    下列範例組態項目指定群組成員可以使用兩個指定的 License Manager 組態。

    { "Configuration": [ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "allowed-host-based-license-configurations", "Values": [ "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-6eb6586f508a786a2ba41EXAMPLE1111", "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-8a786a26f50ba416eb658EXAMPLE2222" ] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::Host" ] }, { "Name": "deletion-protection", "Values": [ "UNLESS_EMPTY" ] } ] } ] }
  • any-host-based-license-configuration

    此參數指定您不想將特定授權組態與群組相關聯。在這種情況下,所有基於核心/通訊端的授權配置都可供您的主機資源群組的成員使用。如果您擁有無限數量的授權,並且想要針對主機使用率進行最佳化,請使用此設定。

    值的資料類型:布林

    允許的值:「真」或「假」(必須是小寫)。

    必要:有條件限制。您必須指定此參數或allowed-host-based-license-configurations,但不能同時指定兩者。它們是相互排斥的。

    下列範例組態項目指定群組成員可以使用任何以核心/通訊端為基礎的授權組態。

    { "Configuration": [ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "any-host-based-license-configuration", "Values": ["true"] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": ["AWS::EC2::Host"] }, { "Name": "deletion-protection", "Values": ["UNLESS_EMPTY"] } ] } ] }

下列範例說明如何將所有主機管理設定併入單一組態中。

{ "Configuration": [ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "auto-allocate-host", "Values": ["true"] }, { "Name": "auto-release-host", "Values": ["false"] }, { "Name": "allowed-host-families", "Values": ["c5", "m5"] }, { "Name": "allowed-host-based-license-configurations", "Values": [ "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-6eb6586f508a786a2ba41EXAMPLE1111", "arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-8a786a26f50ba416eb658EXAMPLE2222" ] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": ["AWS::EC2::Host"] }, { "Name": "deletion-protection", "Values": ["UNLESS_EMPTY"] } ] } ] }

AWS::NetworkFirewall::RuleGroup

此識別碼會指定為群組成員強制執行的AWS Network Firewall規則群組設定。防火牆管理員可以指定此類型之資源群組的 ARN,以針對防火牆規則自動解析群組成員的 IP 位址,而不必手動列出每個位址。有關詳情,請參閱在AWS Network Firewall中使用以標籤為基礎的資源群組

您可以使用 Network Firewall 主控台或執行AWS CLI命令或 AWS SDK 作業來建立此組態類型的資源群組。

此配置類型的資源群組有下列限制:

  • 群組的成員僅包含 Network Firewall 支援的類型資源。

  • 群組必須包含以標籤為基礎的查詢,才能管理群組的成員資格;任何支援類型且標籤符合查詢的資源都會自動成為群組的成員。

  • 此組態類型不Parameters受支援。

  • 若要刪除此組態類型的資源群組,任何 Network Firewall 規則群組都無法參考該群組。

下列範例說明此類型之群組的ConfigurationResourceQuery區段。

{ "Configuration": [ { "Type": "AWS::NetworkFirewall::RuleGroup", "Parameters": [] } ], "ResourceQuery": { "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"environment\",\"Values\":[\"production\"]}]}", "Type": "TAG_FILTERS_1_0" } }

下列範例AWS CLI命令會使用先前的設定和查詢建立資源群組。

$ aws resource-groups create-group \ --name test-group \ --resource-query '{"Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\": [\"AWS::EC2::Instance\"], \"TagFilters\": [{\"Key\": \"environment\", \"Values\": [\"production\"]}]}"}' \ --configuration '[{"Type": "AWS::NetworkFirewall::RuleGroup", "Parameters": []}]' { "Group":{ "GroupArn":"arn:aws:resource-groups:us-west-2:123456789012:group/test-group", "Name":"test-group", "OwnerId":"123456789012" }, "Configuration": [ { "Type": "AWS::NetworkFirewall::RuleGroup", "Parameters": [] } ], "ResourceQuery": { "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"environment\",\"Values\":[\"production\"]}]}", "Type": "TAG_FILTERS_1_0" } }