前回に引き続き
フェイス・ソリューション・テクノロジーズ株式会社 IS 本部 OS ユニットの masです。
前回に引き続きAPI Gatewayの作成~テストまでの作業手順をご紹介します。
なお、今回の記事に記載されている手順は前回からの続きになっております。
最初から操作手順をご覧になりたい場合は下記の記事からご覧いただきますようお願いします。
作業手順
AWSでの作業
API Gatewayを作成する
API Gatewayサービスを開きます。
APIを作成をクリック
REST APIの構築をクリック

画像を参考に下記の通り設定してAPIの作成をクリック
API名 : 好きな名前

リソースの画面に移動するのでアクションをクリックし、メソッドの作成をクリック
表示されたプルダウンリストをクリックしPOSTをクリック

画像を参考に設定し保存をクリック
統合タイプ : Lambda関数
Lambdaリージョン : Lambdaを作成したリージョン
Lambda関数 : 上記で作成したLambda
権限を追加するかどうか確認されるのでOKをクリック

またリソースの画面に戻ってくるのでアクションからAPIのデプロイをクリック

デプロイされるステージは新しいステージを選択し、任意のステージ名を入力してデプロイをクリック
ステージエディター画面が開いてURLの呼び出しのところにURLが入っている。
このURLをSlackのEvent Subscriptionに登録することでSlackのeventをlambdaで受け取ることができるようになるんですが、詳しくはこの後で説明します。
Slackでの作業
appを作成する
下記にアクセスしてappを作成します。
Create New Appをクリック
From scratchをクリック

「App Name」は好きなアプリ名を入力する。
「Pick a workspace to ~」は自分のSlackのワークスペースを選択してCreate Appをクリック。
appにファイルがアップロードされたら通知を飛ばすEventを設定する

Event Subscriptions をクリック
Enable EventsをOnにする。

Request URLにAPI Gatewayから取得したURLを貼り付ける
しばらく待っていると画像のようにVerified(検証済)と出てくる

ちょっと下にスクロールし、subscribe to bot eventsをクリック

プルダウンリストの中にfile_publicというのがあるので探してクリック
右下の方のSave Changesをクリック
ワークスペースにappをインストールする

アプリの設定画面の左のリストから「OAuth & Permissions」をクリック
「OAuth Tokens for Your Workspace」という項目があるのでInstall to Workspaceボタンをクリック

権限をリクエストしていますという画面が表示されるので「許可する」をクリック

「OAuth Tokens for Your Workspace」にBot User OAuth Token というのが表示される(これ以降はtokenと呼ぶ)
Copyしてテキストに貼り付けたりして保管する。
ちなみに重要な情報なので他の人に盗まれないように気を付けて管理しましょう。
ファイルがアップロードされるチャンネルにアプリをインストールする
Slackを開いてファイルがアップロードされるチャンネルを右クリック

チャンネル詳細を表示するをクリック

インテグレーションタブのアプリを追加するをクリック

検索窓で自分の作成したアプリを探し追加する。
追加ができたらチャンネル詳細をもう一度開く
チャンネル情報の一番下にチャンネルIDが書いてあるので控えておく
Lambdaに環境変数を登録する

設定タブをクリックして環境変数をクリック、表示された画面の編集をクリック

環境変数の追加をクリック後、下記の内容を入力し、保存をクリック
キー → SLACK_ACCESS_TOKEN
値 → Slackで取得したtokenを入力
ここまでで準備は完了。
最後にテストタブへ移動しテストをクリックする。
テスト
アプリをインストールしたチャンネルにファイルをアップロードしてみてください。
その後AWSのS3バケットにファイルが保存されていれば成功です。
コメント