Amazon SNSとAWS Chatbotを使用して、AWS CodePipelineの実行結果をSlackに通知します。
Amazon SNS トピックを作成
まずは、Amazon SNSでトピックを作成します。
「トピックの作成」をクリックし、トピック名を入力します。
次に、アクセスポリシーのオプションから高度なメソッドを選択し、JSONエディタを編集します。
AWSアカウントIDとトピック名は、各自のものを入力してください。
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:Publish",
"SNS:RemovePermission",
"SNS:SetTopicAttributes",
"SNS:DeleteTopic",
"SNS:ListSubscriptionsByTopic",
"SNS:GetTopicAttributes",
"SNS:Receive",
"SNS:AddPermission",
"SNS:Subscribe"
],
"Resource": "arn:aws:sns:ap-northeast-1:AWSアカウントIDを入力:トピック名を入力",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "AWSアカウントIDを入力"
}
}
},
{
"Sid": "AWSCodeStarNotifications_publish",
"Effect": "Allow",
"Principal": {
"Service": "codestar-notifications.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:ap-northeast-1:AWSアカウントIDを入力:トピック名を入力"
}
]
}
参考:Configure Amazon SNS Topics for Notifications
CodePipelineの通知ルールを作成
通知したいパイプラインを選択し、「通知」から「通知ルールの作成」を選択します。
通知ルールの作成画面に移行するので、「通知名」と「通知をトリガーするイベント」を設定します。
さらに、「ターゲット」を設定します。Amazon SNSで作成したトピックを選択します。
AWS Chatbotを設定
ChatbotとSlackを連携します。
Chatbotのコンソールの「チャットクライアントを設定」から「Slack」を選択し「クライアントを設定」をクリックします。
権限の確認画面が出るので、「許可する」をクリックします。
次に、「設定済みクライアント」から先ほど許可したSlackワークスペースを選択し、「新しいチャンネルを設定」をクリックします。
設定名と通知したいSlackのチャンネルを選択します。
「アクセス許可」でロール名を入力します。「通知」では、作成したSNSトピックとリージョンを選択します。
Pipeline実行時にSlackに通知が行われていることが確認できれば完成です。