AWS ChatBot で同じ Slack チャネルに対して複数の構成を作成できるのか確認してみた

結論:できませんでした
2023.08.04

こんにちは、CX事業本部 Delivery部の若槻です。

以前、AWS ChatBot で特定の Slack チャネルに通知を送信する仕組みを作成してみました。

この仕組みについて「同じ Slack チャネルに対して複数の構成を作成できるのか?」という点が気になりました。管理上、複数の CloudFormation スタックから同じ Slack チャネルを通知先に使用したい場合もあるでしょう。

確認してみた

次のような構成済みの Slack チャネルがあるワークスペースに対して、さらに Chatbot の構成を追加できるのか試してみます。

AWS CDK の場合

次のように CDK で同じ Slack チャネルに対して2つ目の Chatbot の構成を追加しています。

lib/cdk-sample-stack.ts

import { aws_chatbot, aws_sns, Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';

const YOUR_WORKSPACE_ID = process.env.YOUR_WORKSPACE_ID || '';
const YOUR_CHANNEL_ID = process.env.YOUR_CHANNEL_ID || '';

export class CdkSampleStack extends Stack {
  constructor(scope: Construct, id: string, props: StackProps) {
    super(scope, id, props);

    const alarmtTopic = new aws_sns.Topic(this, 'AlarmtTopic', {});

    // 既存の Chatbot の構成
    new aws_chatbot.SlackChannelConfiguration(
      this,
      'SampleSlackChannelConfiguration',
      {
        slackChannelConfigurationName: 'slackChannelConfiguration',
        slackChannelId: YOUR_CHANNEL_ID,
        slackWorkspaceId: YOUR_WORKSPACE_ID,
        notificationTopics: [alarmtTopic],
      }
    );

    // 新しく追加する Chatbot の構成
    new aws_chatbot.SlackChannelConfiguration(
      this,
      'SampleSlackChannelConfiguration2',
      {
        slackChannelConfigurationName: 'slackChannelConfiguration2',
        slackChannelId: YOUR_CHANNEL_ID,
        slackWorkspaceId: YOUR_WORKSPACE_ID,
        notificationTopics: [alarmtTopic],
      }
    );
  }
}

スタックをデプロイしようとするとエラーとなりました。

$ cdk deploy

12:50:19 AM | CREATE_FAILED        | AWS::Chatbot::SlackChannelConfiguration | Sa
mpleSlackChannelConfiguration2
Resource handler returned message: "Invalid request provided: Slack channel with
ID CHE7MC5D0 in Slack team THVFSQNP8 has already been configured for AWS account
XXXXXXXXXXXX. (Service: AWSChatbot; Status Code: 400; Error Code: InvalidRequestE
xception; Request ID: 79e564cc-e6bf-410b-a94d-119a859a3923; Proxy: null)" (Reques
tToken: 7c485980-2ae8-959f-2957-a1d608ad3852, HandlerErrorCode: InvalidRequest)

CDK からは同じアカウント内で同じ Slack チャネルに対して複数の Chatbot の構成を行えないようです。

コンソールの場合

念のため、コンソールからの場合も試してみます。

コンソールから構成の追加を開始します。

既に構成済みの Slack チャネルを指定して構成の追加を行おうとすると、次のようなエラーが表示されました。

AWS Chatbot can't create the Slack channel configuration. Slack channel with ID CHE7MC5D0 in Slack team THVFSQNP8 has already been configured for AWS account XXXXXXXXXXXX.

CDK の場合と同じくコンソールからも同じアカウント内で同じ Slack チャネルに対して複数の Chatbot の構成を行えないようです。

おわりに

AWS ChatBot で同じ Slack チャネルに対して複数の構成を作成できるのか確認してみました。

結果としては行えないようです。AWS Chatbot はグローバルのサービスであるため同じアカウント内でリージョンを変えることもできず、どうしても複数の構成を作成したい場合は、AWS アカウントを分ける必要があるようです。ご注意ください。

以上