

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

# 使用 在 Slack 資源中建立 AWS 支援 應用程式 AWS CloudFormation
<a name="creating-resources-with-cloudformation"></a>

AWS 支援 Slack 中的應用程式已與 整合 AWS CloudFormation，此服務可協助您模型化和設定 AWS 資源，以減少建立和管理資源和基礎設施的時間。您可以建立範本來描述您想要的所有 AWS 資源 （例如 AccountAlias 和 SlackChannelConfiguration)，並為您 CloudFormation 佈建和設定這些資源。

使用 時 CloudFormation，您可以重複使用範本來一致且重複地設定 AWS 支援 應用程式資源。描述您的資源一次，然後在多個 AWS 帳戶 和 區域中逐一佈建相同的資源。

## AWS 支援 應用程式和 CloudFormation 範本
<a name="working-with-templates"></a>

若要佈建和設定 AWS 支援 應用程式和相關服務的資源，您必須了解 [CloudFormation 範本](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)。範本是以 JSON 或 YAML 格式化的文本檔案。這些範本說明您要在 CloudFormation 堆疊中佈建的資源。如果您不熟悉 JSON 或 YAML，您可以使用 CloudFormation 設計工具來協助您開始使用 CloudFormation 範本。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[什麼是 CloudFormation 設計工具？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html)。

AWS 支援 應用程式支援在其中建立 AccountAlias 和 SlackChannelConfiguration CloudFormation。如需詳細資訊 (包括 AccountAlias 和 SlackChannelConfiguration 資源的 JSON 和 YAML 範本範例)，請參閱《AWS CloudFormation 使用者指南》中的 [AWS 支援 應用程式資源類型參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SupportApp.html)。

## 為您的組織建立 Slack 組態資源
<a name="using-cloudformation-templates-for-support-app"></a>

您可以使用 CloudFormation 範本建立 AWS 支援 應用程式所需的資源。如果您是組織的管理帳戶，則可以使用範本為 AWS Organizations中的成員帳戶建立這些資源。

例如，您可以使用範本為組織中的所有帳戶建立相同的 Slack 工作區組態，然後使用個別範本為特定 AWS 帳戶 或組織單位 (OUs) 建立不同的 Slack 頻道組態。您也可以使用範本來建立 Slack 工作區組態，以便成員帳戶接著可以為其 AWS 帳戶設定想要的 Slack 頻道。

您可以選擇是否使用 CloudFormation 範本。如果您不使用 CloudFormation 範本，則可以改為手動完成下列步驟：
+ 在 中建立 AWS 支援 應用程式資源 AWS Support Center Console。
+ 呼叫 [https://docs.aws.amazon.com/supportapp/latest/APIReference/API_RegisterSlackWorkspaceForOrganization.html](https://docs.aws.amazon.com/supportapp/latest/APIReference/API_RegisterSlackWorkspaceForOrganization.html) API 操作為您的帳戶註冊 Slack 工作區。CloudFormation 堆疊會為您呼叫此 API 操作。
+ 建立具有每個成員帳戶所需許可的 IAM 角色。
+ 呼叫 [https://docs.aws.amazon.com/supportapp/latest/APIReference/API_CreateSlackChannelConfiguration.html](https://docs.aws.amazon.com/supportapp/latest/APIReference/API_CreateSlackChannelConfiguration.html) API 操作，為每個成員帳戶設定 Slack 頻道。

如需詳細的手動步驟，請參閱 [授權多個帳戶](authorize-slack-workspace.md#authorize-multiple-accounts)。

請遵循下列程序，將 CloudFormation 範本上傳至您的組織。您可以使用 [AWS 支援 應用程式資源類型參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SupportApp.html)頁面中的範例範本。

範本會通知 CloudFormation 建立以下資源：
+ [Slack 頻道組態](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html)。
+ [Slack 工作區組態](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackworkspaceconfiguration.html)。
+ 具有 `AWSSupportSlackAppCFNRole` 名稱的 [IAM 角色](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)。已連接 AWSSupportAppFullAccess AWS 受管政策。

**Contents**
+ [更新適用於 Slack 的 CloudFormation 範本](#update-the-templates-for-slack)
+ [為管理帳戶建立堆疊](#create-your-stack-for-slack)
+ [為您的組織建立堆疊集](#create-your-stackset-for-your-organization)

### 更新適用於 Slack 的 CloudFormation 範本
<a name="update-the-templates-for-slack"></a>

若要開始使用，請使用下列範本建立您的堆疊。您必須將範本取代為 Slack 工作區和頻道的有效值。

**注意**  
我們不建議使用範本為您的組織建立 [AccountAlias](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-accountalias.html) 資源。AccountAlias 資源可唯一識別 AWS 支援 應用程式中 AWS 帳戶 的 。您的成員帳戶可以在 Support Center Console 中輸入帳戶名稱。如需詳細資訊，請參閱[授權 Slack 工作區](authorize-slack-workspace.md)。

**更新適用於 Slack 的 CloudFormation 範本**

1. 如果您是組織的管理帳戶，則必須先手動授權帳戶的 Slack 工作區，然後您的成員帳戶才能使用 CloudFormation 來建立資源。如果您尚未這麼做，則請參閱 [授權 Slack 工作區](authorize-slack-workspace.md)。

1. 從 [AWS 支援 應用程式資源類型參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SupportApp.html)頁面複製所需資源的 JSON 或 YAML 範本。

1. 在文字編輯器中，將範本貼到新檔案中。

1. 在範本中，指定所需的參數。請至少取代下列欄位的值：
   + 將 `TeamId` 取代為您的 Slack 工作區 ID
   + 將 `ChannelId` 取代為 Slack 頻道 ID
   +  將 `ChannelName` 取代為可識別 Slack 頻道組態的名稱
**提示**  
若要尋找工作區和通道 ID，請在瀏覽器中開啟 Slack 通道。在 URL 中，您的工作區 ID 是第一個識別碼，而通道 ID 是第二個識別碼。例如，在 https://app.slack.com/client/T012ABCDEFG/C01234A5BCD 中，T012ABCDEFG 是工作區 ID，而 C01234A5BCD 是通道 ID。

1. 將檔案儲存為 JSON 或 YAML 檔案。

### 為管理帳戶建立堆疊
<a name="create-your-stack-for-slack"></a>

接下來，您必須為組織中的管理帳戶建立堆疊。此步驟會為您呼叫 [https://docs.aws.amazon.com/supportapp/latest/APIReference/API_RegisterSlackWorkspaceForOrganization.html](https://docs.aws.amazon.com/supportapp/latest/APIReference/API_RegisterSlackWorkspaceForOrganization.html) API 操作，並使用 Slack 授權工作區。

**注意**  
建議您上傳您在上一個程序中為管理帳戶更新的 Slack 工作區組態範本。除非您也將管理帳戶設定為使用 AWS 支援 應用程式，否則您不需要上傳 Slack 頻道組態範本。

**為管理帳戶建立堆疊**

1. 登入 AWS 管理主控台 做為組織的管理帳戶。

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 如果您還沒有，請在**區域選擇器**中選擇下列其中一項 AWS 區域：
   + 歐洲 (法蘭克福)
   + 歐洲 (愛爾蘭)
   + 歐洲 (倫敦)
   + 美國東部 (維吉尼亞北部)
   + 美國東部 (俄亥俄)
   + 美國西部 (奧勒岡)
   + 亞太地區 (新加坡)
   + 亞太地區 (東京)
   + 加拿大 (中部)

1. 遵循下列程序來建立堆疊。如需詳細資訊，請參閱[在 CloudFormation 主控台上建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。

   在 CloudFormation 成功建立堆疊後，您可以使用同一個範本為您的組織建立堆疊集。

### 為您的組織建立堆疊集
<a name="create-your-stackset-for-your-organization"></a>

接下來，對 Slack 工作區組態使用相同的範本來建立具有 `service-managed` 許可的堆疊集。您可以使用堆疊集為您的整個組織建立堆疊，或指定所需的 OU。如需詳細資訊，請參閱[建立堆疊集](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。

此程序也會為您呼叫 [https://docs.aws.amazon.com/supportapp/latest/APIReference/API_RegisterSlackWorkspaceForOrganization.html](https://docs.aws.amazon.com/supportapp/latest/APIReference/API_RegisterSlackWorkspaceForOrganization.html) API 操作。此 API 操作使用 Slack 為成員帳戶授權工作區。

**為您的組織建立堆疊集**

1. 登入 AWS 管理主控台 做為組織的管理帳戶。

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 如果您尚未使用，請在**區域選擇器**中選擇 AWS 區域 您在先前程序中使用的相同 。

1. 在導覽窗格中，選擇 **StackSets**。

1. 選擇 **Create StackSet** (建立 StackSet)。

1. 在 **Choose a template** (選擇範本) 頁面上，保留下列選項的預設選項：
   + 在 **Permissions** (許可) 下，保留 **Service-managed permissions** (服務受管許可)。
   + 對於 **Prerequisite - Prepare template** (先決條件 - 準備範本)，保留 **Template is ready** (範本已就緒)。

1. 在 **Specify template** (指定範本) 下，選擇 **Upload a template file** (上傳範本檔案)，然後選擇 **Choose file** (選擇檔案)。

1. 選擇檔案，然後選擇 **Next** (下一步)。

1. 在 **Specify StackSet details** (指定 StackSet 詳細資訊) 頁面上，輸入堆疊名稱 (例如 **support-app-slack-workspace**)，輸入描述，然後選擇 **Next** (下一步)。

1. 在 **Configure StackSet options** (設定 StackSet 選項) 頁面上，保留預設選項，然後選擇 **Next** (下一步)。

1. 在 **Set deployment options** (設定部署選項) 頁面上，對於 **Add stacks to stack set** (將堆疊新增至堆疊集)，保留預設 **Deploy new stacks** (部署新堆疊) 選項。

1. 針對 **Deployment targets** (部署目標)，選擇是否要為整個組織或特定 OU 建立堆疊。如果您選擇 OU，請輸入 OU ID。

1. 對於**指定區域**，請僅輸入下列*其中一項* AWS 區域：
   + 歐洲 (法蘭克福)
   + 歐洲 (愛爾蘭)
   + 歐洲 (倫敦)
   + 美國東部 (維吉尼亞北部)
   + 美國東部 (俄亥俄)
   + 美國西部 (奧勒岡)
   + 亞太地區 (新加坡)
   + 亞太地區 (東京)
   + 加拿大 (中部)
**備註：**  
為了簡化工作流程，我們建議您使用 AWS 區域 您在步驟 3 中選擇的相同 。
選擇多個 AWS 區域 可能會導致與建立堆疊的衝突。

1. 對於**部署選項**的**容錯能力 – 選用**中，請輸入在 CloudFormation 停止操作之前堆疊可以失敗的帳戶數量。建議您輸入要新增的帳戶數量減一。例如，如果您指定的 OU 有 10 個成員帳戶，請輸入 9。這意味著，即使 CloudFormation 操作失敗 9 次，至少有一個帳戶會成功。

1. 選擇**下一步**。

1. 在 **Review** (檢閱) 頁面上，檢閱您的選項，然後選擇 **Submit** (提交)。您可以在 **Stack instances** (堆疊執行個體) 標籤上檢查您的堆疊狀態。

1. (選用) 重複此程序以上傳 Slack 頻道組態的範本。此範例範本也會建立 IAM 角色並連接 AWS 受管政策。此角色具有為您存取其他服務所需的許可。如需詳細資訊，請參閱[管理對 AWS 支援 應用程式的存取](support-app-permissions.md)。

   如果您沒有建立堆疊集來建立 Slack 頻道組態，則您的成員帳戶可以手動設定 Slack 頻道。如需詳細資訊，請參閱[設定 Slack 頻道](add-your-slack-channel.md)。

在 CloudFormation 建立堆疊之後，每個成員帳戶都可以登入 Support Center Console 並尋找其設定的 Slack 工作區和通道。然後，他們可以使用 AWS 支援 應用程式的 AWS 帳戶。請參閱 [在 Slack 頻道中建立支援案例](create-case-in-slack.md)。

**提示**  
如果您需要上傳新的範本，則建議您使用之前指定的相同 AWS 區域 。

## 進一步了解 CloudFormation
<a name="learn-more-cloudformation"></a>

若要進一步了解 CloudFormation，請參閱下列資源：
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation 使用者指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [CloudFormation API 參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html)
+ [AWS CloudFormation 命令列界面使用者指南](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)

## 使用 Terraform 建立 AWS 支援 應用程式資源
<a name="terraform-support-app"></a>

您也可以使用 [Terraform](https://www.terraform.io/) 為您的 建立 AWS 支援 應用程式資源 AWS 帳戶。Terraform 是一種基礎設施即程式碼工具，可用於雲端應用程式。您可以使用 Terraform 來建立 AWS 支援 應用程式資源，而不是將 CloudFormation 堆疊部署至帳戶。

安裝 Terraform 之後，您可以指定所需的 AWS 支援 應用程式資源。Terraform 會呼叫 [https://docs.aws.amazon.com/supportapp/latest/APIReference/API_RegisterSlackWorkspaceForOrganization.html](https://docs.aws.amazon.com/supportapp/latest/APIReference/API_RegisterSlackWorkspaceForOrganization.html) API 操作，以為您註冊 Slack 工作區，並建立您的資源。然後，您可以登入 Support Center Console 並尋找已設定的 Slack 工作區和頻道。

**備註**  
如果您是組織的管理帳戶，則必須先手動為您的帳戶授權 Slack 工作區，然後您的成員帳戶才能使用 Terraform 來建立資源。如果您尚未這麼做，則請參閱 [授權 Slack 工作區](authorize-slack-workspace.md)。
與 CloudFormation 堆疊集不同，您無法使用 Terraform 為組織中的 OU 建立 AWS 支援 應用程式資源。
您也可以在 AWS CloudTrail中從 Terraform 尋找這些更新的事件歷史記錄。這些事件的 `eventSource` 將是 `cloudcontrolapi.amazonaws.com` 和 `supportapp.amazonaws.com`。如需詳細資訊，請參閱[使用 在 Slack API 呼叫中記錄 AWS 支援 應用程式 AWS CloudTrail](logging-using-cloudtrail-support-app.md)。

### 進一步了解
<a name="learn-more-terra-form"></a>

若要進一步了解 Terraform，請參閱下列主題：
+  [Terraform 安裝](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)
+ [Terraform 教學課程：建置 的基礎設施 AWS](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/aws-build)
+ `[awscc\$1support\$1app\$1account\$1alias](https://registry.terraform.io/providers/hashicorp/awscc/latest/docs/resources/supportapp_account_alias)`
+ `[awscc\$1supportapp\$1slack\$1workspace\$1configuration](https://registry.terraform.io/providers/hashicorp/awscc/latest/docs/resources/supportapp_slack_workspace_configuration)`
+ `[awscc\$1supportapp\$1slack\$1channel\$1configuration](https://registry.terraform.io/providers/hashicorp/awscc/latest/docs/resources/supportapp_slack_channel_configuration)`