SlackにアップロードしたファイルをS3に保存させる②

Lambda

前回に引き続き

フェイス・ソリューション・テクノロジーズ株式会社 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を作成します。

Slack API: Applications | Slack

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バケットにファイルが保存されていれば成功です。

プロフィール
この記事を書いた人
mas

IS本部オペレーションサービスユニットでサーバ監視および映像監視担当。
趣味はカラオケだけれど、コロナの為に自粛中。
AWSの資格はクラウドプラクティショナーを取得済み。
ソリューションアーキテクトアソシエイト取得に向けて勉強中。

masをフォローする
フェイスでは一緒に働く仲間を募集しています

フェイス・ソリューション・テクノロジーズ株式会社では、一緒に働いてくれる仲間を募集しています。
いろいろな案件があるので、いろいろなことに挑戦できる会社です。
「面白いこと」に積極的なので、あなたの「面白そうなことだからやってみたい」を形にできるチャンスがあります!

Lambda
フェイススタッフブログ

コメント

タイトルとURLをコピーしました