はじめに
こんにちは。冬は毎年ミカンを食べすぎてしまうCI部の加藤です。 みなさん今年の年末年始はいかがお過ごしでしたでしょうか。
今回は、2020年4月に発表された Amazon AppFlow についてご紹介していきたいと思います。
最近のre:InventのUpdateはこちらになります。
【re:Invent 2020】AppFlowがHoneyCodeへのデータ送信に対応しました! - サーバーワークスエンジニアブログ
AppFlow とは
公式ドキュメントを読むと以下のよう記載があります。
Amazon AppFlow は、Salesforce、Marketo、Slack、および ServiceNow などの Software-as-a-Service (SaaS) アプリケーションと、 Amazon S3 や Amazon Redshift などの AWS サービスとの間で、 たった数回のクリックでデータを安全に転送できるフルマネージド統合サービスです。
AWS と SaaS のサービス間でデータ送信を設定できます。
また、転送時と保管時にデータは自動的に暗号化がなされます。
対応している SaaSのサービスであれば、PrivateLink を利用してプライベートな通信も可能です。
AppFlowが登場することで何が変わったのか
今までは ALB+EC2 や Amazon API Gateway+AWS Lambda など複数のサービスを利用して連携する必要がありました。
そのため、コストや実装方法について課題や考慮する点がありました。
しかし AppFlow が登場したことにより、AppFlow の設定のみでコーディングなどすることなく簡単に連携できるようになりました。
利用可能なサービス
2021/01/05現在において、接続可能な AWS サービス、SaaS は以下のようになっております。
サービスの発表から今日まで頻繁にアップデートがあり、今後も対応する AWS サービスや SaaS アプリケーションは増えていきそうです。
ソース、宛先で選択可能
AmazonS3、Salesforce
ソースのみ選択可能
Amplitude、Datadog、Dynatrace、GoogleAnalytics、InforNexus、Marketo、Salesforce Pardot、ServiceNow、Singular、Slack、トレンドマイクロ、Veeva、Zendesk
宛先のみ選択可能
AmazonEventBridge、AmazonHoneycode、Amazon Lookout forMetrics、AmazonRedshift、Snowflake、Upsolver
設定手順
今回は Slack から S3にデータを転送します。
手順1 フローの詳細を指定
[フローを作成]を選択して設定を開始しましょう。
まずは、フローの名前を設定します。
フローの名前以外はオプションになりますので、適宜設定してください。
手順2 フローを設定
Slack側の設定
今回はSlack から必要情報を取得します。
Slack アカウントにログインし、[管理]、[アプリを管理] の順に進みます。
右上隅で、[ビルド]、[Your Apps] の順に選択します。
アプリをすでに設定している場合は、設定しているアプリを選択します。
まだ設定していない場合は [Create an App] から新規で設定します。
[Basic Information] セクションで [App Credentials] に移動し、[Client ID] と[Client Secret]を控えておきます。
[OAuth & Permissions]セクションの[ OAuth Tokens & Redirect URLs ]から Redirect URLs を設定します。
東京リージョンの場合は以下のURLを設定します。
https://ap-northeast-1.console.aws.amazon.com/appflow/oauth
[Scopes]から User Token Scopes を設定します。
Slack側の設定はこれで完了です。
AWS側の設定
Slack に接続するための情報を入力します。
送信元名に Slack を選択し、[接続する]を選択します。
Slack 側の設定の際に控えておいた[ Client ID ] と[ Client Secret ]の情報、ワークスペースの情報、接続名(任意)を入力して[続行]を選択します。 必要な情報はサービスによって異なりますので、公式ドキュメントで連携させたいサービスの要件をご確認ください。 docs.aws.amazon.com
[ Slack オブジェクト]、 [ Slack チャネル]を選択します。
次に、送信先の情報を設定します。今回は Amazon S3 に送信します。
送信先名に Amazon S3 を選択し、データを保存するバケット名を指定します。
フロートリガーを設定します。
今回はオンデマンドで実行します。
手順3 データフィールドをマッピング
送信元のフィールド名を選択します。
今回は User、Text を選択しています。
データフィールドはフロー作成後にも変更可能です。
手順4 フィルターを追加する
今回は特に設定せずに、次に進みます。
手順5 確認して作成
特に問題がなければそのまま[フローを作成]を選択します。
フローを実行します。正常に完了すると画像のようなメッセージが出ます。
記載されている URL から飛ぶと新しくフォルダとファイルが追加されていました。
ファイルの内容を確認すると、指定した User と Text のデータフィールドの情報が取得できていました!
Slack のデータを Amazon S3 に無事転送できました。
最後に
とても簡単にSlackのデータを AWS のサービスに送信することができました。
みなさんもこの機会に、ぜひ利用してみてください!