Azure 與 Microsoft Dynamics 365 整合

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

透過耦合 Dynamics 365 事件執行管線至 Microsoft Azure 服務匯流排,Microsoft Dynamics 365 (線上和內部部署) 可連線至 Microsoft Azure 平台。 設定後,此連線可將做為目前 Dynamics 365 作業的一部分處理的資料張貼至服務匯流排。 「Dynamics 365 感知」的 Microsoft Azure 服務匯流排 解決方案可以從服務匯流排接聽和讀取 Microsoft Dynamics 365 資料。

Microsoft Dynamics 365 和 Microsoft Azure 平台間的連線,提供了一種與外部雲端型企業營運 (LOB) 應用程式溝通 Dynamics 365 執行階段資料的安全且可靠的管道。

本主題內容

連線的重要元素

從 Dynamics 365 到服務匯流排案例

在 Dynamics 365 與 Azure 解決方案間建立合約

執行階段錯誤之管理

連線的重要元素

實作 Microsoft Dynamics 365 和 Microsoft Azure 服務匯流排 之間連線的重要元素如下所述。 下一節的圖顯示這些元素的運作情形。

  • 資料內容
    資料內容包含商務資料,做為目前 Dynamics 365 作業的一部分處理。 這項處理會在使用者、工作流程或應用程式對 Dynamics 365 平台要求執行特定作業時初始化。 資料內容會傳遞至在事件準銷售案源中註冊的任何外掛程式或自訂工作流程活動,以在目前正在處理的特定要求和實體組合上執行。 資料內容的類型是 IPluginExecutionContext,當它隨事件執行準銷售案源傳遞時,張貼至服務匯流排時則是 RemoteExecutionContext

    張貼至 Microsoft Azure 服務匯流排 的訊息內包含的資料內容可以格式化為 XML 或 JSON,除了預設的 .NET 二進位格式以外。 如此可提供跨平台的互通性,讓 Azure 託管的非 .NET 用戶端可以從服務匯流排讀取 Dynamics 365 資料。CRM Online 2016 更新 1 和 CRM 2016 Service Pack 1 (內部部署) 已經引進此功能。。

    如需上述技術,請參閱:了解傳遞至外掛程式的資料內容事件執行準銷售案源為 Microsoft Azure 解決方案撰寫接聽應用程式

  • 外掛程式
    外掛程式是用來初始化張貼包含資料內容的訊息至 Microsoft Azure 服務匯流排 的兩種方法之一,另一種方法是自訂工作流程活動。 Dynamics 365-Azure 連線功能支援兩種外掛程式:內建 (OOB) 與自訂。 無論是哪一種情況,建議您註冊外掛程式以非同步方式執行,以獲得最佳系統效能。

    Azure 感知 OOB 外掛程式隨 Dynamics 365 提供,可以使用 SDK 下載中的外掛程式註冊工具註冊。 此外掛程式完全信任 Microsoft Dynamics 365 平台。 您必須在事件執行準銷售案源中註冊外掛程式「步驟」,以識別觸發外掛程式執行及執行張貼通知的訊息和實體組合。 執行時,外掛程式會透過服務端點通知服務 (IServiceEndpointNotificationService) 通知非同步服務,張貼目前的要求資料內容至 Microsoft Azure 服務匯流排。

    您也可以編寫您的「Azure 感知」自訂外掛程式。 自訂外掛程式在沙箱中以部分信任模式執行。 自訂外掛程式可初始化張貼資料內容至服務匯流排,透過服務端點通知服務。 新增程式碼來叫用此服務會讓外掛程式變成「Azure 感知」。 如需一般外掛程式的詳細資訊,請參閱撰寫外掛程式。 如需 Azure 感知外掛程式的詳細資訊,請參閱 撰寫自訂的 Azure 感知外掛程式

  • 自訂工作流程活動
    與外掛程式類似,可以撰寫自訂工作流程活動來起始張貼目前要求訊息資料內容至 Microsoft Azure 服務匯流排,藉由使用服務端點通知服務 (IServiceEndpointNotificationService)。其他資訊:範例:Azure 認知自訂工作流程活動

  • 非同步服務
    收到服務端點通知服務的通知後,非同步服務就會處理張貼事件執行準銷售案源目前處理之要求訊息的資料內容至 Microsoft Azure 服務匯流排。 每篇文章由非同步服務的系統作業執行。 使用者可以使用 Microsoft Dynamics 365 Web 應用程式的 [系統作業] 檢視表檢視每一項系統作業的狀態。

    如需非同步服務,請參閱 Microsoft Dynamics 365 的非同步服務

  • Microsoft Azure 服務匯流排
    服務匯流排會中繼要求訊息資料內容,在 Microsoft Dynamics 365 和 Microsoft Azure 服務匯流排 解決方案接聽程式應用程式之間。 服務匯流排也會提供資料安全性,因此只有經授權的應用程式才能存取張貼的 Dynamics 365 資料。 授權 Microsoft Dynamics 365 張貼資料內容至服務匯流排,並且讓接聽程式應用程式能夠閱讀,是由 Microsoft Azure Active Directory 存取控制服務 (ACS) 或 Microsoft Azure 共用存取簽章 (SAS) 所管理。

    注意

    關於 SAS 授權:CRM Online 2016 更新 1 和 CRM 2016 Service Pack 1 (內部部署) 已經引進此功能。 SAS 是較為現代化的授權形式,與 ACS 相較之下效能更佳。

    如需服務匯流排,請參閱服務匯流排。如需服務匯流排授權,請參閱服務匯流排驗證與授權

  • Microsoft Azure 解決方案
    如要 Dynamics 365-Azure 連線功能能夠運作,則 Microsoft Azure 服務匯流排 解決方案帳戶中至少要有一個解決方案,該解決方案需包含一個或多個服務端點。 對於中繼端點合約,「Dynamics 365 感知」的接聽程式應用程式必須有效地執行您在端點在服務匯流排的 Dynamics 365 要求。 對於佇列端點合約,接聽程式不需要主動地接聽。 接聽程式在連接 Microsoft.Xrm.Sdk 組件才會具備 Dynamics 365 感知能力,因此也定義了 RemoteExecutionContext 類型。其他資訊:為 Microsoft Azure 解決方案撰寫接聽應用程式

    Microsoft Dynamics 365 支援傳送事件資料至 Azure 事件中樞 解決方案。CRM Online 2016 更新 1 和 CRM 2016 Service Pack 1 (內部部署) 已經引進此功能。。如需事件中心,請參閱在 Azure 事件中心解決方案中使用 Dynamics 365 事件資料

從 Dynamics 365 到服務匯流排案例

現在讓我們來識別一個實作上述連線元件的案例。 做為先決條件,ACS 已設定辨識 Microsoft Dynamics 365 為支援的發行者和帶有規則的 Microsoft Azure 服務匯流排 已設定解決方案,讓 Microsoft Dynamics 365 來張貼至接聽程式所在的端點。

下圖顯示構成這個案例的實際元素。

從 Microsoft Dynamics CRM 至服務匯流排案例

事件順序標示為識別如下圖:

  1. 接聽程式應用程式在 Microsoft Azure 服務匯流排 解決方案端點註冊並有效地接聽服務匯流排的 Microsoft Dynamics 365 遠端執行內容。

  2. 使用者在 Microsoft Dynamics 365 作業執行觸發註冊的 OOB 外掛程式或自訂 Azure 感知外掛程式執行特定作業。 外掛程式透過非同步服務系統作業,起始將目前要求資料內容張貼至服務匯流排。

  3. Microsoft Dynamics 365 張貼的宣告會經過驗證。 服務匯流排隨後便中繼遠端執行內容至接聽程式。 接聽程式處理內容資訊,並執行具備該資訊的特定業務相關工作。 服務匯流排通知非同步服務已成功張貼文章,並設定相關系統作業為完成狀態。

在 Dynamics 365 與 Azure 解決方案間建立合約

對於每個解決方案端點,您會設定定義服務匯流排上的遠端執行內容「訊息」程序處理,和應該用於該端點上的安全性。 在端點 (使用列於此處的支援合約),會收到服務匯流排的訊息:

  • 待辦項目
    佇列合約提供雲端的訊息佇列。 具備佇列合約,接聽程式不需要主動地接聽端點上的訊息。 對於佇列,有一種破壞式的讀取,以及非破壞式的讀取。 破壞式的讀取會從佇列中讀取可使用的訊息,並移除訊息。 非破壞式的讀取不會移除佇列中的訊息。

    Microsoft Dynamics 365 支援的佇列類型稱為持續性佇列。 持續性佇列的訊息可用性期間可以在程式碼中指定,雖然時間長,但有時限。

  • 單向
    單向合約需要主動的接聽程式。 如果端點上沒有使用中接聽程式,則張貼至服務匯流排會失敗。Microsoft Dynamics 365 在下次重試時間會以倍增方式拉長,直到張貼要求的非同步系統作業最後中止,且狀態設定為「失敗」為止。

  • 雙向
    雙向合約類似單向合約,不過字串值可以從接聽程式傳回至起始張貼的外掛程式或自訂工作流程活動。

  • REST
    REST 合約類似 REST 端點的雙向合約。

  • 主題
    它類似佇列,但可以訂閱一個或多個接聽程式可以訂閱主題並從其主題接收訊息。

  • 事件中心
    此合約類型適用於 Microsoft Azure 事件中心解決方案。

重要

若要使用這些合約,必須使用 Microsoft AzureSDK v1.7 或更新版本撰寫您的接聽應用程式。

為識別此種安全性,合約使用是合約組態的一部分。 合約可以使用傳輸安全性,使用 傳輸層安全性 (TLS) 或安全通訊端層 (SSL) (https)。

宣告驗證用於服務匯流排的安全存取。 用於驗證至服務匯流排的宣告在 Microsoft Dynamics 365 中產生,而且由指定於 Microsoft Dynamics 365 設定資料庫中的 AppFabricIssuer 憑證簽署。

執行階段錯誤之管理

如果在文章嘗試傳至服務匯流排且發生錯誤後,請確認 Microsoft Dynamics 365 Web 應用程式相關系統作業的狀態,獲取更多關於錯誤的詳細資訊。 如果服務匯流排離線或接聽程式/端點無法使用,則在 Microsoft Dynamics 365 處理的目前訊息不會張貼至匯流排。 非同步服務會繼續嘗試用定時的模式張貼訊息,起初會經常張貼,然後間隔會越來越長。 對於內部 Microsoft Dynamics 365 錯誤,將不會嘗試訊息文章。 針對外部服務匯流排或網路錯誤,相關系統作業就會進入「等候」狀態。

另請參閱

Microsoft Dynamics 365 Azure 擴充功能
設定 Azure 與 Microsoft Dynamics 365 整合
撰寫可擴充商務程序的外掛程式
Microsoft Dynamics 365 的非同步服務
AsyncOperation (系統作業) 實體

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權