资源组的服务配置 - Amazon Resource Groups
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

资源组的服务配置

资源组可让您将 Amazon 资源集合作为一个单位进行管理。某些 Amazon 服务通过对组的所有成员执行所请求操作来支持这一点。此类服务可以采用附加到组的 JSON 数据结构形式将要应用于组成员的设置存储为配置

本主题介绍所支持 Amazon 服务的可用配置设置。

如何访问附加到资源组的服务配置

支持服务关联组的服务通常会在您使用该服务提供的工具(例如该服务的管理控制台或其 Amazon CLI 和 Amazon SDK 操作)时自动设置配置。某些服务会完全管理其服务关联组,除非控制台允许或所属 Amazon 服务提供相关命令,否则您无法以任何方式对该组进行修改。但是,在某些情况下,您可以使用 Amazon SDK 或其 Amazon 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" ] } ] } ] }

支持的配置类型和参数

资源组支持使用以下配置类型。每种配置类型都有一组对该类型有效的参数。

AWS::ResourceGroups::Generic

此配置类型指定对资源组强制执行成员资格要求的设置,而不是为 Amazon 服务配置特定资源类型的行为。此配置类型由需要它的服务关联组自动添加,例如 AWS::EC2::CapacityReservationPoolAWS::EC2::HostManagment 类型。

以下 ParametersAWS::ResourceGroups::Generic服务关联组Type有效。

  • allowed-resource-types

    此参数指定资源组只能由一个或多个指定类型的资源组成。

    值的数据类型:字符串

    允许的值:

    • AWS::EC2::Host– 当服务配置还包含类型 AWS::EC2::HostManagementConfiguration 时,需要使用带有此参数和值的 Configuration。这样可以确保 HostManagement 组只能包含 Amazon EC2 专属主机。

    • AWS::EC2::CapacityReservation– 当服务配置还包含类型 AWS::EC2::CapacityReservationPoolConfiguration 项目时,需要使用带有此参数和值的 Configuration。这样可以确保 CapacityReservation 组只能包含 Amazon EC2 容量预留容量。

    必需:有条件,基于附加到资源组的其他 Configuration 元素。有关允许的值,请参阅前面的条目。

    以下示例将组成员限制为仅有 Amazon EC2 主机实例。

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

    此参数指定除非资源组不包含任何成员,否则无法将其删除。有关更多信息,请参阅 License Manager 用户指南中的删除主机资源组

    值的数据类型:字符串数组

    允许的值:唯一允许的值是 [ "UNLESS_EMPTY" ](该值必须为大写)。

    必需:有条件,基于附加到资源组的其他 Configuration 元素。仅当资源组还有另一个带有 TypeAWS::EC2::HostManagementConfiguration 元素时,才需要此参数。

    以下示例为该组启用删除保护,除非该组没有成员才能将其删除。

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

AWS::AppRegistry::Application

Configuration 类型指定资源组代表由 Amazon Service Catalog AppRegistry 创建的应用程序。

此类型的资源组完全由 AppRegistry 服务管理,只有使用 AppRegistry 提供的工具才能由用户创建、更新或删除。

注意

由于此类型的资源组由 Amazon 自动创建和维护,而不是由用户管理,因此这些资源组不计入您在 Amazon Web Services 账户 中可以创建的最大资源组数量的配额限制。

有关更多信息,请参阅服务目录用户指南中的使用 AppRegistry

当 AppRegistry 创建此类型的服务关联资源组时,它还会自动为与应用程序关联的每个 Amazon CloudFormation 堆栈创建单独的附加 Amazon CloudFormation 服务关联组

AppRegistry 会自动为其创建的此类型服务关联组命名,前缀 AWS_AppRegistry_Application- 后跟应用程序的名称:AWS_AppRegistry_Application-MyAppName

AWS::AppRegistry::Application 服务关联组类型支持以下参数。

  • Name

    此参数指定在 AppRegistry 中创建应用程序时由用户分配的友好名称。

    值的数据类型:字符串

    允许的值:AppRegistry 服务允许的应用程序名称的任何文本字符串。

    必需:是

  • Arn

    此参数指定 AppRegistry 分配的应用程序 Amazon 资源名称(ARN)路径。

    值的数据类型:字符串

    允许的值:有效的 ARN。

    必需:是

注意

要更改这些元素中的任何一个,您必须使用 AppRegistry 控制台或该服务的 Amazon SDK 和 Amazon CLI 操作来修改应用程序。

此应用程序资源组自动将为与 AppRegistry 应用程序关联的 Amazon 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 类型指定组代表 Amazon CloudFormation 堆栈,其成员是该堆栈创建的 Amazon 资源。

当您将 Amazon CloudFormation 堆栈与 AppRegistry 服务关联时,系统会自动创建此类型的资源组。除非使用 AppRegistry 提供的工具,否则您无法创建、更新或删除这些组。

AppRegistry 会自动为其创建的此类型服务关联组命名,前缀 AWS_CloudFormation_Stack- 后跟堆栈的名称:AWS_CloudFormation_Stack-MyStackName

注意

由于此类型的资源组由 Amazon 自动创建和维护,而不是由用户管理,因此这些资源组不计入您在 Amazon Web Services 账户 中可以创建的最大资源组数量的配额限制。

有关更多信息,请参阅服务目录用户指南中的使用 AppRegistry

AppRegistry 会自动为与 AppRegistry 应用程序关联的每个 Amazon CloudFormation 堆栈创建此类型的服务关联资源组。这些资源组成为 AppRegistry 应用程序的父资源组的子成员。

此 Amazon CloudFormation 资源组的成员是作为堆栈一部分创建的 Amazon 资源。

AWS::CloudFormation::Stack 服务关联组类型支持以下参数。

  • Name

    此参数指定创建 Amazon CloudFormation 堆栈时用户分配的堆栈友好名称。

    值的数据类型:字符串

    允许的值:Amazon CloudFormation 服务允许的堆栈名称的任何文本字符串。

    必需:是

  • Arn

    此参数指定 AppRegistry 中附加到应用程序的 Amazon CloudFormation 堆栈的 Amazon 资源名称(ARN)路径。

    值的数据类型:字符串

    允许的值:有效的 ARN。

    必需:是

注意

要更改这些元素中的任何一个,您必须使用 AppRegistry 控制台或等效的 Amazon SDK 和 Amazon 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 容量预留。资源组可包含您账户中拥有的容量预留,以及通过使用 Amazon Resource Access Manager 从其他账户与您共享的容量预留。这可让您使用此资源组(作为容量预留参数的值)启动 Amazon EC2 实例。当您执行此操作时,实例将使用组中的可用预留容量。如果资源组没有可用容量,则该实例将作为池外部的独立按需实例启动。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的使用容量预留组

如果您使用此类型的 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 主机管理和 Amazon License Manager 的设置,这些设置对组成员强制执行。有关更多信息,请参阅 Amazon License Manager 中的主机资源组

如果您使用此类型的 Configuration 项目配置服务关联资源组,则还必须使用以下值指定单独的 Configuration 项目:

  • 一种 AWS::ResourceGroups::Generic 类型,其参数为 allowed-resource-types,单个值为 AWS::EC2::Host。这样可以确保只有 Amazon EC2 专属主机可以成为该组的成员。

  • 一种 AWS::ResourceGroups::Generic 类型,其参数为 deletion-protection,单个值为 UNLESS_EMPTY。这样可以确保除非组为空,否则无法删除该组。

AWS::EC2::HostManagement 服务关联组类型支持以下参数。

  • auto-allocate-host

    此参数指定实例是在特定的专属主机上启动,还是在具有匹配配置的任何可用主机上启动。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的了解自动置放与关联

    值的数据类型:布尔值

    允许的值:“true”或“false”(必须为小写)。

    必需:否

    { "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

    此参数指定组中的专属主机在上次运行的实例终止后是否自动释放。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的释放专属主机

    值的数据类型:布尔值

    允许的值:“true”或“false”(必须为小写)。

    必需:否

    { "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 实例类型系列标识符,例如 C4M5P3dnR5d

    必需:否

    以下示例配置项目指定启动的实例只能是 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 数组。

    允许的值:每个值都必须是有效的 License 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

    此参数指定您不想将特定的许可证配置关联到您的组。在这种情况下,所有基于内核/套接字的许可证配置都可供主机资源组中的成员使用。如果您的许可证数量不限,并且想要针对主机利用率进行优化,请使用此设置。

    值的数据类型:布尔值

    允许的值:“true”或“false”(必须为小写)。

    必填:条件性。您可以指定此参数或 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

此标识符指定对组成员强制执行的 Amazon Network Firewall 规则组的设置。防火墙管理员可以指定此类型资源组的 ARN,以根据防火墙规则自动解析该组成员的 IP 地址,而不必手动列出每个地址。有关更多信息,请参阅在 Amazon Network Firewall 中使用基于标签的资源组

您可以使用 Network Firewall 控制台或运行 Amazon CLI 命令或 Amazon 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" } }

以下示例 Amazon 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" } }