12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Salesforce連携がすごいAppFlowの話

Last updated at Posted at 2021-12-08

株式会社POLテックカレンダー2021 8日目の記事です。:point_right: 前回の記事

目的

Salesforce上のデータの変更を自前のAPIサーバに伝えたい。
ただしApex(ゲームではない)は書きたくない。知見がないので。

やり方

連携基盤をAWS上に構築するなら結論↓これ。IaCしなければノーコード
[Salesforce] -> AppFlow -> EventBridge -> [APIサーバ]

AppFlowは「SaaSアプリケーションとAWSサービス間でコードなしにデータを安全に転送できるようにする統合サービス」
ってことでまさにやりたいやつ。

流れの概要

  1. AppFlowにSalesforceの変更イベントが飛んでくる。変更された項目や更新日時等が含まれる。
  2. EventBridgeのイベントバスに変更イベントが流れる。
  3. ルールのターゲット(API送信先)に指定したAPIサーバにリクエストを飛ばす。リクエストの本文はイベントの中身を変換する。

以上!としたいところだけどデバッグ、ログ、認証、監視、IaCの観点で補足(したかった)。

認証

Api Serverで認証したいケース。
実はEventBridgeのAPI送信先はOAuthのClient Credentialsに対応している。
なのでCognito等のIDaaSで認証情報を。。
力尽きたので後で追記します。

ログ

開発段階でもデバッグの際に有用なので、イベントのロギングはとりあえずやっとけばいいと思う。
datadogに飛ばす例。これはAPI Key認証を使って飛ばしてる。

参考

実はAppFlowのワークショップが用意されている。

ワークショップ概略

SalesforceからデータをAWSに持ってくる方法は二つ。

I. データの一覧を取得

Salesforceから一度に複数のデータを取得し、S3に保存。
リアルタイム性が不要ならこっちでいい。分析とか。

実行は2択

  • スケジュール実行
  • 手動実行
Ⅱ. 変更イベントの取得

Salesforce上のデータの変更時に都度Create/Update/Deleteイベントを飛ばしてもらう。
今回のように、変更イベントに対してリアルタイムに処理を実行したい場合はこっち。

代替案

今回と同じようなことはGCP(Apigee)の方でも出来そう。
AppFlow + EventBridge + StepFunctions感ある。
承認ステップ(メール)を挟めるの凄い。

まとめ

「Salesforceって絶対、AWSのこと好きですよねー」

12
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?