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

集成Serverless工作流

集成Serverless 工作流功能讓您可以方便地在一個流程中執行另一個流程,本文介紹了集成Serverless 工作流的使用場景、集成模式、對象說明和子流程的輸入輸出規則。

使用場景

在以下場景中可以考慮使用Serverless 工作流集成:

  • 降低流程的復雜度,將一個流程分解為多個流程。
  • 讓流程更容易被復用。您可以將通用的一些步驟放在一個流程中,被其他多個流程復用。
  • 突破當前單流程的某些限制,例如當前單個流程最多event個數限制(默認5000)和最長執行時間限制(最長1年)。
  • 對流程中的一些控制步驟做錯誤處理。例如可以將并行步驟做成子流程,在主流程中對子流程執行錯誤做錯誤處理。

集成模式

Serverless 工作流集成支持三種模式,分別是請求響應(requestResponse)模式、同步(sync)模式和等待回調(waitForCallback)模式。

  • 請求響應(requestResponse)模式
    該模式下,主流程將在啟動子流程成功后立刻開始執行下一步驟。流程定義如下。
    version: v1
    type: flow
    steps:
      - type: task
        name: fnfInvoke
        resourceArn: acs:fnf:::flow/subflow_demo_child
        pattern: requestResponse # 可省略,默認。
        inputMappings: # 如無inputMappings,將按默認映射規則將主流程參數作為子流程的Input。
          - target: childName # 用于在service中設定發起的子流程的執行名稱。
            source: $input.childName
        serviceParams:  # 集成Serverless工作流的服務參數,該參數可省略。如省略本參數,我們將使用隨機字符串作為本次執行的名稱,使用InputMappings對應的參數作為子流程的輸入。
          Input: $  # 用映射后的input作為啟動子流程的輸入參數。
          ExecutionName: $.childName # 如果在serviceParams中使用變量, 請確保該變量存在于inputMappings中。
  • 同步(sync)模式

    該模式下,主流程將啟動一個子流程并等待子流程執行完成后再進入下一步驟。流程定義如下。

    version: v1
    type: flow
    steps:
      - type: parallel
        name: parallelTask
        branches:
          - steps:
            # 本步驟展示使用sync模式集成Serverless工作流,使用inputMappings作為子流程的輸入,并通過主流程的輸入來動態指定子流程的執行名稱。
            - type: task
              name: fnfSync
              resourceArn: acs:fnf:::flow/subflow_demo_child
              pattern: sync
              inputMappings: # 如無inputMappings,將按默認映射規則將主流程參數作為子流程的Input。
                - target: childSyncName # 發起的子流程的執行名稱。如您需指定子流程的執行名稱,請按本示例所示對期望的執行名稱進行inputMapping,并在serviceParams中使用。
                  source: $input.childSyncName。
              serviceParams:  # 集成Serverless工作流的服務參數。
                Input: $  # 用映射后的inputMappings作為啟動子流程的輸入參數. 除非您很明確使用其他方式指定Input時的行為及語法,否則建議您使用我們提供的此種方式。
                ExecutionName: $.childSyncName # 如果在serviceParams中使用變量, 請確保該變量存在于inputMappings中。
  • 等待回調(waitForCallback)模式

    該模式下,主流程將啟動一個子流程并進入暫停狀態,直到收到回調通知。流程定義如下。

    version: v1
    type: flow
    steps:
      - steps:
        # 本步驟展示使用waitForCallback模式集成Serverless工作流,使用inputMappings作為子流程的輸入,并通過主流程的輸入來動態指定子流程的執行名稱。
        - type: task
          name: fnfWaitForCallback
          resourceArn: acs:fnf:::flow/subflow_demo_child
          pattern: waitForCallback
          inputMappings: # 如無inputMappings,將按默認映射規則將主流程參數作為子流程的Input。
            - target: task_token # 為確保子流程中可以使用回調,請自定義名稱對task_token進行顯示映射。
              source: $context.task.token  # 從context對象中獲取表示該任務的令牌(task token)。
            - target: childCallbackName
              source: $input.childCallbackName
          serviceParams:  # 集成Serverless工作流的服務參數。
            Input: $  # 用映射后的inputMappings作為啟動子流程的輸入參數。
            ExecutionName: $.childCallbackName # 如果在serviceParams中使用變量, 請確保該變量存在于inputMappings中。

上下文對象說明

在子流程集成模式中,您可以將$context.execution.name$context.flow.name變量傳遞給子流程,用于在子流程中識別啟動它的父流程。在waitForCallback模式下,$context.task.token將被使用,用來向子流程傳遞父流程的運行標識符來實現回調。

子流程的輸入輸出規則

  • 請求響應模式

    子流程的輸入來源于任務的輸入,您可以在子流程中通過$Input來獲取該輸入。

    請求響應模式子流程的啟動信息(StartExecution API的響應)將會被作為輸出,而子流程自身輸出將被主流程忽略。在啟動子流程后,我們默認提供了$local.ExecutionName$local.FlowName$local.RequestId三個子流程啟動信息。如果您需要對其進行額外處理,可在主流程對應步驟中使用outputMappings進行映射。

       - type: task
         pattern: requestResponse
         ...
         outputMappings: # requestResponse模式可獲取參數:$local.ExecutionName, $local.FlowName, $local.RequestId。
           - target: subflow_children_request_id
             source: $local.RequestId # 發起子流程的requestID。
           - target: subflow_children_exec_name
             source: $local.ExecutionName # 發起的子流程的執行名稱。
           - target: subflow_children_flow_name
             source: $local.FlowName # 發起的子流程的流程名稱。
  • 同步模式

    同步模式中,子流程的輸入來源于任務的輸入,您可以在子流程中通過$Input來獲取該輸入。

    子流程的輸出(DescribeExecution API響應中的Output)將被傳遞回主流程作為主流程該步驟的輸出,您可以在主流程的后續步驟中使用該輸出。如果您需要對子流程的輸出進行額外處理,可以使用outputMappings對輸出進行映射。

  • 等待回調模式

    等待回調模式中,子流程的輸入來源于任務的輸入,您可以在子流程中通過$Input來獲取該輸入。

    回調的輸出數據將作為主流程該步驟的輸出。在ReportTaskSucceeded接口中,傳入的Output參數對應的值為主流程該步驟的輸出。在ReportTaskFailed接口中,傳入的ErrorCause參數及對應的值將作為主流程該步驟的輸出。如果您需要對子流程的輸出進行額外處理,可以使用outputMappings對輸出進行映射。