Amazon AppFlowでSalesforceとAmazon S3 Bucketを接続する
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 公式ドキュメント
Salesforce trailhead内のAppflowのラーニングモジュール
②接続がうまくいかない場合
にて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
終わりに
機会を見て、次回はCloudFormationでConnectorProfileやFlowの作成もしてみたいと思いました。
お付き合い有難うございました!
Discussion