学习目标
完成本单元后,你将能够:
- 描述 Amazon AppFlow 的功能与优势
- 解释 AppFlow 的使用场景
- 说明 AppFlow 如何与 Salesforce Private Connect 协作以保障数据传输安全
- 列出 AppFlow 的系统要求
认识 Amazon AppFlow
Amazon AppFlow 是 AWS 提供的一项集成服务,让你只需几次点击,就能在 Salesforce 与 AWS 服务(如 Amazon S3、Amazon EventBridge、Amazon Redshift)之间传输数据。数据可以双向流动:既能把 Salesforce 记录备份到 S3、喂给分析管道,也能用 S3 中的数据在 Salesforce 里新建或更新记录。
你可以通过 AppFlow 控制台、API、CLI 或 AWS CloudFormation 模板来配置,并选择按需、按计划或事件驱动的方式触发数据传输。
AppFlow 使用场景
- 数据备份:Salesforce 管理员 Joe 每天夜里把数百万条联系人和服务工单备份到 Amazon S3。
- 实时分析:分析师 Jill 在商机状态从"进行中"变为"已赢单"的那一刻,就把商机记录送到 Amazon Redshift,并在传输过程中自动掩码 Account ID。
- 双向智能:BI 专家 Janus 在 AWS 中合并服务与销售数据,计算情绪分与增长潜力,让仪表板近实时更新,再把洞察写回 Salesforce。
保障数据安全
AppFlow 默认对传输中和静态的数据进行加密,可使用 AWS 托管密钥,也可选择自己的密钥以掌控密钥策略、必要时撤销授权。
AppFlow 还能与 Salesforce Private Connect 协作:AppFlow 位于 AWS 环境与 Salesforce Private Connect 之间,为每次传输自动创建 AWS PrivateLink 端点,让数据通过私有网络连接传输、绝不暴露在公网;传输完成后自动删除端点,不留下任何连接,也无额外费用。
AWS 要求
- 需要一个 AWS 账户(可免费注册,只有使用付费服务才收费)。
- AppFlow 本身是付费服务,按 flow 执行次数和从 Salesforce 到 AWS 的每 GB 数据量计费。
- 登录 AWS 管理控制台后,在"查找服务"中输入 appflow,点击 Amazon AppFlow 进入。
- 如果你不是 AWS 管理员,需要为角色附加
AmazonAppFlowFullAccess策略才能创建和运行 flow。
Salesforce 要求
- Salesforce 账户需启用 API 访问(Enterprise、Unlimited、Developer、Performance 版默认启用)。
- 组织需允许安装连接应用(也是默认设置)。
- 如果组织强制 IP 限制,需放行 AWS IP 地址段。
- Amazon AppFlow Embedded Login App 的刷新令牌策略必须设为"刷新令牌在撤销前一直有效",否则令牌过期后 flow 会失败。
- 使用事件驱动触发器需启用变更数据捕获(CDC)。
- 使用 AWS PrivateLink 建立私有连接需具备"管理元数据"和"管理外部连接"权限。
让数据流动起来
现在你已经了解 AppFlow 是什么、如何保障数据安全、有哪些真实使用场景,以及 AWS 和 Salesforce 两端的先决条件。接下来进入动手环节:在单元 2 中,你将一步步配置一个从 Salesforce 到 AWS 的简单 flow。
设置一个简单 Flow
本单元进入动手环节,配置一个把数据从 Salesforce 定时发送到 AWS 的简单 flow。由于 AppFlow 是付费服务,我们不会在 Trailhead 环境里真的创建 flow,而是把这些步骤作为集成指南。
学习目标
完成本单元后,你将能够:
- 从头到尾设置一个简单的 flow
- 为 flow 配置计划任务和筛选条件
- 在 Salesforce Setup 中确认 AppFlow 已连接
第 1 步:命名 Flow
- 登录 AWS 管理控制台。
- 在"查找服务"中输入 AppFlow,点击 Amazon AppFlow。
- 点击 Create flow。
- 在 Flow details 中填写 flow 名称和描述。本例中名称为 SalesforceToAmazonS3Demo,描述为 "Copy opportunity records from Salesforce into an Amazon S3 bucket."。
- 点击 Next。
命名要清晰简洁,让同事一眼看懂 flow 的用途。
第 2 步:连接 Salesforce
- 在 Source name 下拉框中选择 Salesforce。
- 选择现有的 Salesforce 连接;如果没有,选择 Create new connection,或使用 Salesforce Private Connect 时选择 Create new connection with AWS PrivateLink。
- 点击 Connect,在弹窗中选择生产或沙箱组织。
- 填写 Connection name(如 MySalesforceProdConnection),点击 Continue。
- 在 Salesforce 授权页登录并点击 Allow。
- 选择数据源类型:Salesforce Objects(获取具体对象记录)或 Salesforce Events(订阅 CDC / 平台事件)。
- 目标选择 Amazon S3,并选择与 flow 同一区域的 S3 存储桶。
- 在 Additional Settings 中可配置数据格式(JSON/CSV/Parquet)、文件命名和聚合偏好。
配置 Flow
选择 flow 的运行方式:
- 按需运行:保存配置后立即执行,适合一次性传输或测试。
- 按计划运行:设置循环周期,本例为每 1 分钟运行一次,并配置为只传输自上次运行以来的新数据。
可以使用 Salesforce 的日期字段(如 Create Date 或 Last Modified Date)来识别变更。增量传输比每次全量搬运更高效、成本更低。
映射字段
AppFlow 支持手动逐个选择字段、上传 CSV 映射文件,或一键映射所有字段。本例选择了以下字段:
- Account ID、Deleted、Master Record ID、Account Type、Parent Account ID、Billing Street
还可以为字段添加公式,在传输中掩码敏感字符、截断长字段,或合并两个字段生成新目标字段。
验证
在 Validations 中,可以按字段添加验证规则来驱动特定动作。例如,选择 Account Type 字段并设置条件:如果 Account Type 缺失或为空,则忽略该记录。验证是可选的,但对生产 flow 强烈推荐,它能避免坏数据流入下游分析。
筛选数据
筛选让你只传输真正需要的数据。例如,针对 Created Date 字段设置"早于 2020/04/01"的条件,就只包含 2020 年 4 月 1 日之前创建的记录。筛选能降低传输量(从而降低成本)、让下游数据集更干净、处理更快。
检查 Flow
最后一步是检查并创建 flow。核对 flow 名称、源连接、目标存储桶、计划、字段映射、验证和筛选后,点击 Create flow。若是计划 flow,点击 Activate Flow;若是按需 flow,点击 Run Flow。数据管道即告上线。
确认 Flow 已连接
- 登录 Salesforce,点击齿轮图标进入 Setup。
- 在 Quick Find 中输入 connected app,进入 Manage Connected Apps,确认 Amazon AppFlow Embedded Login App 已列出。
- 在 Connected Apps OAuth Usage 中,确认其刷新令牌策略为"刷新令牌在撤销前一直有效"。
这一条至关重要——若令牌过期,flow 会静默失败。
让数据双向流动
本单元介绍 AppFlow 的双向能力:通过变更数据捕获(CDC)和平台事件,让 Salesforce 在有记录变更时自动把数据推送给 AWS;以及反过来,把数据从 Amazon S3 推送回 Salesforce。
学习目标
完成本单元后,你将能够:
- 设置 Salesforce 变更数据捕获(CDC)和平台事件,自动把 Salesforce 数据发送到 AppFlow
- 设置一个把数据从 Amazon S3 发送到 Salesforce 的 flow
在 Salesforce 中启用 CDC
- 在 Salesforce 中点击齿轮图标,选择 Setup。
- 在 Quick Find 中输入 change data capture,点击 Change Data Capture。
- 选择要跟踪的对象,移到右侧 Selected Entities 列。
- 点击 Save。
常见跟踪对象:Account、Contact、Lead、Case、User。此后 Salesforce 会为这些对象的每次创建或更新生成变更事件通知。
在 AppFlow 中设置事件触发器
- 在 AWS 控制台进入 AppFlow,点击 Create flow。
- 按单元 2 的步骤创建 flow。
- 关键区别:选择 Source 时选 Salesforce events(而非 Salesforce Objects),并从下拉框选择 Salesforce Event Name。
- 在 Flow trigger 页选择 Run flow on event。
此后,只要 Salesforce 中记录被创建或字段变更,AppFlow 就自动传输数据。可在 Run history 中监控事件。注意:只会发送你映射过的字段。
从 AWS 向 Salesforce 传输数据
先准备:创建 S3 存储桶、在其中创建文件夹、创建映射到目标 Salesforce 对象的 CSV 文件并上传到该文件夹。
创建 flow 时:源选 Amazon S3,目标选 Salesforce(需登录授权),选择要更新的 Salesforce 对象。
三种更新模式:
- 插入(Insert):每行 CSV 成为一条新记录。
- 更新(Update):按 ID 匹配修改现有记录,未匹配的行按错误处理设置忽略或失败。
- Upsert:有匹配则更新,无匹配则插入,最适合混合数据。
创建 CSV(S3 → Salesforce)
- 表头行必须包含与 Salesforce 字段名完全一致(区分大小写)的字段名。
- 包含一个 UniqueID 列,用于映射到 Salesforce 记录 ID。
- 每行对应一条要插入或更新的记录:更新现有记录需填 Salesforce 记录 ID;新建记录则留空 UniqueID,由 Salesforce 自动生成。
创建 S3 → Salesforce Flow
- AWS 控制台 → AppFlow → Create flow。
- 命名并描述 flow,点击 Next。
- 源选 Amazon S3,选择存储桶并填写文件夹前缀。
- 目标选 Salesforce,登录授权。
- 选择目标 Salesforce 对象。
- 选择更新模式:Insert / Update / Upsert。
- 映射字段:把 CSV 的 UniqueID 列映射到 Salesforce 的 ID 字段。
- 配置验证、筛选和计划。
- 检查后点击 Create flow,再 Activate 或 Run。
总结
你现在已经完整了解 Amazon AppFlow:它能在 Salesforce 与 AWS 之间实现安全、双向的数据传输——传输中和静态均加密,经由私有连接传输、绝不经过公网。你学会了在几分钟内配置一个从 Salesforce 到 S3 的简单 flow,用 CDC 和平台事件实现事件驱动的自动传输,以及用 CSV 从 S3 反向推送数据到 Salesforce(插入、更新或 upsert)。无论在 Salesforce 还是 AWS 中,你都能获得统一的客户视图。
























