Amazon AppFlow:Salesforce 与 AWS 的安全双向数据流

Amazon AppFlow 是 AWS 提供的集成服务,让你只需几次点击就能在 Salesforce 与 AWS 服务之间安全地双向传输数据。本文介绍 AppFlow 的功能、使用场景、安全保障,以及如何配置从 Salesforce 到 S3 的定时 flow 和从 S3 反向写回 Salesforce 的 flow。...

📅 2026/8/23 ✍️ ponybai 🏷️ salesforce, aws, integration, headless

学习目标

slide_2

完成本单元后,你将能够:

  • 描述 Amazon AppFlow 的功能与优势
  • 解释 AppFlow 的使用场景
  • 说明 AppFlow 如何与 Salesforce Private Connect 协作以保障数据传输安全
  • 列出 AppFlow 的系统要求

认识 Amazon AppFlow

slide_3

Amazon AppFlow 是 AWS 提供的一项集成服务,让你只需几次点击,就能在 Salesforce 与 AWS 服务(如 Amazon S3、Amazon EventBridge、Amazon Redshift)之间传输数据。数据可以双向流动:既能把 Salesforce 记录备份到 S3、喂给分析管道,也能用 S3 中的数据在 Salesforce 里新建或更新记录。

你可以通过 AppFlow 控制台、API、CLI 或 AWS CloudFormation 模板来配置,并选择按需、按计划或事件驱动的方式触发数据传输。

AppFlow 使用场景

slide_4
  • 数据备份:Salesforce 管理员 Joe 每天夜里把数百万条联系人和服务工单备份到 Amazon S3。
  • 实时分析:分析师 Jill 在商机状态从"进行中"变为"已赢单"的那一刻,就把商机记录送到 Amazon Redshift,并在传输过程中自动掩码 Account ID。
  • 双向智能:BI 专家 Janus 在 AWS 中合并服务与销售数据,计算情绪分与增长潜力,让仪表板近实时更新,再把洞察写回 Salesforce。

保障数据安全

slide_5

AppFlow 默认对传输中和静态的数据进行加密,可使用 AWS 托管密钥,也可选择自己的密钥以掌控密钥策略、必要时撤销授权。

AppFlow 还能与 Salesforce Private Connect 协作:AppFlow 位于 AWS 环境与 Salesforce Private Connect 之间,为每次传输自动创建 AWS PrivateLink 端点,让数据通过私有网络连接传输、绝不暴露在公网;传输完成后自动删除端点,不留下任何连接,也无额外费用。

AWS 要求

slide_6
  • 需要一个 AWS 账户(可免费注册,只有使用付费服务才收费)。
  • AppFlow 本身是付费服务,按 flow 执行次数和从 Salesforce 到 AWS 的每 GB 数据量计费。
  • 登录 AWS 管理控制台后,在"查找服务"中输入 appflow,点击 Amazon AppFlow 进入。
  • 如果你不是 AWS 管理员,需要为角色附加 AmazonAppFlowFullAccess 策略才能创建和运行 flow。

Salesforce 要求

slide_7
  • Salesforce 账户需启用 API 访问(Enterprise、Unlimited、Developer、Performance 版默认启用)。
  • 组织需允许安装连接应用(也是默认设置)。
  • 如果组织强制 IP 限制,需放行 AWS IP 地址段。
  • Amazon AppFlow Embedded Login App 的刷新令牌策略必须设为"刷新令牌在撤销前一直有效",否则令牌过期后 flow 会失败。
  • 使用事件驱动触发器需启用变更数据捕获(CDC)。
  • 使用 AWS PrivateLink 建立私有连接需具备"管理元数据"和"管理外部连接"权限。

让数据流动起来

slide_8

现在你已经了解 AppFlow 是什么、如何保障数据安全、有哪些真实使用场景,以及 AWS 和 Salesforce 两端的先决条件。接下来进入动手环节:在单元 2 中,你将一步步配置一个从 Salesforce 到 AWS 的简单 flow。

设置一个简单 Flow

slide_9

本单元进入动手环节,配置一个把数据从 Salesforce 定时发送到 AWS 的简单 flow。由于 AppFlow 是付费服务,我们不会在 Trailhead 环境里真的创建 flow,而是把这些步骤作为集成指南。

学习目标

slide_10

完成本单元后,你将能够:

  • 从头到尾设置一个简单的 flow
  • 为 flow 配置计划任务和筛选条件
  • 在 Salesforce Setup 中确认 AppFlow 已连接

第 1 步:命名 Flow

slide_11
  1. 登录 AWS 管理控制台。
  2. 在"查找服务"中输入 AppFlow,点击 Amazon AppFlow。
  3. 点击 Create flow。
  4. 在 Flow details 中填写 flow 名称和描述。本例中名称为 SalesforceToAmazonS3Demo,描述为 "Copy opportunity records from Salesforce into an Amazon S3 bucket."。
  5. 点击 Next。

命名要清晰简洁,让同事一眼看懂 flow 的用途。

第 2 步:连接 Salesforce

slide_12
  1. 在 Source name 下拉框中选择 Salesforce。
  2. 选择现有的 Salesforce 连接;如果没有,选择 Create new connection,或使用 Salesforce Private Connect 时选择 Create new connection with AWS PrivateLink。
  3. 点击 Connect,在弹窗中选择生产或沙箱组织。
  4. 填写 Connection name(如 MySalesforceProdConnection),点击 Continue。
  5. 在 Salesforce 授权页登录并点击 Allow。
  6. 选择数据源类型:Salesforce Objects(获取具体对象记录)或 Salesforce Events(订阅 CDC / 平台事件)。
  7. 目标选择 Amazon S3,并选择与 flow 同一区域的 S3 存储桶。
  8. 在 Additional Settings 中可配置数据格式(JSON/CSV/Parquet)、文件命名和聚合偏好。

配置 Flow

slide_13

选择 flow 的运行方式:

  • 按需运行:保存配置后立即执行,适合一次性传输或测试。
  • 按计划运行:设置循环周期,本例为每 1 分钟运行一次,并配置为只传输自上次运行以来的新数据。

可以使用 Salesforce 的日期字段(如 Create Date 或 Last Modified Date)来识别变更。增量传输比每次全量搬运更高效、成本更低。

映射字段

slide_14

AppFlow 支持手动逐个选择字段、上传 CSV 映射文件,或一键映射所有字段。本例选择了以下字段:

  • Account ID、Deleted、Master Record ID、Account Type、Parent Account ID、Billing Street

还可以为字段添加公式,在传输中掩码敏感字符、截断长字段,或合并两个字段生成新目标字段。

验证

slide_15

在 Validations 中,可以按字段添加验证规则来驱动特定动作。例如,选择 Account Type 字段并设置条件:如果 Account Type 缺失或为空,则忽略该记录。验证是可选的,但对生产 flow 强烈推荐,它能避免坏数据流入下游分析。

筛选数据

slide_16

筛选让你只传输真正需要的数据。例如,针对 Created Date 字段设置"早于 2020/04/01"的条件,就只包含 2020 年 4 月 1 日之前创建的记录。筛选能降低传输量(从而降低成本)、让下游数据集更干净、处理更快。

检查 Flow

slide_17

最后一步是检查并创建 flow。核对 flow 名称、源连接、目标存储桶、计划、字段映射、验证和筛选后,点击 Create flow。若是计划 flow,点击 Activate Flow;若是按需 flow,点击 Run Flow。数据管道即告上线。

确认 Flow 已连接

slide_18
  1. 登录 Salesforce,点击齿轮图标进入 Setup。
  2. 在 Quick Find 中输入 connected app,进入 Manage Connected Apps,确认 Amazon AppFlow Embedded Login App 已列出。
  3. 在 Connected Apps OAuth Usage 中,确认其刷新令牌策略为"刷新令牌在撤销前一直有效"。

这一条至关重要——若令牌过期,flow 会静默失败。

让数据双向流动

slide_19

本单元介绍 AppFlow 的双向能力:通过变更数据捕获(CDC)和平台事件,让 Salesforce 在有记录变更时自动把数据推送给 AWS;以及反过来,把数据从 Amazon S3 推送回 Salesforce。

学习目标

slide_20

完成本单元后,你将能够:

  • 设置 Salesforce 变更数据捕获(CDC)和平台事件,自动把 Salesforce 数据发送到 AppFlow
  • 设置一个把数据从 Amazon S3 发送到 Salesforce 的 flow

在 Salesforce 中启用 CDC

slide_21
  1. 在 Salesforce 中点击齿轮图标,选择 Setup。
  2. 在 Quick Find 中输入 change data capture,点击 Change Data Capture。
  3. 选择要跟踪的对象,移到右侧 Selected Entities 列。
  4. 点击 Save。

常见跟踪对象:Account、Contact、Lead、Case、User。此后 Salesforce 会为这些对象的每次创建或更新生成变更事件通知。

在 AppFlow 中设置事件触发器

slide_22
  1. 在 AWS 控制台进入 AppFlow,点击 Create flow。
  2. 按单元 2 的步骤创建 flow。
  3. 关键区别:选择 Source 时选 Salesforce events(而非 Salesforce Objects),并从下拉框选择 Salesforce Event Name。
  4. 在 Flow trigger 页选择 Run flow on event。

此后,只要 Salesforce 中记录被创建或字段变更,AppFlow 就自动传输数据。可在 Run history 中监控事件。注意:只会发送你映射过的字段。

从 AWS 向 Salesforce 传输数据

slide_23

先准备:创建 S3 存储桶、在其中创建文件夹、创建映射到目标 Salesforce 对象的 CSV 文件并上传到该文件夹。

创建 flow 时:源选 Amazon S3,目标选 Salesforce(需登录授权),选择要更新的 Salesforce 对象。

三种更新模式:

  • 插入(Insert):每行 CSV 成为一条新记录。
  • 更新(Update):按 ID 匹配修改现有记录,未匹配的行按错误处理设置忽略或失败。
  • Upsert:有匹配则更新,无匹配则插入,最适合混合数据。

创建 CSV(S3 → Salesforce)

slide_24
  • 表头行必须包含与 Salesforce 字段名完全一致(区分大小写)的字段名。
  • 包含一个 UniqueID 列,用于映射到 Salesforce 记录 ID。
  • 每行对应一条要插入或更新的记录:更新现有记录需填 Salesforce 记录 ID;新建记录则留空 UniqueID,由 Salesforce 自动生成。

创建 S3 → Salesforce Flow

slide_25
  1. AWS 控制台 → AppFlow → Create flow。
  2. 命名并描述 flow,点击 Next。
  3. 源选 Amazon S3,选择存储桶并填写文件夹前缀。
  4. 目标选 Salesforce,登录授权。
  5. 选择目标 Salesforce 对象。
  6. 选择更新模式:Insert / Update / Upsert。
  7. 映射字段:把 CSV 的 UniqueID 列映射到 Salesforce 的 ID 字段。
  8. 配置验证、筛选和计划。
  9. 检查后点击 Create flow,再 Activate 或 Run。

总结

slide_26

你现在已经完整了解 Amazon AppFlow:它能在 Salesforce 与 AWS 之间实现安全、双向的数据传输——传输中和静态均加密,经由私有连接传输、绝不经过公网。你学会了在几分钟内配置一个从 Salesforce 到 S3 的简单 flow,用 CDC 和平台事件实现事件驱动的自动传输,以及用 CSV 从 S3 反向推送数据到 Salesforce(插入、更新或 upsert)。无论在 Salesforce 还是 AWS 中,你都能获得统一的客户视图。


文章来源:Trailhead - Amazon AppFlow