为 AWS 合作伙伴中心和 AWS Marketplace 活动设置实时通知 - AWS 合作伙伴中心

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

为 AWS 合作伙伴中心和 AWS Marketplace 活动设置实时通知

以下主题说明了如何为 Cent AWS Partner ral 和 AWS Marketplace 事件设置实时 EventBridge通知。您可以通过配置连接的应用程序在 Salesforce 中设置通知,也可以使用 AWS CloudFormation 模板。

配置与 Salesforce 连接的应用程序

以下步骤说明了如何在 Salesforce 中配置连接的应用程序。您必须创建已连接的应用程序才能对目标连接使用 OAuth 身份验证。有关更多信息,请参阅本手动创建通知组件指南后面的部分。

  1. 以系统管理员身份登录您的 Salesforce 组织。

  2. “设置” 的 “快速查找” 框中输入apps,然后选择 “应用程序管理器”。

  3. Lightning Experience 应用程序管理器页面上,选择新互联应用程序,选择创建互联应用程序,然后选择继续

    此时将出现 “新建连接的应用程序” 页面。

  4. 执行以下操作:

    1. 在 “已连接的应用程序名称” 框中,输入应用程序的名称。

    2. 在 “联系人邮箱” 框中,输入您的电子邮件地址。

    3. (可选)按照 Salesforce 文档中配置基本互联应用程序设置中所述填写其余字段。

  5. 选中 “启用 OAuth 设置” 复选框,然后执行以下操作:

    1. 选中 “启用设备流” 复选框。您可以忽略生成的回传 URL。

    2. 在 “可用 OAuth 范围” 下,选择 “通过管理用户数据”, APIs然后使用 “添加” 按钮将范围移至所选范围列表中。

    3. 选中以下复选框:

      • 支持的授权流程需要验证密钥才能使用代码交换 (PKCE) 扩展

      • Web 服务器流程需要密钥

      • 刷新令牌流需要密钥

      • 启用客户端凭证流程

    4. 在选择 “启用客户端凭证流” 后出现的消息中,选择 “确定”

    5. 滚动到页面底部并选择 Save (保存)

  6. 选择 “继续”,然后选择 “管理消费者详细信息”。

    将出现 “验证您的身份” 页面,系统会向您的联系人电子邮件地址发送验证码。

  7. 在验证码框中输入验证码,然后选择验证

    此时将显示您已连接的应用程序的页面。

  8. 在 “消费者详细信息” 下,选择消费者密钥和客户密钥的 “复制” 按钮。

  9. 在 “设置” 的 “快速查找” 框中,输入 “应用程序”,选择 “管理已连接的应用程序”,然后选择您刚刚创建的关联应用程序。

  10. 选择 “编辑策略”,然后执行以下操作:

    1. 从 “允许的用户” 列表中,选择 “所有用户均可自行授权”。

    2. 从 “IP 放松” 列表中,选择 “强制执行 IP 限制”。

    3. 运行身份列表中,选择执行用户,即您向其分配客户端凭据流的用户。Salesforce 要求执行用户代表该用户返回访问令牌。

    4. 选择保存

使用 AWS CloudFormation 堆栈设置通知

以下主题介绍如何使用 AWS CloudFormation 模板来设置实时 EventBridge 通知。这些步骤仅适用于 AWS Partner CRM 连接器的 3.0 及更高版本。

对于 AWS Partner CRM 连接器版本 3.0 及更高版本,您可以使用 AWS CloudFormation 模板为 Amazon EventBridge 集成配置组 AWS 件,也可以手动创建组件。要使用 AWS CloudFormation,请从以下地址下载模板:

查找您的域名网址

该 AWS CloudFormation 模板使用您的域名网址作为其必需参数之一。

要查找网址
  1. 登录 Salesforce。

  2. 在 “设置” 部分的 “快速查找” 框中输入my domain

  3. 在左侧窗格的 “公司设置” 下,选择 “我的域名” 链接。

  4. 复制 “当前我的域名 URL” 框中的地址。

注意

在 AWS CloudFormation 模板中输入 URL 时,必须使用 https://前缀。

使用堆 AWS CloudFormation 栈

以下主题中的步骤说明了如何创建和部署用于设置实时通知的 AWS CloudFormation 堆栈。

  1. 下载以下模板:

    注意

    您可以分别部署每个模板,并且对两个模板执行相同的步骤。

  2. 在 AWS 控制台中,登录您的 AWS Marketplace 卖家账户并确保该账户在弗吉尼亚州北部运行。 EventBridge 仅在该地区运营。

  3. 仍在控制台中,继续搜索cloudformation,然后打开 AWS CloudFormation 控制台。

  4. 堆栈页面上,选择创建堆栈

  5. 选择 “选择现有模板上传模板文件” 单选按钮。

  6. 选择 “选择文件” 以打开下载的模板,然后选择 “下一步”。

  7. 指定堆栈详细信息页面上,输入以下内容:

    • 堆栈名称-输入堆栈的名称。

    • 客户端 ID — 输入您在创建关联应用程序时记下的使用者密钥。

    • 客户端密钥-输入您在创建连接的应用程序时记下的用户密钥。

    • 域名网址-使用以下格式:https://domain_URL.

    在完成后,选择下一步

  8. 配置堆栈选项页面上,滚动到末尾,选中 “我确认 AWS CloudFormation 可能会创建 IAM 资源” 复选框,然后选择下一步

  9. 选择提交

成功部署后,模板将创建 API 目标、连接、事件规则和死信队列。

手动创建通知组件

以下步骤说明了如何手动创建 EventBridge 通知组件。

创建 Amazon EventBridge API 目标和连接

要在中创建 API 目标和连接 EventBridge,请创建一个使用新连接的 API 目标。在本例中,API 的目标是 REST API 调用 Salesforce 以发布回事件。该连接包含 API 调用的身份验证信息。该连接接受多种授权方法。

先决条件

要对 API 目标连接使用 OAuth 授权,请在 Salesforce 中创建一个已连接的应用程序。为此,请按照 Salesforce 文档中为 OAuth 2.0 客户端凭证流程配置互联应用程序中的步骤进行操作。您可以使用连接的应用程序中的使用者密钥和密钥进行 API 目标连接。

要在 EventBridge 控制台中创建 API 目标,请执行以下操作:

  • 按照《亚马逊 EventBridge 用户指南》中创建 API 目标中的步骤进行操作。

  • 设置特定于 Salesforce 的配置。

在 Salesforce 中,在 “我的域名” 页面的 “设置” 下,记下您的组织的域名。您可以使用它在 EventBridge 控制台中设置 API 目标和连接。以下步骤说明了操作方法。

创建目的地和连接
  1. 打开 EventBridge 控制台 https://console.aws.amazon.com/events/,然后在左侧导航窗格中选择 API 目的地

  2. 向下滚动到 API 目标表,然后选择创建 API 目标

    此时将出现 “创建 API 目标” 页面。

  3. 输入以下信息:

    1. API 目标的名称。您最多可以使用 64 个大写或小写字母、数字、点 (.)、破折号 (-) 或下划线 (_) 字符。

      在当前区域中,该名称对于您的账户必须是唯一的。

    2. (可选)输入 API 目标的描述

    3. 对于 API 目标端点,请使用此网址:https://my-salesforce-domain-name.my.salesforce.com/services/data/v58.0/sobjects/event-api-name

    4. 对于 HTTP 方法,选择 POST

  4. 在 “连接配置” 下,选择 “创建新连接”,然后执行以下操作:

    1. 输入名称和可选描述。

    2. 对于目的地类型,请选择其他

    3. 选择 “OAuth 客户凭证”。

    4. 对于授权端点,请接受预填充的端点。

      -或-

      如果您使用的是生产组织,请将填充的终端节点替换为以下 URL:

      https://my-salesforce-domain-name.my.salesforce.com/services/oauth2/token

    5. 对于 HTTP 方法,选择 POST

    6. 在 “客户端 ID” 中,输入 Salesforce 中连接的应用程序中的使用者密钥。

    7. 对于客户机密钥,请在 Salesforce 中输入来自已连接应用程序的用户密钥。

    8. 添加以下 OAuth 值:

      • 参数:正文场

      • 密钥:grant_type

      • :客户凭证

  5. 选择创建

注意

如果您的 Salesforce 组织使用多因素身份验证进行 API 访问,则用户必须完成第二个身份验证挑战才能访问 Salesforce。 APIs有关更多信息,请参阅 Salesforce 文档中的为 API 访问设置多重身份验证登录要求

创建 API 目标后,您可以创建使用该目标作为目的地的规则。

创建 EventBridge 规则并将其连接到 API 目标

EventBridge 规则将事件从事件总线路由到 API 目的地,这会导致发出 REST 调用将事件发布回 Salesforce。

有关 EventBridge 规则的更多信息,请参阅《亚马逊 EventBridge 用户指南》中的创建对事件做出反应的 Amazon EventBridge 规则

创建变更集事件

以下步骤说明了如何创建更改集事件。

  1. Amazon 中 EventBridge,选择规则

  2. 从列表中选择所需的事件总线。

  3. 规则部分中,选择创建规则

  4. 输入规则的名称,然后选择下一步

  5. 事件模式下,选择自定义模式(JSON 编辑器),然后输入以下过滤器。 您可以使用细节类型的任意组合。

    {   "source": [     "aws.marketplacecatalog"   ],   "detail-type": [     "Change Set Succeeded",     "Change Set Failed",     "Change Set Cancelled"   ] }

    有关事件模式匹配的更多信息,请参阅 AWS 文档中的 Amazon EventBridge 事件模式中的内容筛选

  6. 选择下一步

  7. 选择目标中,在目标 1 下,选择 EventBridge API 目标

  8. 从列表中选择您刚刚创建的 API 目标。

  9. 展开其他设置

  10. 在 “配置目标输入” 下,选择 “输入变压器” 和 “配置输入变压器”。这样可以确保仅发送原始事件详细信息部分中的 Salesforce 事件字段。

    输入路径必须是: 

    {   "Name": "$.detail-type",   "awsapn__Account_Number__c": "$.account",   "awsapn__EntityId__c": "$.detail.ChangeSetId" }

    模板必须是: 

    {   "Name": Name,   "awsapn__Account_Number__c": awsapn__Account_Number__c,   "awsapn__EntityId__c": awsapn__EntityId__c }
  11. 选择 “下一步”,然后选择 “下一步”。

  12. 查看规则,然后选择创建规则

注意

要对 API 目标进行故障排除,您可以使用 Amazon SQS 控制台向目标添加死信队列。队列收到无法传送的消息以及错误。在 Amazon SQS 控制台中,您可以轮询队列中的消息是否有错误。有关更多信息,请参阅 Amazon S QS 用户指南中的 EventBridge使用死信队列处理未送达的事件以及在 Amazon SQS 中接收和删除消息

创建优惠已发布活动

以下步骤说明了如何创建报价已发布事件。

  1. Amazon EventBridge 控制台中,选择 “规则”。

  2. 从列表中选择所需的事件总线。

  3. 规则部分中,选择创建规则

  4. 输入规则的名称,然后选择下一步

  5. 事件模式下,选择自定义模式(JSON 编辑器),然后输入以下过滤器: 

    {   "source": [     "aws.marketplacecatalog"   ],   "detail-type": [     "Offer Released"   ] }

    有关事件模式匹配的更多信息,请参阅亚马逊 EventBridge 用户指南中的亚马逊 EventBridge 事件模式中的内容筛选

  6. 选择下一步

  7. 选择目标中,在目标 1 下,选择 EventBridge API 目标,然后打开列表并选择您刚刚创建的 API 目标。

  8. 展开其他设置

  9. 在 “配置目标输入” 下,选择 “输入变压器”,然后选择 “配置输入变压器”。此步骤可防止将顶级亚马逊事件字段发送到 Salesforce。仅发送包含原始事件详细信息部分的 Salesforce 事件字段的部分。

    使用以下输入路径: 

    {    "Name":"$.detail-type",    "awsapn__Account_Number__c":"$.account",    "awsapn__EntityId__c":"$.detail.offer.id",    "awsapn__Manufacturer_Account_Id__c":"$.detail.manufacturer.accountId",    "awsapn__Product_Id__c":"$.detail.product.id",    "awsapn__Seller_Account_Id__c":"$.detail.sellerOfRecord.accountId" }

    使用以下模板: 

    {   "Name": Name,   "awsapn__Account_Number__c": awsapn__Account_Number__c,   "awsapn__EntityId__c": awsapn__EntityId__c,   "awsapn__Seller_Account_Id__c": awsapn__Seller_Account_Id__c,   "awsapn__Manufacturer_Account_Id__c": awsapn__Manufacturer_Account_Id__c,   "awsapn__Product_Id__c": awsapn__Product_Id__c }
  10. 选择 “下一步”,然后选择 “下一步”。

  11. 查看规则,然后选择创建规则

注意

为了帮助排除 API 目标的执行故障,请向目标添加一个 Amazon SQS 死信队列。队列会收到无法传送的消息以及错误。然后,您可以轮询消息以查看错误。有关更多信息,请参阅文档中的事件重试策略和使用死信队列以及接收和删除消息(控制台)。 AWS

创建机会事件

机会事件提供有关机会状态或细节变化的实时通知

您还可以使用以编程方式创建和管理 EventBridge 规则。AWS SDKs

事件的类型

以下列表描述了合作伙伴处理机会时生成的事件类型。这些链接会将您带到每个事件的 API 文档。

事件示例

{     "version": "1",     "id": ""d1example-0c9c-4655-15bf-c5exampleb08",     "source": "aws.partnercentral-selling",     "detail-type": "Opportunity Created",     "time": ""2023-10-28T13:31:05Z",     "region": ""us-east-1",     "account": ""123456789123",     "detail": {          "schemaVersion": "1",         "catalog": "AWS",         "opportunity": {             "identifier": ""O1234567",             "url": "Partner Central Opportunity Page URL"         }     } }

示例规则

下表列出了可用于上一节所列事件的 EventBridge 规则示例。规则将事件从事件总线路由到 API 目的地,这会导致发出 REST 调用将事件发布回 Salesforce。

事件类型

示例

机会已创建

{   "source": ["aws.partnercentral-selling"],   "detail-type": ["Opportunity Created"],   "detail": {     "catalog": ["AWS"]   } }

机会已更新

{   "source": ["aws.partnercentral-selling"],   "detail-type": ["Opportunity Updated"],   "detail": {     "catalog": ["AWS"]   } }

订婚邀请已创建

{   "source": ["aws.partnercentral-selling"],   "detail-type": ["Engagement Invitation Created"],   "detail": {     "catalog": ["AWS"]   } }

订婚邀请已接受

{   "source": ["aws.partnercentral-selling"],   "detail-type": ["Engagement Invitation Accepted"],   "detail": {     "catalog": ["AWS"]   } }

订婚邀请被拒绝

{   "source": ["aws.partnercentral-selling"],   "detail-type": ["Engagement Invitation Rejected"],   "detail": {     "catalog": ["AWS"]   } }

所有活动

{   "source": ["aws.partnercentral-selling"],   "detail": {     "catalog": ["AWS"]   } }