HTTP-REST 外掛程式支援下列兩種類型的 REST 主機,您可以使用這兩種主機向 REST 端點發出要求 - 持續性主機和暫時性主機。
持續性主機和暫時性主機之間的差異
下表比較了這兩種類型的 REST 主機。
持續性主機 | 暫時性主機 |
---|---|
儲存在 Automation Orchestrator 資料庫中。 | 未儲存在 Automation Orchestrator 資料庫中。 暫時性主機是執行指令碼時位於記憶體中的虛擬物件。 |
儲存在 Automation Orchestrator 詳細目錄中。 也可以在 RESTHost 類型的表單下拉式功能表中檢視持續性主機。 |
未儲存在 Automation Orchestrator 詳細目錄中。 |
重新啟動、容錯移轉和升級後可用。 當工作流程 Token 中斷時,如果工作流程項目以持續性 REST 主機作為輸入,它可以從中斷的位置繼續。 使用持續性主機作為工作流程項目的輸入/輸出。您可以在指令碼開始時建立它們,並在不再需要時將其刪除。 |
重新啟動和容錯移轉後,就無法使用。 當工作流程中斷時,無法還原承載暫時性 REST 主機的工作流程項目輸入。 對不使用的伺服器發出隔離要求時,應在指令碼中使用暫時性主機。 |
可以當成資源元素來匯出和匯入。 | 可在不同的 Automation Orchestrator 執行個體之間傳輸,因為它們完全是透過指令碼來建立及管理。 當您在多個環境中工作,且無需移轉持續性主機時,應使用暫時性主機。 |
每個持續性主機都有一個專用 HTTP 用戶端,用來管理對端點的要求。 | 主機會重複使用相同的 HTTP 用戶端執行個體。 |
持續性主機和暫時性主機支援並行要求。
|
暫時性主機的考量事項
建立暫時性主機時,請考慮以下事項。
- 在工作流程項目之間以輸入/輸出形式傳遞的暫時性主機,可能無法在所有情況下都能正常運作。暫時性主機依賴於工作流程快取,例如,當非同步工作流程啟動時,工作流程快取不會起作用。巢狀工作流程也可能會失敗。
- 只有 GET 和 HEAD 要求會自動重新導向。URL 重新導向使用
default
策略。 - 不支援主機名稱驗證。
- 不支援用戶端憑證驗證。
疑難排解
如果您使用不支援並行要求的暫時性主機,則在升級 Automation Orchestrator 環境或將 HTTP-REST 外掛程式升級至 2.4.1.19272162 版或更新版本之後,可能會遇到指令碼迴歸問題。不支援使用不同的暫時性主機執行個體來執行要求 (對於 Cookie,這些要求彼此相依)。
若要避免出現此問題,請使用以下方法之一。
- 不要使用暫時性主機,而使用持續性主機和作業。您可以採取兩種方式之一,來建立持續性 REST 主機。
- 使用新增 REST 主機工作流程,來建立指向伺服器的 REST 主機。
不要使用暫時性主機,而在需要向其建立要求的任何位置,使用 REST 主機作為輸入。
- 不要建立指向此主機的暫時性作業。改為建立一般作業。
- 必須停用並行要求支援,否則不會保留 Cookie。
如果在工作流程中向此主機同時發出多項要求,則不建議使用此方法。
- 從指令碼中,針對每一次的工作流程執行,各建立一個 REST 主機,然後將其刪除。
如果向伺服器發出並行要求,請使用此方法。例如,如果您有兩項並行要求,請建立兩個不同的主機。
- 複製工作流程。
- 新增指令碼元素,以建立您想用於未來要求的主機。
- 將主機用作工作流程的輸出,並作為向該主機發出要求的所有其他指令碼的輸入。
- 若要清除狀態,請在指令碼尾端新增一個元素,以刪除您建立的主機。
- 使用新增 REST 主機工作流程,來建立指向伺服器的 REST 主機。
- 對給定工作流程中的所有相關要求使用一個暫時性主機,並視需要作為輸入/輸出,在工作流程項目之間進行傳遞。
雖未正式支援在多個工作流程元素之間傳遞暫時性主機,但預期這樣做是可行的。請注意,在重新啟動期間,工作流程狀態可能會遺失,且工作流程可能無法順利繼續。
如果使用暫時性主機,且希望針對 Cookie 發出彼此相依的要求,則必須在所有要求中使用相同的暫時性主機執行個體。如果要求跨越多個工作流程項目,請在第一個工作流程項目中建立主機,然後將其作為輸入傳遞給其餘的工作流程項目。
- 使用目前的暫時性主機,但藉由新增個別的標頭,以修改失敗的要求來包含必要的 Cookie。
您可能必須解析先前回應中的 Cookie,並在後續要求中使用它們。