Amazon AppFlow
在 SaaS 应用程序 (Salesforce、Slack、SAP 等) 与 AWS 服务之间构建数据流的服务
概述
Amazon AppFlow 是一项全托管的集成服务,可在 SaaS 应用程序与 AWS 服务之间安全地传输数据。它标准配备 Salesforce、SAP、Slack、Google Analytics、ServiceNow 等 50 多个连接器,无需编写代码即可构建数据流。可对传输中的数据应用过滤、映射、脱敏、验证等转换处理,也可作为 ETL 流水线的预处理环节。支持通过 PrivateLink 进行私有连接,可实现不经过互联网的 SaaS 数据集成。
流程设计与数据转换映射
AppFlow 的流程由源 (数据获取来源)、目标 (数据发送目的地) 和转换规则三个要素组成。可对从源获取的记录应用字段映射 (重命名、类型转换)、过滤 (仅传输符合条件的记录)、脱敏 (个人信息掩码) 和验证 (值范围检查)。将 Salesforce 的商机数据以 Parquet 格式输出到 S3 并用 Athena 分析的流水线是典型用例。字段映射功能可以将源端嵌套的 JSON 结构展开为扁平的列,将复杂的 SaaS 数据模型转换为适合数据湖的格式。单次流程执行可传输的记录数没有上限,但需要注意 Salesforce API 的批量查询限制 (每日 API 调用次数) 作为源端的约束。选择 S3 作为目标时,可以指定文件分割大小和分区结构 (基于日期的前缀),保持与下游分析基础设施的一致性。
连接配置文件与 OAuth 认证管理
AppFlow 的连接配置文件是安全管理 SaaS 应用程序认证信息的机制。对于基于 OAuth 2.0 的连接器 (Salesforce、Slack、Google Analytics 等),首次连接时在浏览器上完成授权流程,刷新令牌会自动保存到 AWS Secrets Manager。令牌的更新由 AppFlow 自动处理,运维人员无需手动管理令牌的有效期。但如果 SaaS 端发生密码变更或应用程序重新授权,则需要重新认证连接配置文件。对于使用 Basic 认证或 API 密钥的连接器 (如 SAP、ServiceNow),认证信息存储在 Secrets Manager 中,由连接配置文件引用。使用支持 PrivateLink 的连接器 (Salesforce、Snowflake 等) 时,数据传输不经过互联网,完全在 VPC 内的私有网络中完成。连接配置文件可在多个流程间共享,从同一 Salesforce 组织获取不同对象的多个流程可以复用一个连接配置文件。
定时执行与事件驱动触发
AppFlow 的流程执行有按需、定时和事件驱动三种触发模式。定时执行最短可设置为 1 分钟间隔,支持增量传输 (仅获取上次执行后变更的记录)。增量传输基于源端的时间戳字段运作,会自动检测 Salesforce 的 SystemModstamp 或 LastModifiedDate。事件驱动触发与 Salesforce 的 Change Data Capture (CDC) 或 Platform Events 联动,实时检测记录的创建、更新和删除并启动流程,从而实现近实时的数据同步。流程执行结果会自动通知到 EventBridge,可以根据成功或失败组织后续处理 (启动 Lambda 函数、SNS 通知、启动 Step Functions 工作流)。费用基于每次流程执行处理的记录数按量计费,每 1,000 条记录约 0.001 USD。大量数据的初始加载可能导致成本增加,因此通过过滤缩小到必要的记录是成本优化的基本方法。