分享方式:


如何針對 Azure Web PubSub 事件處理程式進行疑難解答和偵錯

當 WebSocket 連線連接到 Web PubSub 服務時,服務會向已註冊的上游制定 HTTP POST 要求,並預期 HTTP 回應。 我們會以事件處理常式形式呼叫此上游,而且事件處理常式會遵循 Web PubSub CloudEvents 規格負責處理傳入事件。

在本機執行事件處理程式端點

事件處理常式在本機執行時,無法公開存取本機伺服器。

有兩種方式可將流量路由傳送至 localhost,一種是使用 ngroklocaltunnelTunnelRelay 等工具來公開可在網際網路上存取的 localhost。 另一種方式 (也就是建議的方式) 是使用 awps-tunnel,透過工具將來自 Web PubSub 服務的流量經由通道送到您的本機伺服器。

Web PubSub 本機通道工具會在幕後建立對 Web PubSub 服務的數個持續性通道連線 (我們將其視為一種伺服器連線)。 每當事件發生時,Web PubSub 服務會透過通道連線將事件訊息路由傳送至本機通道工具,而本機通道工具會改造 HTTP 要求,並將要求傳送至上游伺服器。

本機通道工具透過 Web 檢視頁面提供工作流程的生動檢視。 根據預設,Web 檢視會接聽本機連接埠 upstream port + 1000,而您可以使用命令參數 --webviewPort <your-custom-port> 定義 Web 檢視連接埠。

Web 檢視包含四個索引標籤:

  • [用戶端] 索引標籤,其中提供測試 WebSocket 用戶端來連線 Web PubSub 並傳送資料。
  • [Web PubSub] 索引標籤,其中提供 Web PubSub 服務的基本資訊,並內嵌已啟用的 [即時追蹤] 頁面。
  • [本機通道] 索引標籤,其中列出所有透過本機通道工具送至本機伺服器的要求。
  • [伺服器] 索引標籤,其中顯示本機伺服器的基本資訊。 此外,也提供內建的回應伺服器,其程式碼類似於下面所示的範例程式碼。

顯示流量檢查的螢幕快照。

請遵循使用本機通道工具進行開發,以在本機安裝和執行通道工具,進而在本機開發事件處理常式伺服器。

在線偵錯事件處理程式端點

有時候您可能會有將事件傳送至已設定事件處理程式上游的問題。 典型的錯誤類型與濫用保護失敗有關, 例如、 AbuseProtectionResponseInvalidStatusCodeAbuseProtectionResponseMissingAllowedOriginAbuseProtectionResponseFailed。 這類錯誤可能與上游應用程式伺服器設定相關,例如,403 狀態代碼可能與您的應用程式伺服器驗證組態相關,404 狀態代碼可能是由不一致的事件處理程式路徑設定所造成。 針對這類失敗進行疑難解答的其中一種方式,就是將濫用保護要求傳送至您設定的事件處理程式 URL,以查看其是否正常運作,例如,使用 curl 命令將濫用保護要求傳送至您設定的事件處理程式 URL https://abc.web.com/eventhandler 如下所示:

curl https://abc.web.com/eventhandler -X OPTIONS -H "WebHook-Request-Origin: *" -H "ce-awpsversion: 1.0" --ssl-no-revoke -i

此命令應該會傳回 204。

下一步

使用這些資源開始建置自己的應用程式: