在 Amazon EventBridge 中从 Salesforce 接收事件 - Amazon EventBridge

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon EventBridge 中从 Salesforce 接收事件

您可以通过以下方式使用 Amazon EventBridge 从 Salesforce 接收事件

  • 使用 Salesforce's 事件总线中继功能,直接在 EventBridge 合作伙伴事件总线中接收事件。

  • Amazon AppFlow 中配置流,使用 Salesforce 作为数据来源。然后,Amazon AppFlow 使用合作伙伴事件总线向 EventBridge 发送 Salesforce 事件。

您可以使用 API 目标将事件信息发送到 Salesforce。事件发送到 Salesforce 后,即可通过Apex 触发器进行处理。有关设置 Salesforce API 目标的更多信息,请参阅 教程:从 Amazon EventBridge 向 Salesforce 发送事件

使用事件总线中继从 Salesforce 接收事件

第 1 步:设置 Salesforce 事件总线中继和 EventBridge 合作伙伴事件源

在 Salesforce 上创建事件中继配置时,Salesforce 会在 EventBridge 中创建处于待处理状态的合作伙伴事件源。

第 2 步:在 EventBridge 控制台中激活Salesforce 合作伙伴事件源,并启动事件中继

  1. 在 EventBridge 控制台中打开合作伙伴事件源页面。

  2. 选择您在步骤 1 中创建的 Salesforce 合作伙伴事件源。

  3. 选择与事件总线关联

  4. 验证合作伙伴事件总线的名称。

  5. 选择关联

  6. 启动事件中继

现在,您已经设置并启动了事件总线中继,并配置了合作伙伴事件源,您可以创建一个可对事件做出反应的 EventBridge 规则,用于筛选数据并将其发送到目标

使用 Amazon AppFlow 从 Salesforce 接收事件

Amazon AppFlow 将来自 Salesforce 的事件封装在 EventBridge 事件信封中。以下示例显示了由 EventBridge 合作伙伴事件总线接收的 Salesforce 事件。

{ "version": "0", "id": "5c42b99e-e005-43b3-c744-07990c50d2cc", "detail-type": "AccountChangeEvent", "source": "aws.partner/appflow.test/salesforce.com/364228160620/CustomSF-Source-Final", "account": "000000000", "time": "2020-08-20T18:25:51Z", "region": "us-west-2", "resources": [], "detail": { "ChangeEventHeader": { "commitNumber": 248197218874, "commitUser": "0056g000003XW7AAAW", "sequenceNumber": 1, "entityName": "Account", "changeType": "UPDATE", "changedFields": [ "LastModifiedDate", "Region__c" ], "changeOrigin": "com/salesforce/api/soap/49.0;client=SfdcInternalAPI/", "transactionKey": "000035af-b239-0581-9f14-461e4187de11", "commitTimestamp": 1597947935000, "recordIds": [ "0016g00000MLhLeAAL" ] }, "LastModifiedDate": "2020-08-20T18:25:35.000Z", "Region__c": "America" } }

第 1 步:配置 Amazon AppFlow,使用 Salesforce 作为合作伙伴事件源

要向 EventBridge 发送事件,您首先需要配置 Amazon AppFlow,使用 Salesforce 作为合作伙伴事件源。

  1. Amazon AppFlow 控制台中,选择创建流

  2. 流详细信息部分,在流名称中输入流的名称。

  3. (可选)输入流的描述,然后选择下一步

  4. 源详细信息下,从源名称下拉列表中选择 Salesforce,然后选择连接以创建新连接。

  5. 连接到 Salesforce 对话框中,为 Salesforce 环境选择生产沙盒

  6. 连接名称字段中,输入连接的唯一名称,然后选择继续

  7. 在 Salesforce 对话框中,执行以下操作:

    1. 输入您的 Salesforce 登录凭证,登录 Salesforce。

    2. 选择 Salesforce 事件作为数据类型,供 Amazon AppFlow 处理。

  8. 选择 Salesforce 事件下拉列表中,选择要发送到 EventBridge 的事件类型。

  9. 目标选择 Amazon EventBridge

  10. 选择创建新的合作伙伴事件源

  11. (可选)为合作伙伴事件源指定唯一的后缀。

  12. 选择生成合作伙伴事件源

  13. 选择一个 Amazon S3 桶来存储大于 256KB 的事件负载文件。

  14. 流触发器部分,确保选中按事件运行流。此设置可确保在发生新的 Salesforce 事件时执行流。

  15. 选择下一步

  16. 要进行字段映射,请选择直接映射所有字段。也可以从源字段名称列表中选择您感兴趣的字段。

    有关字段映射的更多信息,请参阅映射数据字段

  17. 选择下一步

  18. (可选)为 Amazon AppFlow 中的数据字段配置筛选条件。

  19. 选择下一步

  20. 检查设置,然后选择创建流

配置流后,Amazon AppFlow 会创建一个新的合作伙伴事件源,然后您需要将其与您账户中的合作伙伴事件总线相关联。

步骤 2:配置 EventBridge 以接收 Salesforce 事件

在按照本节的说明进行操作之前,请确保已配置 Amazon AppFlow 流,该流从 Salesforce 事件触发,以 EventBridge 作为目标。

配置 EventBridge,接收 Salesforce 事件
  1. 在 EventBridge 控制台中打开合作伙伴事件源页面。

  2. 选择您在步骤 1 中创建的 Salesforce 合作伙伴事件源。

  3. 选择与事件总线关联

  4. 验证合作伙伴事件总线的名称。

  5. 选择关联

  6. 在 Amazon AppFlow 控制台中,打开您创建的流,然后选择激活流

  7. 在 Amazon EventBridge 控制台中打开规则页面。

  8. 选择创建规则

  9. 为规则输入唯一名称。

  10. 定义模式部分,选择事件模式

  11. 事件匹配模式下,选择服务提供的预定义模式

  12. 服务提供商部分,选择所有事件

  13. 选择事件总线中,选择自定义或合作伙伴事件总线

  14. 选择与 Amazon AppFlow 合作伙伴事件源关联的事件总线。

  15. 选择目标中,选择规则运行时要执行的 AWS 服务。一个规则最多可以有五个目标。

  16. 选择创建

目标服务会接收为您的账户配置的所有 Salesforce 事件。要筛选事件或将某些事件发送到不同的目标,您可以使用事件模式中基于内容的筛选

注意

对于大于 256KB 的事件,Amazon AppFlow 不会将完整事件发送到 EventBridge。Amazon AppFlow 会将此事件放入您账户的 S3 桶中,然后将一个事件发送到 EventBridge,其中包含指向 Amazon S3 桶的指针。您可以使用此指针从桶中获取完整事件。