設定 AWS Partner Central 和 AWS Marketplace 事件的即時通知 - AWS Partner Central

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

設定 AWS Partner Central 和 AWS Marketplace 事件的即時通知

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

設定 Salesforce 連線的應用程式

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

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

  2. 設定中,在快速尋找方塊中輸入 apps,然後選取 App Manager

  3. Lightning Experience App Manager 頁面上,選擇新的連線應用程式,選擇建立連線應用程式,然後選擇繼續

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

  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,請從下列位置下載範本:

尋找您的網域 URL

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

尋找 URL
  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 – 輸入您在建立連線應用程式時記下的取用者金鑰。

    • 用戶端秘密 – 輸入您在建立連線應用程式時記下的消費者秘密。

    • 網域 URL – 使用下列格式: https://domain_URL.

    完成時,請選擇下一步

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

  9. 選擇提交

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

手動建立通知元件

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

建立 Amazon EventBridge API 目的地和連線

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

先決條件

若要使用 API 目的地連線的 OAuth 授權,請在 Salesforce 中建立連線的應用程式。若要這樣做,請遵循 Salesforce 文件中為 OAuth 2.0 用戶端登入資料流程設定連線應用程式的步驟。您可以將連線應用程式中的取用者金鑰和秘密用於 API 目的地連線。

若要在 EventBridge 主控台中建立 API 目的地:

  • 請遵循《Amazon EventBridge 使用者指南》中的建立 API 目的地中的步驟。

  • 設定 Salesforce 特有的組態。

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

建立目的地和連線
  1. 在 https://https://console.aws.amazon.com/events/ 開啟 EventBridge 主控台,然後在左側導覽窗格中選擇 API 目的地

  2. 向下捲動至 API 目的地表格,然後選擇建立 API 目的地

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

  3. 輸入下列資訊:

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

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

    2. (選用) 輸入 API 目的地的描述

    3. 對於 API 目的地端點,請使用此 URL: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

      • : client_credentials

  5. 選擇建立

注意

如果您的 Salesforce 組織針對 API 存取使用多重驗證,使用者必須完成第二個驗證挑戰才能存取 Salesforce APIs。如需詳細資訊,請參閱 Salesforce 文件中的設定 API 存取的多重要素驗證登入要求

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

建立 EventBridge 規則並將其連線至 API 目的地

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

如需 EventBridge 規則的詳細資訊,請參閱《Amazon EventBridge 使用者指南》中的建立對事件做出反應的 Amazon EventBridge 規則。

建立變更集事件

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

  1. Amazon EventBridge 中,選擇規則

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

  3. Rules (規則) 區段中,選擇 Create Rule (建立規則)。

  4. 輸入規則的名稱,然後選擇下一步

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

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

    如需事件模式比對的詳細資訊,請參閱 文件中的 Amazon EventBridge 事件模式中的內容篩選。 AWS

  6. 選擇下一步

  7. 選取目標中,在目標 1 下,選取 EventBridge API 目的地

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

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

  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. ChooseNext,然後下一步

  12. 檢閱規則,然後選擇建立規則

注意

若要疑難排解 API 目的地,您可以使用 Amazon SQS 主控台將無效字母佇列新增至目標。佇列會收到無法傳遞的訊息,以及錯誤。從 Amazon SQS 主控台,您可以在佇列中輪詢訊息是否有錯誤。如需詳細資訊,請參閱《Amazon SQS 使用者指南》中的使用無效字母佇列來處理 EventBridge 中未傳遞的事件,以及接收和刪除 Amazon SQS 中的訊息。 Amazon SQS Amazon SQS

建立優惠發行事件

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

  1. Amazon EventBridge 主控台中,SelectRules

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

  3. Rules (規則) 區段中,選擇 Create Rule (建立規則)。

  4. 輸入規則的名稱,然後選擇下一步

  5. 事件模式下,選取自訂模式 (JSON 編輯器),然後輸入下列篩選條件: 

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

    如需事件模式比對的詳細資訊,請參閱《Amazon EventBridge 使用者指南》中的 Amazon EventBridge 事件模式中的內容篩選。 EventBridge

  6. 選擇下一步

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

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

  9. 設定目標輸入下選取輸入轉換器,然後選取設定輸入 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 }
  10. ChooseNext,然後下一步

  11. 檢閱規則,然後選擇建立規則

注意

為了協助疑難排解 API 目的地的執行,請將 Amazon SQS 無效字母佇列新增至目標。佇列會收到無法與錯誤一起交付的訊息。然後,您可以輪詢訊息以檢視錯誤。如需詳細資訊,請參閱 AWS 文件中的事件重試政策和使用無效字母佇列接收和刪除訊息 (主控台)

建立機會事件

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

您也可以使用 AWS SDKs 以程式設計方式建立和管理 EventBridge 規則。

事件類型

以下清單說明合作夥伴使用機會時產生的事件類型。這些連結會帶您前往每個事件的 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"]   } }