📌

Amazon AppFlowでSalesforceとAmazon S3 Bucketを接続する

2023/04/17に公開

Amazon AppFrowに挑戦します

こんにちわ。

DevelopersIO BASECAMP参加者の加藤です。

今回はAmazon AppFrowでSalesforceとのコネクションを作成→データの抽出してみます。

是非お付き合いいただければ幸いです!

イメージ図

結果からわかった事ですが、
Appflowには今回以下のような働きをしていただいた事がわかりました。

次章から早速作成していきます。


マネジメントコンソールで作成

事前にS3Bucketを作成の上 AppFlowのコンソールに移動します。

「フローを作成」をクリック。


作成画面に移動しました。

手順1/フローの詳細を指定


フロー名とフローの説明を入力。

オプションでKMSを利用してのデータ暗号化について設定が可能ですが、今回はスキップします。


「次へ」をクリック。


手順2/フローを設定

Salesforceと入力し、同名項目を選択します。


SalesforceにはProductionとSandboxが存在します。
接続名を入力し、「接続する」をクリック。


Salesforce側の見慣れたログイン画面が登場します。

実行するユーザー名・パスワードを入力し「ログイン」をクリック。

「許可」をクリック。

これでSalesforceコネクタでの接続ができました。


手順3/フローを設定データフィールドをマッピング


フィールド名を選択し「次へ」をクリック。

※今回はテストですのでLoginHistoryフィールドからUserIdとLoginTimeのみを抽出します。


手順4/フィルターを追加する


そのまま「次へ」をクリック。


手順5/確認して作成

設定内容を確認して「フローを作成」をクリック。


フローを実行〜結果を確認

「正常に作成されました。」と表示がでました。

フローを実行をクリックしてみます。

「正常に実行を完了しました」と表示されました。


S3バケット内を確認すると、

オブジェクトが生成されています。

ダウンロードして中身を確認してみます。

無事抽出が出来ているようです!

作成された接続(コネクタープロファイル)も確認

「接続」→「コネクタ」からSalesforceを選択すると、作成された接続名が表示されました。


中を覗くと「接続認証情報」が作成されている事が見てとれます。

SecretsManagerコンソールに移動します。

シークレットが作成されていました。


値を確認してみると、accessTokenとrefreshTokenが作成されているようでした。

おまけ

①AWS、Salesforce上のドキュメント

AWS 公式ドキュメント
https://docs.aws.amazon.com/appflow/latest/userguide/what-is-appflow.html

Salesforce trailhead内のAppflowのラーニングモジュール
https://trailhead.salesforce.com/ja/content/learn/modules/amazon-appflow


②接続がうまくいかない場合

https://ip-ranges.amazonaws.com/ip-ranges.json
にてawsでリージョンの"AMAZON_APPFLOW"のIPを確認の上、Salesforce側で許可設定をしてあげてください。

対応後

Salesforceの「ログイン履歴」を確認してみます。


「Amazon AppFlow Embedded Login App」からのアクセスが「成功」しています。


③手順3で「活動履歴」を選択したがエラーが出た場合

SalesforceのActivityhistoryに関しての以下エラーが出た際、Salesforce側に既に質問と回答がありましたので参照ください。

エラーメッセージ
Amazon AppFlow received the following error:
The request failed because the service Source Salesforce returned the following error: Details: [{"message":"entity type ActivityHistory does not support query","errorCode":"INVALID_TYPE_FOR_OPERATION"}], StatusCode: 400., RequestId: xxxxxxxxxxxxxxxxxxxx

https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000Jg67lSAB



終わりに

機会を見て、次回はCloudFormationでConnectorProfileやFlowの作成もしてみたいと思いました。

お付き合い有難うございました!

デベキャン

Discussion