使用 Amazon CloudFormation 创建 Slack 中的 Amazon Web Services Support App 资源 - Amazon Web Services Support
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon CloudFormation 创建 Slack 中的 Amazon Web Services Support App 资源

Slack 中的 Amazon Web Services Support App 与 Amazon CloudFormation 集成,后者是一项服务,可帮助您对 Amazon 资源进行建模和设置,这样您只需花较少的时间来创建和管理资源与基础设施。您可以创建一个描述所需的全部 Amazon 资源(例如您的 AccountAlias 和 SlackChannelConfiguration)的模板,然后 Amazon CloudFormation 将为您预置和配置这些资源。

在您使用 Amazon CloudFormation 时,可重复使用您的模板来不断地重复设置您的 Amazon Web Services Support App 资源。描述您的资源一次,然后在多个 Amazon Web Services 账户 和区域中反复预置相同的资源。

Amazon Web Services Support App 和 Amazon CloudFormation 模板

要为 Amazon Web Services Support App 和相关服务预置和配置资源,您必须了解 Amazon CloudFormation 模板。模板是 JSON 或 YAML 格式的文本文件。这些模板描述要在 Amazon CloudFormation 堆栈中调配的资源。如果您不熟悉 JSON 或 YAML,可以在 Amazon CloudFormation Designer 的帮助下开始使用 Amazon CloudFormation 模板。有关更多信息,请参阅 Amazon CloudFormation 用户指南中的什么是 Amazon CloudFormation Designer?

Amazon Web Services Support App 支持在 Amazon CloudFormation 中创建您的 AccountAlias 和 SlackChannelConfiguration。有关更多信息(包括 AccountAlias 和 SlackChannelConfiguration 资源的 JSON 和 YAML 模板示例),请参阅《Amazon CloudFormation 用户指南》中的 Amazon Web Services Support App 资源类型参考

为您的组织创建 Slack 配置资源

您可以使用 CloudFormation 模板来创建 Amazon Web Services Support App 所需的资源。如果您是组织的管理账户,则可以使用模板在 Amazon Organizations 中为成员账户创建这些资源。

例如,您可以使用模板为组织中的所有账户创建相同的 Slack 工作区配置,随后使用单独的模板为特定 Amazon Web Services 账户 或组织单位(OU)创建不同的 Slack 通道配置。您也可以使用模板来创建 Slack 工作区配置,以便成员账户为其 Amazon Web Services 账户 配置所需的 Slack 通道。

您可以选择是否使用 CloudFormation 模板。如果不使用 CloudFormation 模板,则可以改为完成以下手动步骤:

  • 在 Amazon Support Center Console 中创建 Amazon Web Services Support App 资源。

  • 使用 Amazon Web Services Support 创建支持案例,以授权多个账户使用 Amazon Web Services Support App。

  • 调用 RegisterSlackWorkspaceForOrganization API 操作为您的账户注册 Slack 工作区。CloudFormation 堆栈会为您调用该 API 操作。

按照以下步骤将 CloudFormation 模板上传到您的组织。您可以使用 Amazon Web Services Support App 资源类型参考页面中的示例模板。

这些模板告诉 CloudFormation 创建以下资源:

为 Slack 更新您的 CloudFormation 模板

首先,请使用以下模板来创建堆栈。您必须将模板替换为 Slack 工作区和通道的有效值。

注意

我们不建议使用该模板为您的组织创建 AccountAlias 资源。AccountAlias 资源在 Amazon Web Services Support App 中唯一标识 Amazon Web Services 账户。您的成员账户可以在支持中心控制台中输入账户名称。有关更多信息,请参阅授权 Slack 工作区

为 Slack 更新您的 CloudFormation 模板
  1. 如果您是组织的管理账户,则必须手动为您的账户授权 Slack 工作区,然后您的成员账户才能使用 CloudFormation 来创建资源。如果尚未授权,请参阅 授权 Slack 工作区

  2. Amazon Web Services Support App 资源类型参考页面中复制所需资源的 JSON 或 YAML 模板。

  3. 在文本编辑器中,将模板粘贴到新文件中。

  4. 在模板中,指定所需的参数。至少需要替换以下字段的值:

    • 带有 Slack 工作区 ID 的 TeamId

    • 带有 Slack 通道 ID 的 ChannelId

    • 带有用于标识 Slack 通道配置名称的 ChannelName

    提示

    要查找工作区和通道 ID,请在浏览器中打开 Slack 通道。在 URL 中,您的工作区 ID 是第一个标识符,通道 ID 是第二个标识符。例如,在 https://app.slack.com/client/T012ABCDEFG/C01234A5BCD 中,T012ABCDEFG 是工作区 ID,C01234A5BCD 是通道 ID。

  5. 将文件另存为 JSON 或 YAML 文件。

为管理账户创建堆栈

接下来,您必须在组织中为管理账户创建堆栈。此步骤会为您调用 RegisterSlackWorkspaceForOrganization API 操作并使用 Slack 授权工作区。

注意

我们建议您上传在上一步中为管理账户更新的 Slack 工作区配置模板。除非您还配置管理账户以使用 Amazon Web Services Support App,否则无需上传 Slack 通道配置模板。

为管理账户创建堆栈
  1. 使用组织的管理账户登录到Amazon Web Services Management Console。

  2. 打开 Amazon CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation

  3. 如果尚未设置,请在 Region selector(区域选择器)中,选择以下 Amazon Web Services 区域 中的一个:

    • 欧洲地区(法兰克福)

    • 欧洲地区(爱尔兰)

    • 欧洲地区(伦敦)

    • 美国东部(弗吉尼亚州北部)

    • 美国东部(俄亥俄州)

    • 美国西部(俄勒冈州)

    • 亚太地区(新加坡)

    • 亚太地区(东京)

    • 加拿大(中部)

  4. 按照步骤创建堆栈。有关更多信息,请参阅在 Amazon CloudFormation 控制台上创建堆栈

    CloudFormation 成功创建堆栈后,您可以使用相同的模板为组织创建堆栈集。

为组织创建堆栈集

接下来,对 Slack 工作区配置使用相同的模板,以创建具有 service-managed 权限的堆栈集。您可以使用堆栈集为整个组织创建堆栈,也可以指定所需的 OU。有关更多信息,请参阅创建堆栈集

此过程还会为您调用 RegisterSlackWorkspaceForOrganization API 操作。此 API 操作会为成员账户使用 Slack 授权工作区。

为组织创建堆栈集
  1. 使用组织的管理账户登录到Amazon Web Services Management Console。

  2. 打开 Amazon CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation

  3. 如果尚未设置,请在 Region selector(区域选择器)中,选择您在上一步中使用的相同 Amazon Web Services 区域。

  4. 从导航窗格中,选择 StackSets(堆栈集)。

  5. 选择 Create StackSet(创建堆栈集)。

  6. Choose a template(选择模板)页面上,保留以下选项的默认选项:

    • Permissions(权限)下,保留 Service-managed permissions(服务托管权限)。

    • 对于 Prerequisite - Prepare template(先决条件 – 准备模板),请保留 Template is ready(模板已就绪)。

  7. Specify template(指定模板)下,选择 Upload a template file(上传模板文件),然后选择 Choose file(选择文件)。

  8. 选择文件,然后选择 Next(下一步)。

  9. Specify StackSet details(指定堆栈集详细信息)页面上,输入堆栈名称,如 support-app-slack-workspace,然后输入描述并选择 Next(下一步)。

  10. Configure StackSet options(配置堆栈集选项)页面上,保留默认选项,然后选择 Next(下一步)。

  11. Set deployment options(设置部署选项)页面上,对于 Add stacks to stack set(将堆栈添加到堆栈集),保留默认的 Deploy new stacks(部署新堆栈)选项。

  12. 对于 Deployment targets(部署目标),选择是否为整个组织或特定 OU 创建堆栈。如果选择 OU,请输入 OU ID。

  13. 对于 Specify regions(指定区域),仅输入以下 Amazon Web Services 区域 之

    • 欧洲地区(法兰克福)

    • 欧洲地区(爱尔兰)

    • 欧洲地区(伦敦)

    • 美国东部(弗吉尼亚州北部)

    • 美国东部(俄亥俄州)

    • 美国西部(俄勒冈州)

    • 亚太地区(新加坡)

    • 亚太地区(东京)

    • 加拿大(中部)

    备注:
    • 为了简化工作流,我们建议您使用在步骤 3 中选择的相同 Amazon Web Services 区域 。

    • 选择多个 Amazon Web Services 区域 可能会导致创建堆栈时发生冲突。

  14. 对于 Deployment options(部署选项)和 Failure tolerance - optional(容错能力:可选)下,输入在 CloudFormation 停止操作之前堆栈可能失败的账户数。我们建议您输入要添加的账户数并减去一。例如,如果您指定的 OU 有 10 个成员账户,则输入 9。这意味着,即使 CloudFormation 操作失败 9 次,也至少有一个账户会成功。

  15. 选择 Next(下一步)。

  16. Review(审核)页面上,检查您的选择,然后选择 Submit(提交)。您可以在 Stack instances(堆栈实例)选项卡上检查堆栈状态。

  17. (可选)重复此步骤以上传 Slack 通道配置的模板。示例模板还会创建 IAM 角色并附加 Amazon 托管策略。该角色具有访问其他服务所需的权限。有关更多信息,请参阅管理对 Amazon Web Services Support App 的访问

    如果您不创建堆栈集来创建 Slack 通道配置,则您的成员账户可以手动配置 Slack 通道。有关更多信息,请参阅配置 Slack 通道

在 CloudFormation 创建堆栈后,每个成员账户都可以登录支持中心控制台并找到其配置的 Slack 工作区和通道。然后,他们可以将 Amazon Web Services Support App 用于自己的 Amazon Web Services 账户。请参阅在 Slack 通道中创建支持案例

提示

如果您需要上传新模板,我们建议您使用之前指定的相同 Amazon Web Services 区域。

了解有关 CloudFormation 的更多信息

要了解有关 CloudFormation 的更多信息,请参阅以下资源:

使用 Terraform 创建 Amazon Web Services Support App 资源

您也可以使用 Terraform 为 Amazon Web Services 账户 创建 Amazon Web Services Support App 资源。Terraform 是一款基础架构即代码工具,可用于云应用程序。您可以使用 Terraform 创建 Amazon Web Services Support App 资源,而不是将 CloudFormation 堆栈部署到账户。

安装 Terraform 后,您可以指定所需的 Amazon Web Services Support App 资源。Terraform 会调用 RegisterSlackWorkspaceForOrganization API 操作为您注册 Slack 工作区,并创建资源。然后,您可以登录支持中心控制台并找到您配置的 Slack 工作区和通道。

注意
  • 如果您是组织的管理账户,则必须手动为您的账户授权 Slack 工作区,然后您的成员账户才能使用 Terraform 来创建资源。如果尚未授权,请参阅 授权 Slack 工作区

  • 与 CloudFormation 堆栈集不同,您不能使用 Terraform 为组织中的 OU 创建 Amazon Web Services Support App 资源。

  • 您还可以在 Amazon CloudTrail 中找到来自 Terraform 的更新的事件历史记录。这些事件的 eventSource 将是 cloudcontrolapi.amazonaws.comsupportapp.amazonaws.com。有关更多信息,请参阅使用 Amazon CloudTrail 记录 Slack API 调用中的 Amazon Web Services Support App

了解更多信息

要了解有关 Terraform 的更多信息,请参阅以下主题: