こんにちは。クラウド活用推進担当の安田です。
今回は、Amazon Appflowを使ってみた時に発生したエラーと、解決方法についてまとめたいと思います。
Appflowの接続方法から説明しますので、最後まで読んでいただければ幸いです。
Amazon Appflowは、AWSが提供するデータ統合サービスで、様々なSaaSアプリケーションとAWSサービス間でコーディング無しでデータを簡単に転送することができます。
Appflowを使ってSlackの内容をS3に連携させました。
AppFlowでは、データの取得元である「送信元」と、取得したデータの保存先である「送信先」を設定します。
今回は、送信元をSlack、送信先をAmazon S3に設定し、Slackチャンネルのメッセージ履歴を取得しました。
Slackにログインし、ワークスペースを開きます。
ワークスペースの左メニューから「その他」→「自動化」→「App」→「アプリをブラウズする」で管理画面に遷移します。
右上の「ビルド」をクリックし、「Your Apps」をクリックします。
遷移後、「Create an App」を選択肢して「From scratch」を選択し、アプリ名をワークスペースを指定してアプリを作成します。
アプリの作成後、「Basic Information」からクライアントID、クライアントシークレットをメモします。
アプリのOAuth & Permissionsセクションで、ユーザートークンスコープを設定します。以下のスコープを追加します:
- channels:historyOAuth & PermissionsセクションでリダイレクトURLを設定します。今回は東京リージョンを使用する場合として、以下のURLを設定します:
https://ap-northeast-1.console.aws.amazon.com/appflow/oauth
作成したアプリを「Install App」からワークスペースにインストールします。
これでSlack側の設定は完了です。次にAWS側の設定を行います。
AWS Management Consoleにログインし、Appflowサービスに移動します。
「フローを作成」をクリックし、フローの名前と説明を入力します。
ソース名として「Slack」を選択し、「Connect」をクリックします。
SlackのクライアントID、クライアントシークレット、ワークスペース名を入力し、接続します。
Slackとの接続を許可するかを聞かれるので、「許可する」を選択します。
送信元としてどのチャンネルを接続するかを選択します。
送信先として「Amazon S3」を選択し、デスティネーションバケットとして作成したS3バケットを選択します。
データに含まれるフィールドについて、送信元と送信先でマッピングを行います。
細かく指定もできますが、「送信先フィールド名」で「すべてのフィールドを直接マッピングする」を選択します。マッピングされたフィールドが自動的に設定されます。
「フィルターを追加する」は何も設定せずに進めます。
最後に「フローを作成」をクリックして設定完了です。
作成したフローの画面から「フローを実行」を押下します。
送信先に選んだS3バケットを確認すると以下のパスでファイルが保存されています。
これでAppflowを使ったSlackからS3へのデータ連携を確認できました!
ステップ3のフロー作成時のSlackとの接続で、Slackへの接続が許可されず以下のエラーが発生しました。
原因は、マネジメントコンソールでマルチセッションサポート機能をオンにしていたことが原因でした。
マルチセッションサポートは2025年1月に登場した機能であり、AWSマネジメントコンソールで、1つのブラウザから最大5つの異なるIDで同時にサインイン可能になるものです。
Appflowの公式ドキュメントにも記載があり、Appflowを使うときはマルチセッションはオフにする必要があるようです。
Appflowを使ってSlackの内容をS3に連携させる手順と、発生したエラーについて紹介しました。
マルチセッション機能は最近登場した機能なので、調べても原因が分からず解決に手間取りました。
Appflowを使って同じエラーで悩んでいる方の参考になれば幸いです。ここまで読んでいただき、ありがとうございました。