本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資源群組的服務組態
資源群組可讓您以單位形式管理 AWS 資源集合。一些 AWS 服務通過對該組的所有成員執行請求的操作來支持這一點。這類服務可以將要套用至群組成員的設定儲存為附加至群組的JSON
本主題說明支援 AWS 服務的可用組態設定。
如何存取附加至資源群組的服務組態
支援服務連結群組的服務通常會在您使用該服務所提供的工具 (例如該服務的管理主控台或其 AWS CLI 與 AWS SDK作業) 時,為您設定組態。有些服務會完全管理其服務連結群組,除非主控台或擁有 AWS 服務提供的命令允許,否則您無法以任何方式修改這些服務。不過,在某些情況下,您可以使用 AWS SDKs或其 AWS CLI 對等項目中的下列API作業與服務組態互動:
-
當您使用CreateGroup作業建立群組時,您可以將自己的組態附加至群組。
-
您可以使用此作業來修改連結至群組的目前組PutGroupConfiguration態。
-
您可以呼叫GetGroupConfiguration作業來檢視資源群組的目前配置。
JSON服務配置的語法
資源群組可以包含定義服務特定設定的組態,這些設定可套用至屬於該群組成員的資源。
配置表示為一個JSONType
用於組態,以及由該類型Parameters
定義的一組。每個參數都包含一個或多個Name
和一個或多個數組的數組Values
。下面的例子 placeholders
顯示單一範例資源類型之組態的基本語法。此範例顯示具有兩個參數的型別,每個參數都有兩個值。下一節將討論實際的有效類型、參數和值。
[ { "Type": "
configuration-type
", "Parameters": [ { "Name": "parameter1-name
", "Values": [ "value1", "value2" ] }, { "Name": "parameter2-name
", "Values": [ "value3", "value4" ] } ] } ]
支援的組態類型和參數
Resource Groups 支援使用下列組態類型。每個組態類型都有一組對該類型有效的參數。
主題
AWS::ResourceGroups::Generic
此組態類型會指定對資源群組強制執行成員資格需求的設定,而不是為 AWS 服務配置特定資源類型的行為。此組態類型會由需要的服務連結群組 (例如AWS::EC2::CapacityReservationPool
和AWS::EC2::HostManagment
類型) 自動新增。
下列項Parameters
目對AWS::ResourceGroups::Generic
服務連結群組Type
有效。
-
allowed-resource-types
此參數指定資源群組只能包含指定類型的資源。
值的資料類型:字串
允許的值:
-
AWS::EC2::Host
— 當服務組態也包含 of 類型時,需要Configuration
具有此參數和值Configuration
的 AAWS::EC2::HostManagement
。這可確保群HostManagement
組只能包含 Amazon EC2 專用主機。 -
AWS::EC2::CapacityReservation
— 當服務組態也包含類型的Configuration
項目時,需要Configuration
具有此參數和值的 AAWS::EC2::CapacityReservationPool
。這可確保群CapacityReservation
組只能包含 Amazon EC2 容量保留容量。
必要:以附加至資源群組的其他
Configuration
元素為基礎的條件式。請參閱上一個項目以瞭解允許的值。下列範例將群組成員限制為僅 Amazon EC2 主機執行個體。
[ { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": ["AWS::EC2::Host"] } ] } ]
-
-
deletion-protection
此參數指定除非資源群組不包含任何成員,否則無法刪除該資源群組。如需詳細資訊,請參閱《L icense Manager 使用指南》中的〈刪除主機資源群組〉
值的數據類型:字符串數組
允許的值:唯一允許的值是
[ "UNLESS_EMPTY" ]
(值必須為大寫)。必要:以附加至資源群組的其他
Configuration
元素為基礎的條件式。只有當資源群組也具有的另一個Configuration
元素時,才需要此參Type
數AWS::EC2::HostManagement
。下列範例會啟用群組的刪除保護,除非群組沒有成員。
[ { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "deletion-protection", "Values": [ "UNLESS_EMPTY" ] } ] } ]
AWS::AppRegistry::Application
此Configuration
類型指定資源群組代表由建立的應用程式 AWS Service Catalog AppRegistry。
此類型的資源群組由 AppRegistry 服務完全管理,除了使用提供的工具以外,使用者無法建立、更新或刪除 AppRegistry。
注意
由於此類型的資源群組是由使用者自動建立 AWS 和維護,而不是由使用者管理,因此這些資源群組不會計入您可在中建立的資源群組數目上限的
如需詳細資訊,請參閱 Service Catalog 使用指南 AppRegistry中的使用。
AppRegistry 建立此類型的服務連結資源群組時,也會自動為與應用程式相關聯的每個 AWS CloudFormation 堆疊建立個別的額外AWS CloudFormation 服務連結群組。
AppRegistry 自動為此類型所建立的服務連結群組命名,AWS_AppRegistry_Application-
後面加上應用程式名稱的前置詞:AWS_AppRegistry_Application-
MyAppName
AWS::AppRegistry::Application
服務連結群組類型支援下列參數。
-
Name
此參數指定使用者在中建立應用程式時所指派的易記名稱 AppRegistry。
值的資料類型:字串
允許的值: AppRegistry 服務允許用於應用程式名稱的任何文字字串。
必要:是
-
Arn
此參數指定由指派之應用程式的 Amazon 資源名稱 (ARN) 路徑 AppRegistry。
值的資料類型:字串
允許的值:一個有效的ARN。
必要:是
注意
若要變更任何這些元素,您必須使用 AppRegistry 主控台或該服務的 AWS SDK和 AWS CLI 作業來修改應用程式。
此應用程式資源群組會自動將針對與 AppRegistry 應用程式相關聯之 AWS CloudFormation 堆疊所建立的資源群組納入為群組成員。您可以使用此ListGroupResources作業來查看這些子群組。
下列範例顯示AWS::AppRegistry::Application
服務連結群組的設定區段。
[ { "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 和維護,而不是由使用者管理,因此這些資源群組不會計入您可在中建立的資源群組數目上限的
如需詳細資訊,請參閱 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
服務連結群組的組態區段的外觀。
[ { "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 使用者指南中的使用容量保留群組。
如果您使用此類型的Configuration
項目設定服務連結資源群組,則也必須使用下列值指定個別Configuration
項目:
-
具有一個參數的
AWS::ResourceGroups::Generic
類型:-
參數
allowed-resource-types
和的單一值AWS::EC2::CapacityReservation
。這可確保只有 Amazon EC2 容量保留可以成為資源群組的成員。
-
群組設定中的AWS::EC2::CapacityReservationPool
項目不支援任何參數。
下面的例子顯示了這樣的組的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 使用者指南中的了解自動放置和親和性。
值的資料類型:布林
允許的值:「真」或「假」(必須是小寫)。
必要:否
[ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "auto-allocate-host", "Values": [ "true" ] }, { "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" ] } ] } ]
-
auto-release-host
此參數指定群組中的專用主機是否在其上次執行的執行個體終止後自動釋放。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的釋放專用主機。
值的資料類型:布林
允許的值:「真」或「假」(必須是小寫)。
必要:否
[ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "auto-release-host", "Values": [ "false" ] }, { "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" ] } ] } ]
-
allowed-host-families
此參數指定做為此群組成員的例證可使用哪些例證類型族群。
值的數據類型:字符串數組。
允許的值:每個都必須是有效的 Amazon EC2 執行個體類型系列識別碼
C4
,例如M5
P3dn
、、或R5d
。必要:否
下列範例組態項目指定啟動的執行個體只能是 C5 或 M5 執行個體類型系列的成員。
[ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "allowed-host-families", "Values": ["c5", "m5"] }, { "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"] } ] } ]
-
allowed-host-based-license-configurations
此參數指定您要套用至群組成員的一或多個以核心/通訊端為基礎的授權組態的 Amazon 資源名稱 (ARN) 路徑。
值的資料類型:陣列ARNs。
允許的值:每個都必須是有效的 L icense Manager 組態ARN。
必要:有條件限制。您必須指定此參數或
any-host-based-license-configuration
,但不能同時指定兩者。它們是相互排斥的。下列範例組態項目指定群組成員可以使用兩個指定的 License Manager 組態。
[ { "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
,但不能同時指定兩者。它們是相互排斥的。下列範例組態項目指定群組成員可以使用任何以核心/通訊端為基礎的授權組態。
[ { "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"] } ] } ]
下列範例說明如何將所有主機管理設定併入單一組態中。
[ { "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 規則群組都無法參考該群組。
下列範例說明此類型之群組的Configuration
和ResourceQuery
區段。
{ "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" } }