服务托管堆栈集的账户级别目标
AccountFilterType
允许您将部署目标限制为单个账户,或在创建、更新或删除操作中包含具有提供的 AWS Organizations 单位(OU)的其他账户。
服务托管堆栈集可以部署到具有账户参数的单个账户、指定 OU 中的所有账户或指定 OU 中的账户子集。有关部署目标的更多信息,请参阅 DeploymentTargets
。
{ "Accounts": ["string", ...], "AccountsUrl": "string", "OrganizationalUnitIds": ["string", ...] "AccountFilterType": "string" }
Accounts
-
要为其部署 StackSets 更新的一个或多个 AWS 账户 的名称。
AccountsUrl
-
账户列表的 Amazon S3 URL。
OrganizationalUnitIds
-
StackSets 部署到的组织根 ID 或组织单位(OU)ID。
AccountFilterType
-
有效值:
INTERSECTION
|DIFFERENCE
|UNION
以下是
AccountFilterType
操作的可能值列表。-
INTERSECTION
:StackSets 部署到Accounts
参数中指定的账户。 -
DIFFERENCE
:StackSets 不包括Accounts
参数中指定的账户。这使用户能够避开 OU 中的某些账户,例如暂停的账户。 -
UNION
:(默认值)StackSets 包括其他账户部署目标。如果未提供
AccountFilterType
,则使用默认值。这使用户能够在一个请求(过去是两个单独的请求)中更新整个 OU 和来自不同 OU 的单个账户。 -
NONE
:部署到指定组织单位(OU)中的所有账户。
-
AWS CLI 示例
以下示例展示如何在 AWS CLI 中使用 AccountFilterType
。
将 OU 中的单个账户作为目标
以下示例筛选 OU 中的部署目标。在本例中,A1、A2 和 A3 账户都在 OU1 组织中。AWS CLI 命令部署到 A1 和 A2 目标账户。
aws cloudformation create-stack-instances --deployment-targets OrganizationalUnitIds=OU1,Accounts=A1,A2,AccountFilterType=INTERSECTION
结果:您已为账户 1 和账户 2 创建了堆栈实例。
将 OU 作为目标并筛选单个账户
以下示例在 OU 中除账户 1 和账户 2 之外的所有账户中创建堆栈实例。
aws cloudformation create-stack-instances --deployment-targets OrganizationalUnitIds=OU1,Accounts=A1,A2,AccountFilterType=DIFFERENCE
结果:您已避开部署到 OU 中的特定账户。
将 OU 和其他单个账户作为目标
以下示例更新堆栈实例。
aws cloudformation update-stack-instances --deployment-targets OrganizationalUnitIds=OU1,Accounts=A4,AccountFilterType=UNION
结果:您已更新 OU 中账户 1、账户 2 和账户 4 的堆栈实例。通过筛选账户,您未更新账户 A5 上的堆栈实例。