管理画面はもういらない!?SlackとChatbotを連携する


この記事は ZOZOテクノロジーズ #3 Advent Calendar 2020 10日目の記事になります。

昨日はedm17さんのCALayerのrender(in:)がやっているであろうことをUIViewのdraw(_:)で再現してみるでした。自分は最近Swiftいじってないのでまたはじめようかな。。。

はじめに

多くのシステムで、管理画面というアプリケーションを作る必要があると思います。
内部で使うシステムなので、まあまあ画面も適当で動けばよかったり(そして使用するメンバーに怒られる・・・)、運用開始してから作成されたり、というのはあるあるですね。

また作成したらしたでメンバーに展開し、使い方を説明したり、不具合修正が多かったりとまあ負債になりがちなのも管理用のシステムかと思います。

であるならば、もっと使い勝手良く、なんなら普段やり取りしているSlackオンリーで全て完結できたらいいのに。。。ということで試してみました。AWS Chatbot!

使い方の入り口の入り口のみですが試してみたので連携方法をご紹介しようかと思います。

AWS Chatbotを試す

チャットクライアントの設定

まずは、ここでSlackを選択し、クライアントを設定します。
そして、Slackアクセスの権限を許可します。

新しいチャネルを設定

新しいチャネルを設定をクリックして、設定項目を埋めます。
特段難しい設定はないかと思います。
ロールには、Lambdaを呼び出すためLambdaInvokeの権限を追加しています。

こんな感じで設定もそれほど難しくないですね。
必要に応じてSNSの設定もできます。

呼び出すLambdaを作成

今回はこんなコードで、関数名はSampleChatbotにしています。(あくまでサンプルです)。

import json

def lambda_handler(event, context):
    print(event['new_customer'])
    new_customer = event['new_customer']
    return {
        'statusCode': 200,
        'body': json.dumps('Add New Customer!{}'.format(new_customer))
    }

Slack側の設定

登録したチャネルにAWSのアカウントを招待します

これでSlackからLambdaを叩けるようになります。

実行するか聞かれた後、Yesを選択するとレスポンスが返ってきます。

Slackのワークフローを作成する

ここまでできたら後はSlackのワークフローに登録すれば完了です。
(Slackのワークフローの機能はSlackの有料版の機能です)

Slackのワークフロービルダーから自由にフォームを作成し、最後にLambdaを実行するようにします。

終わりに

これらの機能を活用すれば、例えば検索や一覧を出すこともできると思います。
普段使用しているSlackから管理側の機能を呼び出すこともできるでしょう。

管理用のアプリというのはとかく後回しにされがちで使いにくくても仕方ないというケースが多いと思います。
Slackから利用できる便利さと、さっと作れる便利さを得られるをAWS Chatbotぜひご活用ください。

明日はkoiwai2020さんです!
昨日のedm17さんと明日のkoiwai2020さんでiOSのプロフェッショナルに囲まれましたね。。。