ブログ

【Salesforce AWS】初心者でも大丈夫!AppFlowのスムーズな使い方と意外な落とし穴

この記事をSNSでシェア!

こんにちは。株式会社KYOSO BS事業部BSグループの奥田です。

Amazon Web Serviceが提供している「Amazon AppFlow」(以下、AppFlowとして省略)は、ノンコーディングでSaaSアプリケーションとデータ連携ができるサービスです。

どの分野においても言えることですが、時間経過に比例し、データも増えていきます。

Salesforceはリソースが限られており、増やすためには莫大なコストがかかってきます。

しかし、この方法でSalesforceのデータをAWSに退避させると、Salesforce上のレポート、ダッシュボードで扱うデータのみに制限し、他のデータはAWS上で保管しておけます。

Salesforce開発を進める上で、ストレージ容量で悩む方も少なくないのではないでしょうか。

そこで今回は、AppFlowを実際に使用し、スムーズな使い方や注意点、他サイトには記載のない内容等について記載していきます。

Salesforce技術者の方にとって、ストレージ容量の問題解決に繋がれば幸いです。

フローの作成手順

前提として、Salesforce、AWSのアカウントがある想定で進めていきます。

今回は、SalesforceのオブジェクトにあるデータをAWSのS3に移行します。

AWSのサービス一覧からAppFlowを選択することで、以下のような画面になります。

ここで、「フローを作成」を選択することで、AppFlowの作成画面に遷移します。

図1.AppFlow作成画面

最初にフロー名、フローの説明、データ暗号化、タグを指定します。

フロー名は、英数字と特殊文字 !@#.-_ の組み合わせで、以前のフロー名と一致しないようにします。

フローの説明は、英数字と特殊文字 !@#-_?, の組み合わせで、2048 文字未満にする必要があります。

データ暗号化は、デフォルトでAWS が所有し管理するキーで暗号化されますが、「暗号化設定をカスタマイズする(高度)」にチェックを入れることで、AWS KMSキーを選択して暗号化することもできます。

タグについては、必要に応じて任意の値を入れます。

フロー名とデータ暗号化は、一度保存されてしまうと再編集ができなくなるので、注意が必要です。

ここまで設定できたら、「次へ」を選択します。

図2.フローの詳細設定画面

次に、接続先を指定します。

送信元名には、Salesforceを指定します。

「Salesforce接続先を選択」を選択して、「新規接続を作成」を選択します。

「AWS PrivateLinkで新規接続を作成する」を選択することで、Salesforceの非公開接続を使用することもできます。

一度、接続することで次回以降には「既存の接続」として再度接続情報を入力する手間が省けるようになります。

図3.フローの送信元設定画面

「新規接続を作成」を選択すると、Salesforce環境の詳細を入力する画面に遷移します。

接続名には、次回以降に「既存の接続」として表示されることも考慮し、英数字と特殊文字 !@#.-_+= の組み合わせで入力します。

接続名が入力できたら、「続行」を選択します。

図4.Salesforce接続設定画面

Salesforceのログイン画面に遷移するので、接続するSalesforce環境にログインします。

図5.Salesforceログイン画面

ログインが成功すると、「Salesforce接続を選択」に指定した接続名が表示されます。

次に、接続するオブジェクト(もしくはイベント)を選択します。

図6.フローの送信元設定画面(送信元設定後)

次に、送信先を指定します。

送信先名には、Amazon S3を指定します。

バケットの詳細には、データ格納先のバケットを指定します。

「バケットプレフィックスを入力」には、格納先がバケット直下ではない場合に、格納先のフォルダまでのパスを入力します。

送信先の詳細は、一度保存されてしまうと再編集ができなくなるので、注意が必要です。

図7.フローの送信先設定画面

送信先の「その他の設定」では、以下のようにデータ形式やファイル名等、詳細な設定ができます。

図8.フローのその他の設定画面

次に、フローを実行するタイミングを決めます。

「オンデマンド実行」を選択すると、フローを手動で実行できます。

図9.フロートリガー設定画面

「スケジュール通りにフローを実行」を選択すると、以下のようにスケジュールを設定してフローを自動で実行させられます。

図10.フロートリガー設定画面(スケジュール実行押下時)

次に、データフィールドをマッピングします。

手動で必要な項目のみマッピングできます。

図11.マッピング設定画面(手動マッピング押下時)

また、マッピングされたCSVを使っても自動マッピングさせられます。

図12のようにカンマで区切られた 1 行で、それぞれのソースフィールドとターゲットフィールドのペアを指定し、 CSV ファイルを作成します。

図12.マッピング用CSVファイル

図13.マッピング設定画面(CSVマッピング押下時)

データの妥当性を確認し、無効なデータはフロー実行の対象外にできます。

図14.妥当性確認設定画面

次に、フィルターを追加します。

フィールド名、条件を指定すると扱いたいデータのみに絞り込めます。

但し、条件としてはリテラルの値のみ指定可能で、動的な値を扱うことはできません。

図15.フィルター設定画面

最後に、「フローを作成」を選択すると、フローの作成が完了します。

図16.フロー作成ボタン

「フローを実行」を選択すると、作成したフローを即時に実行することができます。

図17.フロー実行ボタン

フロー作成時の注意点まとめ

・フロー名とデータ暗号化、送信先の詳細は、一度保存されてしまうと再編集ができない。

・フィルター条件は、リテラルの値のみ指定可能で、動的な値を扱うことができない。

最後に

今回は、実際にAmazon AppFlow を使用してSalesforceとAmazon S3を連携してみました。

想定していたよりも簡単で、既にAWSを使用されている方であればすぐに実装できると感じました。(私は今回初めてAWSを触りましたが、問題なく動かすことができました。)

注意点にも記載しましたが、AppFlow は作成時点でしか決められない設定内容があり、それを知らない状態で安易に作成してしまうと、いくつもAppFlowを作成し直さないといけなくなります。

事前に知っておくことで、不要なフローを作成することなく、スムーズにSalesforceとAWSの連携をできます。AppFlowを作成する際の参考にしていただければ幸いです。

今回のように、Salesforceの課題となるストレージ容量をAWSで補完することで、より一層Salesforceでの実装の幅を増やせると考えております。

今後もSalesforceとAWSの連携を進めていき、不明点等やタメになった内容がありましたら投稿していきます。

参考

Amazon AppFlow が新たに Salesforce 統合のサポートを開始

Amazon AppFlow のよくある質問

この記事をSNSでシェア!