Appflowを使ってみたら躓いたポイント

はじめに

こんにちは。クラウド活用推進担当の安田です。

今回は、Amazon Appflowを使ってみた時に発生したエラーと、解決方法についてまとめたいと思います。

Appflowの接続方法から説明しますので、最後まで読んでいただければ幸いです。

目次

  1. Amazon Appflowとは?
  2. Appflowを使ってやったこと
  3. Appflowを使ったSlackとAWSの連携手順
  4. エラーの発生と解消方法
  5. 最後に

Amazon Appflowとは?

Amazon Appflowは、AWSが提供するデータ統合サービスで、様々なSaaSアプリケーションとAWSサービス間でコーディング無しでデータを簡単に転送することができます。

Appflowを使ってやったこと

Appflowを使ってSlackの内容をS3に連携させました。

Appflow構成図.png

AppFlowでは、データの取得元である「送信元」と、取得したデータの保存先である「送信先」を設定します。

今回は、送信元をSlack、送信先をAmazon S3に設定し、Slackチャンネルのメッセージ履歴を取得しました。

SlackとAWSの連携手順

ステップ1: Slackの設定

  1. Slackアプリの作成
  2. Slackにログインし、ワークスペースを開きます。

    ワークスペースの左メニューから「その他」→「自動化」→「App」→「アプリをブラウズする」で管理画面に遷移します。

    スクリーンショット 2025-04-09 132129.png

    右上の「ビルド」をクリックし、「Your Apps」をクリックします。

    スクリーンショット 2025-04-09 132149.png スクリーンショット 2025-04-09 132204.png

    遷移後、「Create an App」を選択肢して「From scratch」を選択し、アプリ名をワークスペースを指定してアプリを作成します。

    スクリーンショット 2025-04-09 132212.png スクリーンショット 2025-04-09 132633.png

    アプリの作成後、「Basic Information」からクライアントID、クライアントシークレットをメモします。

    スクリーンショット 2025-04-09 132958.png
  3. OAuthスコープの設定:
  4. アプリのOAuth & Permissionsセクションで、ユーザートークンスコープを設定します。以下のスコープを追加します:

    - channels:history
    - channels:read
    - groups:history
    - groups:read
    - im:history
    - im:read
    - mpim:history
    - mpim:read
    スクリーンショット 2025-04-09 133304.png スクリーンショット 2025-04-09 133310.png
  5. リダイレクトURLの設定:
  6. OAuth & PermissionsセクションでリダイレクトURLを設定します。今回は東京リージョンを使用する場合として、以下のURLを設定します:

    https://ap-northeast-1.console.aws.amazon.com/appflow/oauth

    スクリーンショット 2025-04-09 133420.png
  7. アプリのインストール:
  8. 作成したアプリを「Install App」からワークスペースにインストールします。

    スクリーンショット 2025-04-09 133516.png

これでSlack側の設定は完了です。次にAWS側の設定を行います。

ステップ2: S3バケットの作成

  1. AWS Management Consoleにログインし、S3サービスに移動します。
  2. 新しいバケットを作成します。今回はデフォルト設定のまま作成しました。
  3. スクリーンショット 2025-04-09 133819.png

ステップ3: SlackとAppflowの接続

  1. Appflowの設定:
  2. AWS Management Consoleにログインし、Appflowサービスに移動します。

    「フローを作成」をクリックし、フローの名前と説明を入力します。

    スクリーンショット 2025-04-09 134029.png
  3. Slackとの接続:
  4. ソース名として「Slack」を選択し、「Connect」をクリックします。

    SlackのクライアントID、クライアントシークレット、ワークスペース名を入力し、接続します。

    スクリーンショット 2025-04-09 134455.png

    Slackとの接続を許可するかを聞かれるので、「許可する」を選択します。

    スクリーンショット 2025-04-09 134942.png
  5. 送信元と送信先の設定:
  6. 送信元としてどのチャンネルを接続するかを選択します。

    スクリーンショット 2025-04-09 135124.png

    送信先として「Amazon S3」を選択し、デスティネーションバケットとして作成したS3バケットを選択します。

    スクリーンショット 2025-04-09 135247.png
  7. フローの設定:
  8. データに含まれるフィールドについて、送信元と送信先でマッピングを行います。

    細かく指定もできますが、「送信先フィールド名」で「すべてのフィールドを直接マッピングする」を選択します。マッピングされたフィールドが自動的に設定されます。

    スクリーンショット 2025-04-09 135419.png

    「フィルターを追加する」は何も設定せずに進めます。

    最後に「フローを作成」をクリックして設定完了です。


ステップ4: フローの実行と実行結果の確認

作成したフローの画面から「フローを実行」を押下します。

スクリーンショット 2025-04-09 135722.png

送信先に選んだS3バケットを確認すると以下のパスでファイルが保存されています。

スクリーンショット 2025-04-09 135846.png

これでAppflowを使ったSlackからS3へのデータ連携を確認できました!

エラーの発生と解消方法

エラーの詳細

ステップ3のフロー作成時のSlackとの接続で、Slackへの接続が許可されず以下のエラーが発生しました。

スクリーンショット 2025-04-09 140245.png



解消方法

原因は、マネジメントコンソールでマルチセッションサポート機能をオンにしていたことが原因でした。

マルチセッションサポートは2025年1月に登場した機能であり、AWSマネジメントコンソールで、1つのブラウザから最大5つの異なるIDで同時にサインイン可能になるものです。

スクリーンショット 2025-04-09 140511.png

Appflowの公式ドキュメントにも記載があり、Appflowを使うときはマルチセッションはオフにする必要があるようです。

Amazon AppFlow 接続の管理

最後に

Appflowを使ってSlackの内容をS3に連携させる手順と、発生したエラーについて紹介しました。

マルチセッション機能は最近登場した機能なので、調べても原因が分からず解決に手間取りました。

Appflowを使って同じエラーで悩んでいる方の参考になれば幸いです。ここまで読んでいただき、ありがとうございました。


参考

Amazon Appflow / Slack

Amazon AppFlow 接続の管理

カテゴリー

クラウド基盤ソリューション