本記事は、サムザップ Advent Calendar 2019 #1 の12/23の記事です。
はじめに
2019年11月25日にAWS ChatbotがSlack からのコマンドの実行をサポートするようになりました(ベータ版)。
AWSコマンドラインインターフェイス構文を使用したコマンドがサポートされており、馴染みのあるシンタックスでコマンドを記述できます。
この記事ではAWS Chatbot , Slack ワークフロービルダーを用いて負荷試験環境の起動・停止を簡単にする手順を説明します。
前提
負荷試験環境はEC2インスタンスやRDBなど複数のサービスにまたがるため、
普段は使わないので停止させておきたい、使いたいときに起動したいと思っても手順が煩雑になることがあります。
そこでAWS Lambdaを用いて一度に必要なサービスを立ち上げられるようにし、運用しています。
今回はSlack ワークフローの作成からAWS ChatbotとSlackの連携、作成済みのAWS Lambdaを実行するまでの手順を説明します。
#手順
ワークフローの作成
-
Chatbotが有効になるチャンネルを選択し、短い名前(これがチャンネル上部のワークフローの一覧に表示されます)を記入、保存するをクリックします。
-
ステップを追加をクリックし、
メッセージの送信先
、メッセージのテキストを入力し保存するをクリックします。
メッセージの送信先は「ワークフローを開始したチャンネル」、メッセージのテキストにはAWS CLIによく似たAWS Lambadaを発火させるコマンドを記入します。
ここではAWS Lambda関数function_start_stop_service
を入力{"Action":"stop", "TargetTagKey":"StartStop"}
、リージョンap-northeast-1
で実行するものとします。
@aws lambda invoke --function-name function_start_stop_service --payload {"Action":"start", "TargetTagKey":"StartStop"} --region ap-northeast-1
6. invite
SlackでAWS Chastbotアプリをインストールし使いたいチャンネルからinviteします。
/invite @aws
AWS Chatbotの設定
- AWS側でChatbotの設定を行います。 AWS マネジメントコンソールからAWS Chatbotに移動します。
- Configure new clientをクリックし、Slackを選択、Configureをクリックします。
-
許可をすると作成したclientが現れるので、クリックします。
-
Slack channelの設定を記入します。
今回はprivate channelなのでPrivateを選択し、channel IDを記入します。最初に指定したチャンネルのIDです。IDが分からない場合はSlackの部屋名を右クリックし、リンクをコピーすると表示されます。 -
Permissionsの設定を記入します。
IAM RoleはCreate an IAM role using templateを選択、Role nameを記入、Pollicy templatesはLambda-invoke command permissionsを選択します。
-
Notificationsの設定をします。Topicは予め作成しておき、そちらを選択しConfigureをクリックします。
実行
まとめ
以上AWS Chatbot, Slack ワークフロービルダー, AWS Lambdaを用いてアクションを作成しました。
まだベータ版ではありますが、Chatbotを利用すると作業をより簡単にできそうです。
明日は@ohbashunsukeさんの記事です。