

 AWS 合作伙伴中心 API 参考已重新构建。有关支持的 API 操作的更多信息，请参阅 [AWS 合作伙伴中心 API 参考](https://docs.aws.amazon.com/partner-central/latest/APIReference/Welcome.html)。

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

# 的通知AWS Partner Central Selling API
<a name="selling-api-events"></a>

销售 API 的事件提供有关机会状态变化或详细信息的实时通知。这些事件有助于使您的系统与AWS合作伙伴中心保持同步，并有助于确保及时响应和更新。

**Topics**
+ [完成监控事件的先决条件](#events-prerequites)
+ [将 Amazon 配置 EventBridge 为监控事件](#eventbridge-setup)
+ [了解有关销售 API 活动的更多信息](#learn-about-events)

## 完成监控事件的先决条件
<a name="events-prerequites"></a>

用户需要相应的 IAM 权限才能访问和管理合作伙伴中心销售 API 发布的活动。有关可用操作、资源和条件键的更多信息 EventBridge，请参阅亚马逊* EventBridge 用户指南*[中的在亚马逊 EventBridge中使用 IAM 策略条件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-conditions.html#events-pattern-detail-type)。其中一个条件键是`events:detail-type`，它可用于将权限范围限定为特定事件类型。

以下示例策略演示了如何自定义和限定建议事件的权限范围。该`AllowPutRuleForPartnercentralSellingEvents`语句允许创建规则，但仅适用于来自`aws.partnercentral-selling`源的事件。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "AllowPutRuleForPartnercentralSellingEvents",
    "Effect": "Allow",
    "Action": "events:PutRule",
    "Resource": "*",
    "Condition": {
      "ForAllValues:StringEquals": {
        "events:source": "aws.partnercentral-selling"
      }
    }
  }
}
```

------

## 将 Amazon 配置 EventBridge 为监控事件
<a name="eventbridge-setup"></a>

要监控销售 API 事件，您需要创建一条与要捕获的事件相匹配的 EventBridge 规则。您可以使用AWS 管理控制台或 S AWS DK 来创建和管理规则。以下各节说明如何使用这两种方法创建规则。无论使用哪种方法，都必须在美国东部（弗吉尼亚北部）`us-east-1`地区创建规则。

### AWS 管理控制台设置
<a name="eventbridge-console-setup"></a>

要使用设置 EventBridge 规则AWS 管理控制台，请按照《亚马逊* EventBridge 用户指南*》中[创建响应亚马逊事件的规则 EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)中的步骤进行操作。创建规则时，必须将事件总线设置为**默认值**，并在美国东部（弗吉尼亚北部）`us-east-1`区域创建规则。

以下是事件规则的示例：

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

### AWS软件开发工具包设置
<a name="eventbridge-sdk-setup"></a>

您可以使用AWS软件开发工具包以编程方式创建和管理 EventBridge 规则。有关更多信息，请参阅 *Amazon EventBridge API 参考[PutRule](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutRule.html)*中的。

以下示例使用适用于 Python 的AWS SDK (Boto3)：

```
import boto3

client = boto3.client('events', region_name='us-east-1')

response = client.put_rule(
    Name='MyOpportunityCreatedRule',
    EventPattern=
    '{
        "source": ["aws.partnercentral-selling"], 
        "detail-type": ["Opportunity Created"], 
        "detail": {"catalog": ["AWS"]}
    }',
    State='ENABLED'
)
print('Rule ARN:', response['RuleArn'])
```

## 了解有关销售 API 活动的更多信息
<a name="learn-about-events"></a>

以下各节介绍销售 API 事件类型、触发这些事件的场景以及事件示例。

### 事件类型
<a name="types-of-events"></a>

以下是事件类型及其触发器。
+ [机会已创建：创建](#opportunity-created)新机会时触发。
+ [机会已更新](#opportunity-updated)：当商机（机会或其对应的AWS机会摘要）更新时触发。
+ [已创建参与邀请：创建](#engagement-invitation-created)AWS推荐邀请时触发。
+ [已接受参与邀请](#engagement-invitation-accepted)：当合作伙伴接受AWS参与邀请，确认他们有兴趣AWS就该机会与之合作时触发。
+ [参与邀请被拒绝](#engagement-invitation-rejected)：当合作伙伴拒绝AWS参与邀请时触发。
+ [参与邀请已过期](#engagement-invitation-expired)：当合作伙伴拒绝邀请时会触发此事件。 EngagementInvitation它会通知发送方和接收方合作伙伴邀请已过期。
+ [已添加参与成员](#engagement-member-added)：当新成员在接受邀请后加入互动时触发此事件。它会通知参与的所有当前成员有新成员被添加到参与中。
+ [项目资源快照已创建：创建](#engagement-resource-snapshot-created)与项目关联的资源（例如机会）快照的新版本时，会触发此事件。它会将相关资源 Snapshot 的更改通知参与的所有当前成员。
+ [已创建互动：创建](#engagement-created)新交互时触发。
+ [互动已更新](#engagement-updated)：交互更新时触发。

### 事件场景
<a name="events-summary"></a>

下表描述了事件在不同场景下的运作方式。针对这些场景做出了以下假设：
+ AWS也是这些场景中的合作伙伴。
+ `ResourceSnapshotJob`已由合作伙伴正确配置。
+ 在机会上更新的字段也出现在资源快照的机会模板上。


| **您作为合作伙伴采取的行动** | **收到的事件** | **参与者类型** | 
| --- | --- | --- | 
| 你创造了一个机会 | 机会已创建 |  | 
| 你StartEngagementFromOpportunityTask用来提交机会 | 机会已更新、参与已创建、参与资源快照已创建、参与成员已添加、参与邀请已创建 |  | 
| AWS批准您提交的机会 | 参与邀请已接受，参与成员已添加，机会已更新，参与资源快照已创建 |  | 
| AWS拒绝您提交的机会 | 参与邀请被拒绝、机会已更新、参与资源快照已创建 |  | 
| 您将报AWS Marketplace价与机会相关联 | 机会已更新 |  | 
| 您将解决方案与机会相关联 | 机会已更新，项目资源快照已创建 |  | 
| 你更新了机会 | 机会已更新，项目资源快照已创建（如果已设置ResourceSnapshotJob且模板上有字段更新，则为可选） |  | 
| AWS更新您的机会 | 机会已更新，项目资源快照已创建 |  | 
| 您邀请其他合作伙伴参与互动 | 订婚邀请已创建 | 发件人 | 
| 您的参与邀请已被合作伙伴接受 | 已接受订婚邀请，已添加参与成员 | 发件人 | 
| 您的参与邀请被合作伙伴拒绝 | 订婚邀请被拒绝 | 发件人 | 
| 合作伙伴在 15 天内未对你的参与邀请采取行动 | 订婚邀请已过期 | 发件人 | 
| 您会收到其他合作伙伴发出的加入互动的邀请 | 订婚邀请已创建 | 接收方 | 
| 您接受其他合作伙伴的邀请，通过以下方式加入互动 StartEngagementByAcceptingInvitationTask | 已接受参与邀请，已添加参与成员，已创建机会，已更新机会，已创建参与资源快照 | 接收方 | 
| 您拒绝了来自其他合作伙伴的参与邀请 | 订婚邀请被拒绝 | 接收方 | 
| 在 15 天内，您不会根据其他合作伙伴的邀请采取行动 | 订婚邀请已过期 | 接收方 | 
| 你创建了互动 | 参与度已创建 | 发件人 | 
| 你更新了互动 | 参与度已更新 | 发送者、接收者 | 

### 示例事件
<a name="example-rules"></a>

以下各节提供了前面部分所列事件的示例。

**Topics**
+ [机会已创建](#opportunity-created)
+ [机会已更新](#opportunity-updated)
+ [订婚邀请已创建](#engagement-invitation-created)
+ [订婚邀请已接受](#engagement-invitation-accepted)
+ [订婚邀请被拒绝](#engagement-invitation-rejected)
+ [订婚邀请已过期](#engagement-invitation-expired)
+ [已添加参与成员](#engagement-member-added)
+ [参与资源快照已创建](#engagement-resource-snapshot-created)
+ [参与度已创建](#engagement-created)
+ [参与度已更新](#engagement-updated)

#### 机会已创建
<a name="opportunity-created"></a>

合作伙伴利用此活动来：
+ 通知他们的用户一个新的机会已经创建。
+ 触发自动化工作流程，例如更新 CRM 系统或通知销售团队有关新机会创造的信息。

以下示例显示了一个典型的机会创建事件。

```
{
    "version": "1",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "source": "aws.partnercentral-selling",
    "detail-type": "Opportunity Created",
    "time": "2023-04-16T15:23:45Z",
    "region": "us-east-1",
    "account": "123456789012",
    "detail": {
        "schemaVersion": "{{<version number>}}",
        "catalog": "{{<Sandbox | AWS>}}",
        "opportunity": {
            "identifier": "String"
        }
    }
}
```

#### 机会已更新
<a name="opportunity-updated"></a>

合作伙伴利用此活动来：
+ 通知其用户现有机会已更新。
+ 触发自动化工作流程，例如更新 CRM 系统或通知销售团队。

以下示例显示了一个典型的机会更新事件。

```
{
    "version": "1",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "source": "aws.partnercentral-selling",
    "detail-type": "Opportunity Updated",
    "time": "2023-04-16T15:23:45Z",
    "region": "us-east-1",
    "account": "123456789012",
    "detail": {
        "schemaVersion": "{{<version number>}}",
        "catalog": "{{<Sandbox | AWS>}}",
        "opportunity": {
             "identifier": "String"
        }
    }
}
```

#### 订婚邀请已创建
<a name="engagement-invitation-created"></a>

合作伙伴利用此活动来：
+ 通知用户 EngagementInvitation 他们收到的新消息。
+ 触发自动工作流程以接受或拒绝邀请，例如更新 CRM 系统或通知销售团队。

以下示例显示了一个典型的互动邀请创建活动。

```
{
    "version": "0",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "detail-type": "Engagement Invitation Created",
    "source": "aws.partnercentral-selling",
    "account": "123456789012",
    "time": "2023-04-15T12:34:56Z",
    "region": "us-east-1",
    "resources": [
      "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement-invitation/engi-v7p8z56whnauo"
    ],
    "detail": {
      "catalog": "AWS",
      "engagementInvitation": {
        "arn": "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement-invitation/engi-v7p8z56whnauo",
        "id": "engi-v7p8z56whnauo",
        "engagementId": "eng-12345678901234",      
        "senderAccountId": "string",
        "receiverAccountId": "string",      
        "senderCompanyName": "string",
        "expirationDate": "string",
        "participantType": "Enum", //Sender/Receiver
		"payloadType": "LeadInvitation" //OpportunityInvitation|LeadInvitation
      }
    }
}
```

#### 订婚邀请已接受
<a name="engagement-invitation-accepted"></a>

合作伙伴利用此活动来：
+ 通知其用户 EngagementInvitation 已被接受。
+ 更新他们的内部记录，以反映项目中的新合作伙伴。
+ 触发自动化工作流程以同步数据或通知其他团队成员有关新参与成员的信息。

以下示例显示了一个典型的 “已接受参与邀请” 事件。

```
{
    "version": "0",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "detail-type": "Engagement Invitation Accepted",
    "source": "aws.partnercentral-selling",
    "account": "123456789012",
    "time": "2023-04-16T15:23:45Z",
    "region": "us-east-1",
    "resources": ["arn:aws:partnercentral:us-east-1::catalog/AWS/engagement-invitation/engi-v7p8z56whnauo"],
    "detail": {
        "catalog": "AWS",
        "engagementInvitation": {
            "arn": "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement-invitation/engi-v7p8z56whnauo",
            "id": "engi-v7p8z56whnauo",
            "engagementId": "eng-12356whnauo",       
            "participantType": "Enum", //Sender/Receiver
            "senderAccountId": "string",
            "receiverAccountId": "string",
            "payloadType": "LeadInvitation" //OpportunityInvitation|LeadInvitation
        }
    }
}
```

#### 订婚邀请被拒绝
<a name="engagement-invitation-rejected"></a>

合作伙伴利用此活动来：
+ 通知其用户 EngagementInvitation 已被拒绝。
+ 更新他们的内部记录以反映被拒绝的邀请。
+ 触发任何必要的工作流程，例如将拒绝通知销售团队。

以下示例显示了一个典型的参与邀请被拒绝事件。

```
{
    "version": "0",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "detail-type": "Engagement Invitation Rejected",
    "source": "aws.partnercentral-selling",
    "account": "123456789012",
    "time": "2023-04-17T09:48:27Z",
    "region": "us-east-1",
    "resources": ["arn:aws:partnercentral:us-east-1::catalog/AWS/engagement-invitation/engi-v7p8z56whnauo"],
    "detail": {
        "catalog": "AWS",
        "engagementInvitation": {
            "arn": "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement-invitation/engi-v7p8z56whnauo",
            "id": "engi-v7p8z56whnauo",
            "engagementId": "eng-12356whnauo",
            "participantType": "Enum", //Sender/Receiver
            "senderAccountId": "string",
            "receiverAccountId": "string",    
            "payloadType": "LeadInvitation" //OpportunityInvitation|LeadInvitation 
        } 
    }
}
```

#### 订婚邀请已过期
<a name="engagement-invitation-expired"></a>

合作伙伴利用此活动来：
+ 通知其用户 EngagementInvitation 已过期，无法再对其采取行动。
+ 更新他们的内部记录以反映已过期的邀请。
+ 触发任何必要的工作流程，例如将已过期的邀请通知销售团队。

以下示例显示了一个典型的参与邀请已过期事件。

```
{
    "version": "0",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "detail-type": "Engagement Invitation Expired",
    "source": "aws.partnercentral-selling",
    "account": "123456789012",
    "time": "2023-04-18T18:20:15Z",
    "region": "us-east-1",
    "resources": [
      "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement-invitation/engi-v7p8z56whnauo"
    ],
    "detail": {
      "catalog" : "AWS",    
      "engagementInvitation": {
        "arn": "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement-invitation/engi-v7p8z56whnauo",
        "id": "engi-v7p8z56whnauo",
        "engagementId": "eng-12356whnauo",        
        "participantType": "Enum", //Sender/Receiver
        "senderAccountId": "string",
        "receiverAccountId": "string",
        "payloadType": "LeadInvitation" //OpportunityInvitation|LeadInvitation
      }  
    }
}
```

#### 已添加参与成员
<a name="engagement-member-added"></a>

合作伙伴利用此活动来：
+ 将参与成员资格变更通知其用户。
+ 更新他们的内部记录以反映新的参与成员。
+ 触发任何必要的工作流程，例如将更改通知团队成员。

以下示例显示了一个典型的参与成员添加事件。

```
{
    "version": "0",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "detail-type": "Engagement Member Added",
    "source": "aws.partnercentral-selling",
    "account": "123456789012",
    "time": "2023-04-16T15:23:45Z",
    "region": "us-east-1",
    "resources": [
      "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement/eng-v7p8z56whnauo"
    ],
    "detail": {
      "catalog" : "AWS",
      "engagement": {
        "id": "eng-v7p8z56whnauo"
      },
      "engagementMember": {
        "accountId": "string",
        "companyName": "string"
      }
    }
}
```

#### 参与资源快照已创建
<a name="engagement-resource-snapshot-created"></a>

合作伙伴使用此活动来跟踪与项目相关的资源变更并触发自动化工作流程，例如更新 CRM 系统或通知销售团队。快照模板决定了更新的类型：

`OpportunitySummaryView`  
+ 通知参与的所有成员该活动已更新。

`AwsOpportunitySummaryFullView`  
+ 跟踪 AWS 专门针对项目中的机会所做的更新。
+ 只有机会所有者才能看到此通知和快照。
+ 包括交易规模更新，这些更新无法通过`OpportunitySummaryView`模板获得。

以下示例显示了一个典型的互动资源快照创建事件。

```
{
    "version": "0",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "detail-type": "Engagement Resource Snapshot Created",
    "source": "aws.partnercentral-selling",
    "account": "123456789012",
    "time": "2023-04-18T18:20:15Z",
    "region": "us-east-1",
    "resources": [
      "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement/eng-v7p8z56whnauo"
    ],
    "detail": {
      "catalog" : "AWS",
      "resourceSnapshot": {
        "arn": "arn:aws:partnercentral-selling:us-east-1::catalog/AWS/engagement/eng-v7p8z56whnauo/resource/Opportunity/o-12312/template/temp-name/snapshot/snapshot-19232",
        "engagementId": "eng-v7p8z56whnauo",
        "resourceType": "Opportunity",      
        "resourceId" : "O123211231",
        "createdBy": "123123123123",
        "targetMemberAccounts": ["123123123123", "aws"], 
        "resourceSnapshotTemplateName": "temp-name"
      }
    }
}
```

#### 参与度已创建
<a name="engagement-created"></a>

合作伙伴利用此活动来：
+ 通知其用户已创建新的互动。
+ 触发自动化工作流程，例如更新 CRM 系统或通知销售团队有关新的互动创建。

以下示例显示了一个典型的互动创建事件。

```
{
    "version": "0",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "detail-type": "Engagement Created",
    "source": "aws.partnercentral-selling",
    "account": "123456789012",
    "time": "2023-04-18T18:20:15Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement/eng-567a1j5hxp35lo"
    ],
    "detail": {
        "catalog": "AWS",
        "engagement": {
            "engagementArn": "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement/eng-567a1j5hxp35lo",
            "engagementId": "eng-567a1j5hxp35lo",
            "CreatedAt": "2023-04-18T18:20:15Z",
            "CreatedBy": "aws",
            "ContextTypes": ["Lead"]
            
        }
    }
}
```

#### 参与度已更新
<a name="engagement-updated"></a>

合作伙伴利用此活动来：
+ 通知其用户现有互动已更新。
+ 触发自动化工作流程，例如更新 CRM 系统或通知销售团队。

以下示例显示了一个典型的互动更新事件。

```
{
    "version": "0",
    "id": "01234567-0123-0123-0123-0123456789ab",
    "detail-type": "Engagement Updated",
    "source": "aws.partnercentral-selling",
    "account": "123456789012",
    "time": "2023-04-18T18:20:15Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement/eng-567a1j5hxp35lo"
    ],
    "detail": {
        "catalog": "AWS",
        "engagement": {
            "engagementArn": "arn:aws:partnercentral:us-east-1::catalog/AWS/engagement/eng-567a1j5hxp35lo",
            "engagementId": "eng-567a1j5hxp35lo",
            "LastModifiedAt": "2023-04-18T18:20:15Z",
            "LastModifiedBy": "aws",
            "ContextTypes": ["Lead", "CustomerProject"]
        }
    }
}
```