日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

服務集成模式

云工作流通過使用Task類型的狀態(tài)來調用各種服務,您可以使用三種服務集成模式來控制這些服務調用狀態(tài)流轉。本文介紹請求響應、等待系統(tǒng)回調和等待用戶自定義回調三種集成模式的詳細信息。

注意事項

您可以使用請求響應(RequestComplete)、等待系統(tǒng)回調(WaitForSystemCallback)和等待用戶自定義回調(WaitForCustomCallback)這三種集成模式來集成服務,但不是所有被調用的服務都支持這三種服務集成模式。關于不同服務對三種集成模式的支持情況,請參見集成模式

請求響應(RequestComplete)

當您在調用任務(Task)狀態(tài)的服務時,默認集成模式為請求響應模式。當您向服務發(fā)出請求時,系統(tǒng)會等待該服務返回響應后再繼續(xù)執(zhí)行后續(xù)的任務。

以下示例展示如何通過請求響應(RequestComplete)調用一個函數(shù)計算的函數(shù)。執(zhí)行這個工作流會調用指定的函數(shù),并等待函數(shù)處理的結果。由于是同步調用,狀態(tài)機會在調用結束后接收到函數(shù)返回的結果。

Type: StateMachine
Name: myWorkFlow
SpecVersion: v1
StartAt: InvokeFunction
States:
  - Type: Task
    Name: 調用函數(shù)示例
    Action: FC:InvokeFunction
    TaskMode: RequestComplete
    Parameters:
      resourceArn: acs:fc:{regionId}:{accountId}:functions/dataji/LATEST
      invocationType: Sync
      body: xxxx
    End: true

等待系統(tǒng)回調(WaitForSystemCallback)

對于一些任務類的集成服務,以及函數(shù)計算異步調用,通過指定等待系統(tǒng)回調(WaitForSystemCallback)任務模式,可以等待任務執(zhí)行完成后再進入下一個狀態(tài)。

以下示例展示如何通過等待系統(tǒng)回調(WaitForSystemCallback)調用一個函數(shù)計算的函數(shù)。

Type: StateMachine
Name: myWorkFlow
SpecVersion: v1
StartAt: InvokeFunction
States:
  - Type: Task
    Name: 調用函數(shù)示例
    Action: FC:InvokeFunction
    TaskMode: WaitForSystemCallback
    Parameters:
      resourceArn: acs:fc:{regionId}:{accountId}:functions/dataji/LATEST
      invocationType: Async
      body: xxxx
    End: true

等待系統(tǒng)回調(WaitForSystemCallback)表示工作流會等待任務完成后才進入下一個狀態(tài)。

如果使用等待系統(tǒng)回調(WaitForSystemCallback)服務集成模式的任務中止流程,云工作流將無法取消該任務,集成服務可能會收取您預期外的費用,因此,需要您自己取消集成任務。僅在以下三種情況下,云工作流可以中止任務。

  • 流程執(zhí)行已停止。

  • 并行(Parallel)狀態(tài)的另一個分支因為被捕獲的錯誤而失敗。

  • 迭代(Map)狀態(tài)的迭代失敗,錯誤未被捕獲。

流程引擎將盡最大努力取消任務,例如,當前流程采用等待系統(tǒng)回調(WaitForSystemCallback)任務模式,調用包含了子流程或函數(shù)計算的異步任務時,調用云工作流StopExecution - 停止一個正在執(zhí)行的流程API停止當前流程時,云工作流會停止包含在流程中的子流程, 然后停止包含在流程中的異步任務相關函數(shù)執(zhí)行。但是,流程引擎可能無法取消任務,其原因包括但不限于以下幾項。

  • 您的執(zhí)行角色缺乏進行相應API的調用權限。

  • 發(fā)生了臨時服務中斷。

關于支持等待系統(tǒng)回調(WaitForSystemCallback)任務集成模式的阿里云產品列表,請參見支持普通集成的云服務列表

等待用戶自定義回調(WaitForCustomCallback)

等待用戶自定義回調(WaitForCustomCallback)模式又稱為攜帶任務令牌的回調,提供一種暫停工作流,并根據(jù)集成服務內部自定義邏輯控制工作流執(zhí)行的方式。例如,在流程執(zhí)行中需要等待用戶審批場景,通過集成調用發(fā)起外部系統(tǒng)的審批流程,直至審批流程完成,回調工作流并返回審批結果,工作流再繼續(xù)執(zhí)行后續(xù)的流程步驟。一旦發(fā)起WaitForCustomCallback類型的集成調用,當前任務的執(zhí)行將自動暫停,直到集成服務通過調用ReportTaskSucceeded - 匯報指定的任務執(zhí)行成功ReportTaskFailed - 匯報指定的任務執(zhí)行失敗接口使得流程繼續(xù)執(zhí)行。

Type: StateMachine
Name: myWorkFlow
SpecVersion: v1
StartAt: InvokeFunction
States:
  - Type: Task
    Name: 調用函數(shù)示例
    Action: FC:InvokeFunction
    TaskMode: WaitForCustomCallback
    Parameters:
      resourceArn: acs:fc:{regionId}:{accountId}:functions/dataji/LATEST
      invocationType: Sync
      body: xxxx
    End: true

用戶自定義回調的工作原理如下圖所示。相比較輪詢,使用回調有效地降低了延遲、減少了輪詢對服務器造成的不必要壓力。此外,回調功能配合隊列可以實現(xiàn)對非函數(shù)計算任務的編排,擴展云工作流的編排范圍到任意類型的計算資源。

image

WaitForCustomCallback模式集成流程示例

云工作流與外部微服務集成

本小節(jié)以云工作流集成外部微服務執(zhí)行信用檢查為例進行介紹。云工作流發(fā)布一條消息至輕量消息隊列(原 MNS),消息中包含任務令牌Token。外部微服務與輕量消息隊列(原 MNS)集成,從隊列中獲取消息,然后返回結果和原始任務令牌。接下來云工作流繼續(xù)執(zhí)行下面的流程,具體流程信息見下圖。

image

示例如下。

Type: StateMachine
Name: myWorkFlow
SpecVersion: v1
StartAt: InvokeFunction
States:
  - Type: Task
    Name: 調用函數(shù)示例
    Action: FC:InvokeFunction
    TaskMode: WaitForCustomCallback
    Parameters:
      resourceArn: acs:fc:{regionId}:{accountId}:functions/dataji/LATEST
      invocationType: Async
      body:
         payload.$: $Input
         taskToken.$: $Context.Current.TaskToken
    End: true

使用WaitForCustomCallback任務模式時,可以使用表達式$Context.Current.TaskToken在狀態(tài)定義的Parameters字段中訪問任務令牌。初始$Context指定訪問上下文對象的路徑,并在正在運行的執(zhí)行中獲取當前任務的任務令牌。

完成后,外部服務會調用ReportTaskSucceeded - 匯報指定的任務執(zhí)行成功ReportTaskFailed - 匯報指定的任務執(zhí)行失敗發(fā)送Token及任務執(zhí)行狀態(tài),工作流程才會繼續(xù)進入下一個狀態(tài)。

云工作流與自建服務集成

下圖展示了使用輕量消息隊列(原 MNS)服務結合回調API,實現(xiàn)工作流程與自建服務集成,拓寬云工作流的適用場景, 輕量消息隊列(原 MNS)可以是任何中間存儲服務。

image