

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 AWS Partner Central 和 AWS Marketplace 事件的即時通知
<a name="set-up-real-time-notifications"></a>

下列主題說明如何設定 AWS Partner Central 和 AWS Marketplace 事件的即時 EventBridge 通知。您可以在 Salesforce 中設定通知，方法是設定連線的應用程式，也可以使用 AWS CloudFormation 範本。

**Topics**
+ [設定 Salesforce 連線的應用程式](#configuring-salesforce-connected-app)
+ [使用 AWS CloudFormation 堆疊設定通知](#configuring-aws-components)

## 設定 Salesforce 連線的應用程式
<a name="configuring-salesforce-connected-app"></a>

下列步驟說明如何在 Salesforce 中設定連線的應用程式。您必須建立連線的應用程式，才能針對目的地連線使用 OAuth 身分驗證。如需詳細資訊[手動建立通知元件](#manual-creation-of-aws-components)，請參閱本指南稍後的 。

1. 以系統管理員身分登入 Salesforce 組織。

1. 在**設定**中，在**快速尋找**方塊中輸入 **apps**，然後選取 **App Manager**。

1. 在 **Lightning Experience App Manager** 頁面上，選擇 **新增連線應用程式**，選擇**建立連線應用程式**，然後選擇**繼續**。

   **新的連線應用程式**頁面隨即出現。

1. 請執行下列操作：

   1. 在**連線的應用程式名稱**方塊中，輸入應用程式的名稱。

   1. 在**聯絡電子郵件**方塊中，輸入您的電子郵件地址。

   1. （選用） 完成 Salesforce 文件中[設定基本連線應用程式設定](https://help.salesforce.com/s/articleView?id=sf.connected_app_create_basics.htm)中所述的其餘欄位。

1. 選取**啟用 OAuth 設定**核取方塊，然後執行下列動作：

   1. 選取**啟用裝置流程**核取方塊。您可以忽略產生的回呼 URL。

   1. 在**可用的 OAuth 範圍**下，選取**透過 APIs管理使用者資料**，然後使用**新增**按鈕將範圍移至所選範圍的清單。

   1. 選取下列核取方塊：
      + **支援的授權流程需要程式碼交換 (PKCE) 延伸的證明金鑰**
      + **需要 Web 伺服器流程的秘密**
      + **重新整理權杖流程需要秘密**
      + **啟用用戶端登入資料流程**

   1. 在您選取**啟用用戶端登入資料流程**後出現的訊息上，選擇**確定**。

   1. 捲動至頁面底部，然後選擇 **Save** (儲存)。

1. 選擇 **繼續**，然後選擇**管理消費者詳細資訊**。

   驗證**您的身分**頁面隨即出現，系統會將驗證碼傳送至您的聯絡人電子郵件地址。

1.  在驗證碼方塊中輸入**驗證碼**，然後選擇**驗證**。

   您連線應用程式的頁面隨即出現。

1. 在**消費者詳細資訊**下，選擇消費者金鑰和客戶秘密的**複製**按鈕。

1. 在**設定**中，在**快速尋找**方塊中，輸入**應用程式**，選取**管理連線的應用程式**，然後選擇您剛建立的連線應用程式。

1. 選擇 **編輯政策**，然後執行下列動作：

   1. 從**允許的使用者**清單中，選擇**所有使用者可以自行授權**。

   1. 從 **IP 寬鬆清單中**，選擇**強制執行 IP 限制**。

   1. 從**執行身分**清單中，選取*執行使用者*，即您為其指派用戶端登入資料流程的使用者。Salesforce 要求執行使用者代表使用者傳回存取字符。

   1. 選擇**儲存**。

## 使用 AWS CloudFormation 堆疊設定通知
<a name="configuring-aws-components"></a>

下列主題現在說明如何使用 AWS CloudFormation 範本來設定即時 EventBridge 通知。這些步驟僅適用於 AWS Partner CRM 連接器的 3.0 版和更新版本。

對於 AWS Partner CRM 連接器 3.0 版和更新版本，您可以使用 CloudFormation 範本來設定 Amazon EventBridge 整合的 AWS 元件，也可以手動建立元件。若要使用 CloudFormation，請從下列位置下載範本：

**Topics**
+ [尋找您的網域 URL](#find-domain-url)
+ [使用 CloudFormation 堆疊](#downloading-templates)
+ [手動建立通知元件](#manual-creation-of-aws-components)
+ [範例規則](#example-rules)

### 尋找您的網域 URL
<a name="find-domain-url"></a>

 CloudFormation 範本使用您的網域 URL 做為其必要參數之一。

**尋找 URL**

1. 登入 Salesforce。

1. 在**設定**區段的**快速尋找**方塊中，輸入 **my domain**。

1. 在左側窗格中的公司**設定**下，選擇**我的網域**連結。

1. 複製**目前我的網域 URL** 方塊中的地址。

**注意**  
當您在 CloudFormation 範本中輸入 URL 時，必須使用 https：// 字首。

### 使用 CloudFormation 堆疊
<a name="downloading-templates"></a>

下列主題中的步驟說明如何建立和部署設定即時通知的 CloudFormation 堆疊。

1. 下載下列範本：
**注意**  
您可以分別部署每個範本，並遵循相同的步驟。
   + Partner Central API 整合：https：//[https://servicecatalogconnector.s3.amazonaws.com/APIDestinationCFT\$1PCAPI.json](https://servicecatalogconnector.s3.amazonaws.com/APIDestinationCFT_PCAPI.json)
   + （選用） AWS Marketplace 整合：https：//[https://servicecatalogconnector.s3.amazonaws.com/APIDestinationCFT\$1AWSMP.json](https://servicecatalogconnector.s3.amazonaws.com/APIDestinationCFT_AWSMP.json)

1. 在 AWS 主控台中，登入您的 AWS Marketplace 賣方帳戶，並確保其在**維吉尼亞北部執行。**EventBridge 僅在該區域中運作。

1. 仍在主控台中，在 上搜尋**cloudformation**，然後開啟 CloudFormation 主控台。

1. 在**堆疊**頁面上，選擇**建立堆疊**。

1. 選取**選擇現有範本**和**上傳範本檔案**選項按鈕。

1. 選取**選擇檔案**以開啟下載的範本，然後選擇**下一步**。

1. 在**指定堆疊詳細資訊**頁面上，輸入下列內容：
   + **堆疊名稱** – 輸入堆疊的名稱。
   + **用戶端 ID** – 輸入您在建立連線應用程式時記下的取用者金鑰。
   + **用戶端秘密** – 輸入您在建立連線應用程式時記下的消費者秘密。
   + **網域 URL** – 使用下列格式： **https://*domain\$1URL*.**

   完成時，請選擇**下一步**。

1. 在**設定堆疊選項**頁面上，捲動至結尾，選取**我確認 AWS CloudFormation 可能建立 IAM 資源**核取方塊，然後選擇**下一步**。

1. 選擇**提交**。

成功部署時，範本會建立 API 目的地、連線、事件規則和無效字母佇列。

### 手動建立通知元件
<a name="manual-creation-of-aws-components"></a>

下列步驟說明如何手動建立 EventBridge 通知的元件。

**Topics**
+ [建立 Amazon EventBridge API 目的地和連線](#manual-destination-connection)
+ [建立 EventBridge 規則並將其連線至 API 目的地](#create-connect-ev-rule)
+ [建立變更集事件](#change-set-events)
+ [建立優惠發行事件](#offer-released-events)
+ [建立機會事件](#opportunity-events)
+ [事件類型](#types-of-events)
+ [範例事件](#example-event)

#### 建立 Amazon EventBridge API 目的地和連線
<a name="manual-destination-connection"></a>

若要在 EventBridge 中建立 API 目的地和連線，請建立使用新連線的 API 目的地。在此情況下，API 目的地是對 Salesforce 發出的 REST API 呼叫，以將事件發佈回去。連線包含 API 呼叫的身分驗證資訊。連線接受數種授權方法。

**先決條件**  
若要使用 API 目的地連線的 OAuth 授權，請在 Salesforce 中建立連線的應用程式。若要這樣做，請遵循 Salesforce 文件中[設定 OAuth 2.0 用戶端登入資料流程的連線應用程式的步驟。](https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm)您可以將連線應用程式中的取用者金鑰和秘密用於 API 目的地連線。

若要在 EventBridge 主控台中建立 API 目的地：
+ 請遵循《*Amazon EventBridge 使用者指南*》中的[建立 API 目的地](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html#eb-api-destination-create)中的步驟。
+ 設定 Salesforce 特有的組態。

在 Salesforce 的**我的網域**頁面**的設定**下，記下您的組織網域名稱。您可以使用它在 EventBridge 主控台中設定 API 目的地和連線。下列步驟說明作法。

**建立目的地和連線**

1. 在 https：//[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 EventBridge 主控台，然後在左側導覽窗格中選擇 **API 目的地**。

1. 向下捲動至 **API 目的地**表格，然後選擇**建立 API 目的地**。

   **建立 API 目的地**頁面隨即出現。

1. 輸入下列資訊：

   1. API 目的地**的名稱**。您最多可以使用 64 個大寫字母或小寫字母、數字、點 (.)、破折號 (-) 或底線 (\$1) 字元。

      在當前區域中，此名稱對於您的帳戶必須是唯一的。

   1. （選用） 輸入 API 目的地的**描述**。

   1. 對於 **API 目的地端點**，請使用此 URL：**https://*my-salesforce-domain-name*.my.salesforce.com/services/data/v58.0/sobjects/*event-api-name***。

   1. 針對 **HTTP 方法**，選取 **POST**。

1. 在**連線組態**下，選取**建立新的連線**，然後執行下列動作：

   1. 輸入名稱和選用描述。

   1. 針對**目的地類型**，選擇**其他**。

   1. 選擇 **OAuth 用戶端登入**資料。

   1. 對於**授權端點**，接受預先填入的端點。

      -或是-

      如果您使用生產組織，請使用此 URL 取代填入的端點：

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

   1. 針對 **HTTP 方法**，選取 **POST**。

   1. 在**用戶端 ID** 中，輸入 Salesforce 中連線應用程式的取用者金鑰。

   1. 在**用戶端秘密**中，從 Salesforce 中連線的應用程式輸入消費者秘密。

   1. 新增下列 OAuth 值：
      + **參數**：內文欄位
      + **金鑰**：Grant\$1type
      + **值**： client\$1credentials

1. 選擇**建立**。

**注意**  
如果您的 Salesforce 組織針對 API 存取使用多重驗證，使用者必須完成第二個驗證挑戰才能存取 Salesforce APIs。如需詳細資訊，請參閱 Salesforce 文件中的[設定 API 存取的多重要素驗證登入要求](https://help.salesforce.com/s/articleView?id=sf.security_require_2fa_api.htm&language=en_US&type=5)。

建立 API 目的地之後，您可以建立使用目標做為目的地的規則。

#### 建立 EventBridge 規則並將其連線至 API 目的地
<a name="create-connect-ev-rule"></a>

EventBridge 規則會將事件從事件匯流排路由到 API 目的地，這會導致 REST 呼叫將事件發佈回 Salesforce。

如需 EventBridge 規則的詳細資訊，請參閱《[Amazon EventBridge 使用者指南》中的建立對事件做出反應](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)*的 Amazon EventBridge *規則。

#### 建立變更集事件
<a name="change-set-events"></a>

下列步驟說明如何建立變更集事件。

1.  在 [Amazon EventBridge](https://docs.aws.amazon.com/marketplace/latest/userguide/seller-eventbridge.html#events-changesets) 中，選擇 **規則**。

1.  從清單中，選取所需的事件匯流排。

1.  在 **Rules** (規則) 區段中，選擇 **Create Rule** (建立規則)。

1.  輸入規則的名稱，然後選擇 **下一步**。

1. 在**事件模式**下，選取**自訂模式 (JSON 編輯器）**，然後輸入下列篩選條件。 您可以使用任意組合的詳細資訊類型。

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

    如需事件模式比對的詳細資訊，請參閱 文件[中的 Amazon EventBridge 事件模式中的內容篩選](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html)。 AWS 

1.  選擇**下一步**。

1.  在**選取目標**中，在**目標 1** 下，選取 **EventBridge API 目的地**。

1.  從清單中，選取您剛建立的 API 目的地。

1.  展開 **Additional settings** (其他設定)。

1.  在**設定目標輸入**下，選取**輸入轉換器**並**設定輸入轉換器**。這可確保只會傳送原始事件詳細資訊區段中的 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
   }
   ```

1.  選擇 **下一步**，然後選擇**下一步**。

1. 檢閱規則，然後選擇**建立規則**。

**注意**  
若要疑難排解 API 目的地，您可以使用 Amazon SQS 主控台將無效字母佇列新增至目標。佇列會收到無法傳遞的訊息，以及錯誤。從 Amazon SQS 主控台，您可以在佇列中輪詢訊息是否有錯誤。如需詳細資訊，請參閱《Amazon SQS 使用者指南》中的[使用無效字母佇列來處理 EventBridge 中未傳遞的事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html)，以及接收和刪除 Amazon SQS 中的訊息。 [ Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-receive-delete-message.html) *Amazon SQS * 

#### 建立優惠發行事件
<a name="offer-released-events"></a>

下列步驟說明如何建立優惠發行事件。

1.  在 [Amazon EventBridge](https://docs.aws.amazon.com/marketplace/latest/userguide/seller-eventbridge.html#events-changesets) 主控台中，選擇 **規則**。

1.  從清單中選擇所需的事件匯流排。

1.  在 **Rules** (規則) 區段中，選擇 **Create Rule** (建立規則)。

1.  輸入規則的名稱，然後選擇 **下一步**。

1.  在**事件模式**下，選取**自訂模式 (JSON 編輯器）**，然後輸入下列篩選條件：  

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

    如需事件模式比對的詳細資訊，請參閱《[Amazon EventBridge 使用者指南》中的 Amazon EventBridge 事件模式中的內容篩選](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html)。 EventBridge 

1.  選擇**下一步**。

1.  在**選取目標**中，選取**目標 1** 下的 **EventBridge API 目的地**，然後開啟清單，然後選取您剛建立的 API 目的地。

1.  展開 **Additional settings** (其他設定)。

1.  在**設定目標輸入**下選取**輸入轉換器**，然後選取**設定輸入 Tansformer**。此步驟可防止頂層 Amazon 事件欄位傳送至 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
   }
   ```

1.  選擇 **下一步**，然後選擇**下一步**。

1.  檢閱規則，然後選擇 **建立規則**。

**注意**  
 為了協助疑難排解 API 目的地的執行，請將 Amazon SQS 無效字母佇列新增至目標。佇列會收到無法與錯誤一起交付的訊息。然後，您可以輪詢訊息以檢視錯誤。如需詳細資訊，請參閱 AWS 文件中的[事件重試政策和使用無效字母佇列](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html)和[接收和刪除訊息 （主控台）](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-receive-delete-message.html)。

#### 建立機會事件
<a name="opportunity-events"></a>

 機會事件提供有關機會狀態或詳細資訊變更的即時通知 

 您也可以使用 [AWS SDKs](https://docs.aws.amazon.com/partner-central/latest/selling-api/opportunity-events.html#aws-eventbridge) 以程式設計方式建立和管理 EventBridge 規則。

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

以下清單說明合作夥伴使用機會時產生的事件類型。這些連結會帶您前往每個事件的 API 文件。
+ [機會建立：](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#opportunity-created) – 在建立新機會時 觸發。
+ [機會已更新](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#opportunity-updated) – 在機會更新時 觸發。
+ [建立參與邀請](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#invitation-created) – 在建立機會時觸發。
+  [已接受業務開發邀請](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#invitation-accepted) – 當合作夥伴接受 AWS 業務開發邀請時 觸發，確認他們對與 合作 AWS 的機會感興趣。
+  [拒絕參與邀請 – 在](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#invitation-rejected)機會被拒絕時觸發。

#### 範例事件
<a name="example-event"></a>

```
{
    "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"
        }
    }
}
```

### 範例規則
<a name="example-rules"></a>

下表列出可與上一節所列事件搭配使用的 EventBridge 規則範例。規則會將事件從事件匯流排路由到 API 目的地，這會導致 REST 呼叫將事件發佈回 Salesforce。


| 事件類型 | 範例 | 
| --- | --- | 
| **已建立機會** |  <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Opportunity Created"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre>  | 
| **機會已更新** |  <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Opportunity Updated"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre> | 
| **已建立業務開發邀請** |  <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Engagement Invitation Created"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre>  | 
| **已接受業務開發邀請** |  <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Engagement Invitation Accepted"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre>  | 
| **參與邀請遭拒** | <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Engagement Invitation Rejected"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre> | 
| **所有事件** | <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre> | 