10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

サムザップ #1Advent Calendar 2019

Day 23

Slack ワークフロービルダーとAWS Chatbotで負荷試験環境の構築を楽にする

Last updated at Posted at 2019-12-23

本記事は、サムザップ 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を実行するまでの手順を説明します。
image.png

#手順

ワークフローの作成

  1. Slackの左上のメニューからワークフロービルダーをクリックします。
    image.png

  2. すると自分が作成・共有されたワークフローの一覧ページが表示されます。
    image.png

  3. 右上の作成をクリックし、ワークフローの名前を入力し、次へをクリックします。
    image.png

  4. Chatbotが有効になるチャンネルを選択し、短い名前(これがチャンネル上部のワークフローの一覧に表示されます)を記入、保存するをクリックします。
    image.png

  5. ステップを追加をクリックし、メッセージの送信先、メッセージのテキストを入力し保存するをクリックします。
    メッセージの送信先は「ワークフローを開始したチャンネル」、メッセージのテキストには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

image.png
6. invite
SlackでAWS Chastbotアプリをインストールし使いたいチャンネルからinviteします。


/invite @aws

AWS Chatbotの設定

  1. AWS側でChatbotの設定を行います。 AWS マネジメントコンソールからAWS Chatbotに移動します。
  2. Configure new clientをクリックし、Slackを選択、Configureをクリックします。
    image.png

image.png

  1. するとSlack側から許可が求められます。
    image.png

  2. 許可をすると作成したclientが現れるので、クリックします。

  3. Configure new channelをクリックします。
    image.png

  4. Slack channelの設定を記入します。
    今回はprivate channelなのでPrivateを選択し、channel IDを記入します。最初に指定したチャンネルのIDです。IDが分からない場合はSlackの部屋名を右クリックし、リンクをコピーすると表示されます。

  5. Permissionsの設定を記入します。
    IAM RoleはCreate an IAM role using templateを選択、Role nameを記入、Pollicy templatesはLambda-invoke command permissionsを選択します。
    image.png

  6. Notificationsの設定をします。Topicは予め作成しておき、そちらを選択しConfigureをクリックします。
    image.png

実行

  1. 作成したチャンネルの上部にある⚡マークをクリックすると、先程作成したアクションが表示されるので選択します。
    image.png

  2. yes/noで確認があるのでyesを選択するとAWS Lambdaが実行され結果が返ってきます。
    image.png

まとめ

以上AWS Chatbot, Slack ワークフロービルダー, AWS Lambdaを用いてアクションを作成しました。
まだベータ版ではありますが、Chatbotを利用すると作業をより簡単にできそうです。

明日は@ohbashunsukeさんの記事です。

10
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?