在上一章中,我們了解了如何在Dynamics365中使用新的RESTWebneneneba API端點來執(zhí)行各種操作,以及如何使用它來開發(fā)自定義業(yè)務(wù)應(yīng)用程序。在本章中,我們將了解Dynamics 365如何以本機方式支持與Microsoft Azure的集成。本章假定對微軟Azure的基本原理有基本了解。
供Microsoft Azure參考
什么是 Azure - Microsoft 云服務(wù) | Microsoft Azure
Microsoft Azure可以定義為一個云計算平臺或基于云的服務(wù)集合,開發(fā)人員和IT專業(yè)人員可以通過全球各地的各種數(shù)據(jù)中心使用它來構(gòu)建、測試、部署和管理應(yīng)用程序。Microsoft Azure提供基礎(chǔ)設(shè)施即服務(wù)(IaaS)、平臺即服務(wù)(PaaS)和軟件即服務(wù)(SaaS)。
對于IaaS,我們基本上指的是Azure虛擬機,即托管在云上的服務(wù)器。云計算服務(wù)提供商,在這種情況下是微軟,管理基礎(chǔ)設(shè)施,我們需要為使用資源付費。在這里,我們擁有完全的控制權(quán),并負責管理運行在那里的操作系統(tǒng)、中間件和應(yīng)用程序。我們還可以在Microsoft Azure虛擬機中部署Dynamics 365內(nèi)部部署。
有了PaaS,我們在云中有了一個完整的開發(fā)和部署環(huán)境,我們可以使用它在云中構(gòu)建、部署和管理我們的應(yīng)用程序。我們?yōu)槲覀冋谑褂玫脑品?wù)付費。在這里,我們只管理我們的應(yīng)用程序和服務(wù),而云服務(wù)提供商管理其他一切。
有了SaaS,我們基本上可以通過互聯(lián)網(wǎng)連接和使用軟件或基于云的應(yīng)用程序。
在這里,我們只需要為我們將要使用的基于云的應(yīng)用程序付費。云服務(wù)提供商管理一切,無論是底層基礎(chǔ)設(shè)施、中間件、應(yīng)用軟件等等。我們只需要連接到這些應(yīng)用程序,主要是使用互聯(lián)網(wǎng)上的網(wǎng)絡(luò)瀏覽器來使用它們。Dynamics 365 Online屬于SaaS。
?在本章中,我們將介紹以下幾點:
- 了解Azure與Dynamics 365的集成
- 配置Azure與Dynamics 365的集成
- 編寫支持Azure的插件和不同的偵聽器應(yīng)用程序
了解Azure與Dynamics 365的集成
Microsoft Azure服務(wù)總線是Microsoft Azure堆棧中的主要組件,使我們能夠?qū)ynamics 365與Microsoft Azure連接起來。通過Azure服務(wù)總線,我們可以將Dynamics 365內(nèi)部執(zhí)行的操作的詳細信息傳遞給正在偵聽該操作的多個應(yīng)用程序,并可以讀取和處理該信息。
Microsoft Azure服務(wù)總線簡介
Azure服務(wù)總線可以定義為在Microsoft的Azure數(shù)據(jù)中心中運行的云消息服務(wù)。Azure服務(wù)總線使我們能夠連接托管在云中或防火墻網(wǎng)絡(luò)內(nèi)的內(nèi)部部署中的不同應(yīng)用程序、服務(wù)或設(shè)備。它可以用于連接不同的業(yè)務(wù)線(LOB)應(yīng)用程序、平板電腦、手機,甚至任何家用電器或傳感器。此Azure服務(wù)總線支持兩種不同的通信機制:代理消息傳遞(隊列、主題和訂閱)和中繼服務(wù)。
Azure服務(wù)總線代理的消息傳遞功能包括可以在Microsoft的Azure數(shù)據(jù)中心中創(chuàng)建和托管的隊列和主題。應(yīng)用程序可以連接到創(chuàng)建的隊列或主題,并向它們發(fā)送消息。這些消息將持久存儲。
然后,接收應(yīng)用程序可以連接到它們,并可以接收和處理消息。發(fā)送應(yīng)用程序和接收應(yīng)用程序可以托管在云中,也可以在本地。隊列提供單向異步通信,其中發(fā)布者發(fā)布消息,訂閱者接收消息。每個消息都由一個訂戶接收。主題還提供了單向異步消息傳遞基礎(chǔ)結(jié)構(gòu),其中發(fā)布者發(fā)布消息,接收方像隊列一樣接收消息。主要區(qū)別在于,多個訂閱者可以接收同一條消息,他們可以選擇指定一些標準,以便只接收符合指定規(guī)則的消息。由于它們通過代理提供單向異步通信,即發(fā)送方和接收方之間沒有直接連接,因此不適合我們希望發(fā)送方和接收方都交換消息或直接相互連接,或希望它們之間進行同步通信的情況。為了解決此問題,Azure服務(wù)提供中繼。
Azure服務(wù)總線中繼服務(wù)提供應(yīng)用程序之間的雙向同步通信功能,與隊列和主題不同。中繼服務(wù)允許我們在云中公開一個端點,該端點充當我們在云上托管的服務(wù)或本地服務(wù)的代理。然后,任何可以訪問互聯(lián)網(wǎng)的客戶端都可以對該端點進行調(diào)用,這些調(diào)用會中繼回防火墻后面的服務(wù)或任何其他偵聽消息的應(yīng)用程序。這為組織公開服務(wù)提供了一種非常可靠且具有成本效益的方式。
Azure服務(wù)總線文檔
Azure Service Bus Messaging documentation | Microsoft Learn
了解Dynamics 365和Azure服務(wù)總線
在上一節(jié)中,我們介紹了Azure服務(wù)總線的基本知識,在本節(jié)中,將介紹Dynamics 365如何與Azure服務(wù)總線集成。?
下圖顯示了Dynamics 365如何與Azure服務(wù)總線一起工作,以連接到可以在云中或托管在防火墻后面的應(yīng)用程序:
以下是對相同內(nèi)容的逐步解釋:
- Dynamics365用戶在CRM內(nèi)部執(zhí)行操作,如創(chuàng)建潛在客戶記錄、更新機會等。
- 這會觸發(fā)已注冊的Azure感知OOB(開箱即用)插件或自定義Azure感知插件或工作流活動的執(zhí)行,然后通知異步服務(wù)系統(tǒng)作業(yè)。
- 一旦異步服務(wù)接收到通知,它就會處理將請求消息的數(shù)據(jù)上下文發(fā)布到Azure服務(wù)總線。過帳是通過系統(tǒng)作業(yè)執(zhí)行的。Dynamics 365用戶可以在Dynamics 365 Web應(yīng)用程序中檢查系統(tǒng)作業(yè)的狀態(tài)(設(shè)置|系統(tǒng)作業(yè))。
- 然后,Microsoft Azure服務(wù)總線將執(zhí)行上下文中繼到Microsoft Azure服務(wù)總線偵聽器應(yīng)用程序。Azure服務(wù)總線還管理授權(quán)。通過使用訪問控制服務(wù)(ACS)或共享訪問簽名(SAS)來授權(quán)將數(shù)據(jù)發(fā)布到服務(wù)總線的Dynamics 365以及讀取數(shù)據(jù)的任何偵聽器應(yīng)用程序。
Azure服務(wù)總線:身份驗證和授權(quán)
Azure Service Bus authentication and authorization - Azure Service Bus | Microsoft Learn - 在Azure Service Bus解決方案終結(jié)點上注冊的Microsoft Azure Service Bus偵聽器應(yīng)用程序可以讀取和處理由Azure Service Bus發(fā)布的Dynamics 365執(zhí)行上下文。
- Azure服務(wù)總線然后將相關(guān)系統(tǒng)作業(yè)的狀態(tài)設(shè)置為已完成。
SAS授權(quán)在CRM Online 2016 Update 1中引入,性能優(yōu)于ACS。SAS是Dynamics 365的推薦授權(quán)方法。請參閱此處,以將服務(wù)端點從ACS更新為SAS授權(quán)
Walkthrough: Update a service endpoint from ACS to SAS authorization | Microsoft Learn
了解Azure感知插件
正如我們之前看到的,我們可以針對Dynamics365中的特定事件注冊一個Azure感知插件,然后該插件將此執(zhí)行上下文傳遞給Azure服務(wù)總線,后者將其轉(zhuǎn)發(fā)給偵聽器應(yīng)用程序。在這里,我們可以使用OOB Azure感知插件,也可以編寫自己的自定義Azure感知插件或自定義工作流活動。
使用Dynamics 365 Online 9.0版,我們可以使用Webhook作為Azure Service Bus的替代方案,將有關(guān)事件的數(shù)據(jù)發(fā)送到web應(yīng)用程序
Use webhooks to create external handlers for server events(Developer Guide for Dynamics 365 Customer Engagement (on-premises)) | Microsoft Learn
對于OOB Azure感知插件,我們需要首先通過插件注冊工具注冊新的服務(wù)端點:
在服務(wù)端點注冊中,我們需要指定一個到Azure service Bus的連接,我們希望將插件事件傳遞到該連接:
服務(wù)端點保存有關(guān)Azure服務(wù)總線的授權(quán)信息,例如服務(wù)總線命名空間地址和SAS密鑰。成功注冊后,我們可以向添加的服務(wù)端點添加插件步驟,就像我們對常用插件程序集所做的那樣。
此支持Azure的OOB插件在完全信任的情況下執(zhí)行。然而,OOB Azure感知插件存在某些限制,例如它只能異步運行,不能調(diào)用CRM SDK方法,并且不能編寫用于日志記錄或?qū)徲嬆康牡母櫿Z句。
除了Dynamics 365提供的OOB Azure感知插件外,我們還可以創(chuàng)建自己的自定義Azure感知插件或自定義工作流活動。文章來源:http://www.zghlxwxcb.cn/news/detail-703904.html
傳遞給IPlugin的Execute方法的IServiceProvider包含IServiceEndpointNotificationService的實例。我們可以調(diào)用它的Execute方法來將執(zhí)行上下文發(fā)布到Azure服務(wù)總線。Execute方法需要服務(wù)端點的實體引用;我們可以從插件注冊工具中獲取服務(wù)端點ID。添加此代碼以調(diào)用端點通知服務(wù)使我們的插件Azure知道:文章來源地址http://www.zghlxwxcb.cn/news/detail-703904.html
public class AzureAwarePlugin : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
// set the Service Endpoint Id
var serviceEndpointId = "[ServiceEndpointGuid]";
// Obtain the execution context from the service provider.
IPluginExecutionContext context &
到了這里,關(guān)于Dynamics 365應(yīng)用程序開發(fā)- 8.利用Dynamics 365中的Azure擴展的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!