針對 Azure Logic Apps 中的失敗進行疑難排解和診斷

適用於:Azure Logic Apps (使用量 + 標準)

您的邏輯應用程式工作流程會產生有助於診斷與偵錯應用程式問題的資訊。 您可以使用 Azure 入口網站檢閱工作流程中每個步驟的輸入、輸出和其他資訊,以診斷您的工作流程。 或者,您可以新增一些步驟至工作流程,以進行執行階段偵錯。

檢查觸發程序歷程記錄

每個工作流程執行都會以觸發程序開始,這會根據排程引發,或等候傳入的要求或事件。 觸發程序歷程記錄會列出您工作流程嘗試過的所有觸發程序,以及每次觸發程序嘗試的相關輸入和輸出資訊。 如未引發觸發程序,請嘗試下列步驟。

  1. 若要檢查消費邏輯應用程式中的觸發程序狀態,請檢閱觸發程序歷程記錄。 若要檢視觸發程序嘗試的詳細資訊,請選取該觸發程序事件,例如:

    Screenshot showing Azure portal with Consumption logic app workflow trigger history.

  2. 檢查觸發程序的輸入,以確認顯示的內容如您預期。 在 [歷程記錄] 窗格的 [輸入連結] 下,選取顯示 [輸入] 窗格的連結。

    觸發程序輸入包含觸發程序預期的資料,而且需要啟動工作流程。 檢閱這些輸入可協助您判斷觸發程序輸入是否正確,以及是否符合條件,以便能繼續執行工作流程。

    Screenshot showing Consumption logic app workflow trigger inputs.

  3. 檢查觸發程序輸出 (如果有的話),以確認顯示的輸出內容如您預期。 在 [歷程記錄] 窗格的 [輸出連結] 下,選取顯示 [輸出] 窗格的連結。

    觸發程序輸出包含觸發程序傳遞至工作流程中下一個步驟的資料。 檢閱這些輸出可協助您判斷傳遞至工作流程中下一個步驟的值是否正確或符合預期。

    例如,指出找不到 RSS 摘要的錯誤訊息:

    Screenshot showing Consumption logic app workflow trigger outputs.

    提示

    如果您發現任何無法辨識的內容,請深入了解 Azure Logic Apps 中的不同內容類型

檢查工作流程執行歷程記錄

每次引發觸發程序時,Azure Logic Apps 會建立工作流程執行個體並執行該執行個體。 如果執行失敗,請嘗試下列步驟,以便檢閱執行期間發生何事。 您可以檢閱工作流程中每個步驟的狀態、輸入和輸出。

  1. 若要檢查消費邏輯應用程式中的工作流程執行狀態,請檢閱執行歷程記錄。 若要檢視失敗執行的詳細資訊,包括該執行在其狀態中的所有步驟,請選取該失敗執行。

    Screenshot showing Azure portal with Consumption logic app workflow runs and a failed run selected.

  2. 當所有執行步驟都出現後,請選取每個步驟以展開其圖形。

    Screenshot showing Consumption logic app workflow with failed step selected.

  3. 檢閱失敗步驟的輸入、輸出和任何錯誤訊息。

    Screenshot showing Consumption logic app workflow with failed step details.

    例如,下列螢幕擷取畫面會顯示失敗 RSS 動作的輸出。

    Screenshot showing Consumption logic app workflow with failed step outputs.

執行執行階段偵錯

若要協助偵錯,您可以新增診斷步驟至邏輯應用程式工作流程,以及檢閱觸發程序和執行歷程記錄。 例如,您可以新增使用 Webhook Tester 服務的步驟,以便可以檢查 HTTP 要求,並判斷其確切的大小、圖形與格式。

  1. 在瀏覽器中,移至 Webhook Tester 網站,並複製所產生的唯一 URL。

  2. 在您的邏輯應用程式中,以您想要測試的任何內文內容新增 HTTP POST 動作 (例如,運算式或另一個步驟輸出)。

  3. 將您在 Webhook 測試工具的 URL 貼到 HTTP POST 動作。

  4. 若要檢閱 Azure Logic Apps 如何產生與形成要求,請執行邏輯應用程式工作流程。 然後,您可以重新瀏覽 Webhook Tester 網站以取得詳細資訊。

效能 - 常見問題集 (FAQ)

工作流程執行持續時間為何超過所有工作流程動作持續時間的總和?

執行動作時,排程額外負荷存在,而動作之間的等候時間可能會因為後端系統負載而發生。 工作流程執行持續時間包含這些排程時間和等候時間,以及所有動作持續時間的總和。

通常,我的工作流程會在 10 秒內完成。 但是有時候可能需要更長的時間才能完成。 如何確定工作流程一律會在 10 秒內完成?

  • 延遲沒有 SLA 保證。

  • 使用量工作流程會在多租用戶 Azure Logic Apps 上執行,因此其他客戶的工作負載可能會對您的工作流程效能造成負面影響。

  • 如需更可預測的效能,您可以考慮建立標準工作流程,以在單一租用戶 Azure Logic Apps 中執行。 您有更多控制權可擴大或擴增以改善效能。

我的動作會在 2 分鐘後逾時。 我要如何增加逾時值?

動作逾時值無法變更,且固定在 2 分鐘。 如果您使用 HTTP 動作,而且您擁有由 HTTP 動作呼叫的服務,則可以變更服務,以使用非同步模式來避免 2 分鐘逾時。 如需詳細資訊,請參閱使用輪詢動作模式執行長時間執行的工作

常見問題 - 標準邏輯應用程式

Azure 儲存體帳戶中無法存取的成品

標準邏輯應用程式會將所有成品儲存在 Azure 儲存體帳戶中。 如果無法存取這些成品,您可能會收到下列錯誤。 例如,儲存體帳戶本身可能無法存取,或儲存體帳戶位於防火牆後方,但未設定任何私人端點供儲存體服務使用。

Azure 入口網站位置 錯誤
[概觀] 窗格 - System.private.corelib: 拒絕存取路徑 'C:\home\site\wwwroot\hostj.son

- Azure.Storage.Blobs:此要求未獲授權,無法執行此作業
[工作流程] 窗格 - 無法連線到主機執行階段。錯誤詳細資料,代碼: 'BadRequest',訊息: 「主機執行階段發生錯誤 (InternalServerError)。」

- 無法連線到主機執行階段。錯誤詳細資料,代碼: 'BadRequest',訊息: 「主機執行階段發生錯誤 (ServiceUnavailable)。」

- 無法連線到主機執行階段。錯誤詳細資料,代碼: 'BadRequest',訊息: 「主機執行階段發生錯誤 (BadGateway)。」
工作流程的建立和執行期間 - 無法儲存工作流程

- 設計工具中發生錯誤: GetCallFailed。擷取作業失敗

- ajaxExtended 呼叫失敗

疑難排解選項

下列清單包含這些錯誤的可能原因,以及有助於疑難排解的步驟。

  • 若為公用儲存體帳戶,請以下列方式檢查儲存體帳戶的存取權:

    如果連線失敗,請檢查連接字串中的共用存取簽章 (SAS) 金鑰是否為最新的。

  • 若為防火牆後方的儲存體帳戶,請以下列方式檢查儲存體帳戶的存取權:

    • 如已對儲存體帳戶啟用防火牆限制,請檢查是否針對 Blob、檔案、資料表和佇列儲存體服務設定私人端點

    • 使用 Azure 儲存體總管檢查儲存體帳戶的連線能力。

    如果發現連線問題,請繼續下列步驟:

    1. 在與邏輯應用程式整合的相同虛擬網路中,建立可以放入不同子網路的 Azure 虛擬機器。

    2. 在命令提示字元中,執行 nslookup 檢查 Blob、檔案、資料表和佇列儲存體服務是否解析為預期的 IP 位址。

      語法: nslookup [StorageaccountHostName] [OptionalDNSServer]

      Blob:nslookup {StorageaccountName}.blob.core.windows.net

      檔案:nslookup {StorageaccountName}.file.core.windows.net

      資料表:nslookup {StorageaccountName}.table.core.windows.net

      佇列:nslookup {StorageaccountName}.queue.core.windows.net

      • 如果儲存體服務具有服務端點,則此服務會解析為公用 IP 位址。

      • 如果儲存體服務具有私人端點,則此服務會解析為各自的網路介面控制器 (NIC) 私人 IP 位址。

    3. 如果之前的網域名稱伺服器 (DNS) 查詢解析成功,請執行 pspingtcpping 命令,透過連接埠 443 檢查儲存體帳戶的連線:

      語法: psping [StorageaccountHostName] [Port] [OptionalDNSServer]

      Blob:psping {StorageaccountName}.blob.core.windows.net:443

      檔案:psping {StorageaccountName}.file.core.windows.net:443

      資料表:psping {StorageaccountName}.table.core.windows.net:443

      佇列:psping {StorageaccountName}.queue.core.windows.net:443

    4. 如果每個儲存體服務都可從您的 Azure 虛擬機器解析,請尋找虛擬機器用於解析的 DNS。

      1. 將邏輯應用程式的 WEBSITE_DNS_SERVER 應用程式設定設為 DNS,並確認此 DNS 可順利運作。

      2. 確認已在標準邏輯應用程式中使用適當的虛擬網路和子網路正確設定 VNet 整合。

    5. 如果您在自己的儲存體帳戶的私人端點服務使用私人 Azure DNS 區域,請檢查是否已建立邏輯應用程式整合式虛擬網路的虛擬網路連結

如需詳細資訊,請參閱使用服務或私人端點,將標準邏輯應用程式部署至防火牆後方的儲存體帳戶

下一步