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

異步任務(wù)

當您對函數(shù)發(fā)起異步調(diào)用時,如果需要追蹤并保存異步調(diào)用各個階段的狀態(tài),實現(xiàn)更豐富的任務(wù)控制和可觀測能力,可以選擇開啟任務(wù)模式處理異步請求。本文介紹異步任務(wù)的背景信息、使用限制和常用功能。

背景信息

開啟異步任務(wù)后,您可以實現(xiàn)以下功能:

  • 每次函數(shù)調(diào)用將詳細記錄調(diào)用過程中的狀態(tài)轉(zhuǎn)換信息,例如排隊等待處理中(Enqueued)、調(diào)用執(zhí)行成功(Succeeded)和調(diào)用執(zhí)行失敗(Failed)等。

  • 擁有函數(shù)請求生命周期管理能力,可以主動終止執(zhí)行中的異步任務(wù)。

異步任務(wù)會保存狀態(tài)信息,因此,函數(shù)的調(diào)用和執(zhí)行會有一定的額外延遲,該延遲不會產(chǎn)生額外的費用。關(guān)于函數(shù)計算計費的詳細信息,請參見計費概述

使用限制

  • 場景限制

    異步任務(wù)雖然功能更豐富,但相應(yīng)的系統(tǒng)開銷更大。以下場景建議您關(guān)閉任務(wù)模式:

    • 您對請求處理鏈路延時非常敏感,需要平均延時在百毫秒以下。

    • 您需要每秒數(shù)千甚至更高的速率發(fā)起異步調(diào)用。

  • 地域限制

    異步任務(wù)支持華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北3(張家口)、華南1(深圳)、西南1(成都)、中國香港、新加坡、英國(倫敦)、美國(硅谷)、美國(弗吉尼亞)、德國(法蘭克福)、馬來西亞(吉隆坡)、印度尼西亞(雅加達)、泰國(曼谷)、日本(東京)和韓國(首爾)地域。

  • 時效限制

    僅支持查詢7天內(nèi)的任務(wù)狀態(tài)信息。

異步任務(wù)與Jobs功能對比

如果您需要執(zhí)行異步任務(wù),您可以使用函數(shù)計算異步任務(wù)功能,也可以使用Kubernetes的Jobs功能來實現(xiàn)。函數(shù)計算異步任務(wù)提供開箱即用的更高效、更可控并且更易于觀測的異步任務(wù)執(zhí)行平臺。以下是詳細功能對比。

對比項

函數(shù)計算異步任務(wù)

Kubernetes的Jobs功能

適用場景

適用于任務(wù)執(zhí)行時長數(shù)十毫秒的實時任務(wù)和任務(wù)執(zhí)行時長數(shù)十小時的離線任務(wù)。

適用于任務(wù)提交速度要求不高,任務(wù)負載比較固定,任務(wù)實時性要求不高的離線任務(wù)。

任務(wù)可觀測能力

支持。提供日志、任務(wù)排隊數(shù)等指標和任務(wù)鏈路耗時、任務(wù)狀態(tài)查詢等豐富的可觀測能力。

需自行整合開源軟件來實現(xiàn)。

任務(wù)實例自動擴縮容

支持。根據(jù)任務(wù)排隊數(shù)和實例資源使用率自動擴縮容。

需通過任務(wù)隊列自行實現(xiàn)擴縮容和實例負載均衡,復(fù)雜度較高。

任務(wù)實例伸縮速度

毫秒級。

分鐘級。

任務(wù)實例資源利用率

用戶只需要選擇合適的實例規(guī)格,實例自動伸縮,按實際處理任務(wù)的時長計量,資源利用率高。

需在Jobs提交時確定實例的規(guī)格和數(shù)目。實例難以自動伸縮和負載均衡,資源利用率低。

任務(wù)提交速度

單個用戶支持每秒提交數(shù)萬條任務(wù)。

整個集群每秒最多啟動數(shù)百條Jobs。

任務(wù)定時或延時提交

支持。

支持任務(wù)定時提交,不支持任務(wù)延時提交。

任務(wù)去重

支持。

不支持。

終止指定任務(wù)

支持。

有限支持。通過終止任務(wù)實例間接實現(xiàn)。

任務(wù)流控

支持。可在用戶或任務(wù)處理函數(shù)等不同粒度進行流控。

不支持。

任務(wù)結(jié)果自動回調(diào)

支持。

不支持。

開發(fā)運維成本

只需要實現(xiàn)任務(wù)的處理邏輯。

需維護K8s集群。

任務(wù)管理

異步任務(wù)的狀態(tài)

針對每一次任務(wù)調(diào)用,函數(shù)計算均會記錄任務(wù)的狀態(tài)變更過程,并提供實時的狀態(tài)查詢能力。您可以通過SDK或函數(shù)計算控制臺查看任務(wù)的具體狀態(tài)。目前任務(wù)有如下幾種狀態(tài):

執(zhí)行狀態(tài)

說明

已入隊

異步消息已入隊,等待處理。

已處理

異步消息已出隊,等待觸發(fā)。

執(zhí)行中

調(diào)用執(zhí)行中,您的實例已經(jīng)開始運行任務(wù)代碼。

執(zhí)行成功

調(diào)用執(zhí)行成功。

執(zhí)行失敗

調(diào)用執(zhí)行失敗。

已停止

您已手動停止該次任務(wù)調(diào)用。任務(wù)已成功終止。

停止中

您手動停止了該次任務(wù),任務(wù)嘗試停止中。

已過期

您給異步消息配置了存活有效期,該消息因過期已被丟棄(未觸發(fā))。

無效

您的執(zhí)行因函數(shù)或服務(wù)被刪除等原因處于無效狀態(tài)(未觸發(fā))。

重試中

異步調(diào)用因執(zhí)行錯誤而進行重試中。當系統(tǒng)準備好重試后,您的任務(wù)將會再次變?yōu)?span data-tag="parmname" id="parmname-teb-zue-kpy" class="parmname">Running狀態(tài)。

您可以調(diào)用GetAsyncTask - 獲取異步任務(wù)接口獲取某次任務(wù)執(zhí)行的詳細信息,也可以調(diào)用ListAsyncTasks - 獲取異步任務(wù)列表接口過濾指定狀態(tài)的任務(wù)。

管理任務(wù)

通過控制臺管理任務(wù)

創(chuàng)建函數(shù)的同時開啟異步任務(wù)

  1. 登錄函數(shù)計算控制臺,在左側(cè)導(dǎo)航欄,單擊函數(shù)

  2. 在頂部菜單欄,選擇地域,然后在函數(shù)頁面,單擊創(chuàng)建函數(shù)

  3. 創(chuàng)建函數(shù)頁面,選擇任務(wù)函數(shù),根據(jù)實際需求設(shè)置配置項,然后單擊創(chuàng)建

    關(guān)于各配置項的說明,請參見創(chuàng)建任務(wù)函數(shù)

函數(shù)創(chuàng)建成功后,在函數(shù)詳情頁的配置頁簽的異步配置區(qū)域,您可以看到任務(wù)模式已經(jīng)默認被開啟。

為已有函數(shù)開啟異步任務(wù)模式

需要先創(chuàng)建函數(shù),具體操作,請參見創(chuàng)建函數(shù)

  1. 登錄函數(shù)計算控制臺,在左側(cè)導(dǎo)航欄,單擊函數(shù)

  2. 在頂部菜單欄,選擇地域,然后在函數(shù)頁面,單擊目標函數(shù)。

  3. 在函數(shù)詳情頁面,選擇配置頁簽,然后在左側(cè)選擇異步配置

  4. 在異步配置頁面的異步配置區(qū)域,單擊編輯,然后在異步配置面板,任務(wù)模式選擇開啟后單擊部署

啟動或停止任務(wù)

  1. 登錄函數(shù)計算控制臺,在左側(cè)導(dǎo)航欄,單擊函數(shù)

  2. 在頂部菜單欄,選擇地域,然后在函數(shù)頁面,單擊目標函數(shù)。

  3. 在函數(shù)詳情頁面,選擇任務(wù)頁簽,單擊提交任務(wù),在彈出的對話框,選擇任務(wù)ID生成方式和任務(wù)執(zhí)行時間,然后單擊確定

    您也可以單擊提交任務(wù)右側(cè)的down圖標,從下拉列表中選擇配置測試參數(shù),事件函數(shù)將以event的形式,HTTP函數(shù)將以HTTP參數(shù)的形式輸入?yún)?shù)傳遞給函數(shù),模擬提交任務(wù)。

    您可以在下方任務(wù)列表查看任務(wù)狀態(tài)、任務(wù)詳情以及請求ID、實例ID或者登錄實例等。

    image

調(diào)用API(SDK)管理任務(wù)

配置任務(wù)模式

調(diào)用PutAsyncInvokeConfig - 設(shè)置函數(shù)異步配置接口,配置異步調(diào)用模式為任務(wù)模式。將asyncTask配置為如下內(nèi)容,完成該配置后,該函數(shù)的所有異步調(diào)用將變?yōu)槿蝿?wù)模式。

{
  "asyncTask": true
}
說明

您配置異步調(diào)用模式為任務(wù)模式后,仍然可以使用同步方式調(diào)用函數(shù),但異步任務(wù)模式只針對異步調(diào)用生效。

通過異步調(diào)用觸發(fā)函數(shù)

您可以通過調(diào)用InvokeFunction - 調(diào)用函數(shù)接口,x-fc-invocation-type參數(shù)選擇Async,觸發(fā)一次異步調(diào)用來啟動任務(wù)模式。您可以在調(diào)用時添加HTTP請求頭x-fc-async-task-id來為本次調(diào)用設(shè)置任務(wù)ID,更多信息,請參見任務(wù)防重復(fù)提交

查看任務(wù)

您提交任務(wù)后,如需查詢某次執(zhí)行的狀態(tài)或執(zhí)行記錄等信息,您可以調(diào)用GetAsyncTask - 獲取異步任務(wù)接口進行查詢。

如果您需要根據(jù)關(guān)鍵字或條件查詢符合條件的任務(wù)執(zhí)行列表,您可以調(diào)用ListAsyncTasks - 獲取異步任務(wù)列表接口來實現(xiàn)。

停止任務(wù)

您提交任務(wù)后,可根據(jù)需要停止任務(wù)。您可以調(diào)用StopAsyncTask - 停止異步任務(wù)接口執(zhí)行停止任務(wù)操作。停止任務(wù)時需要提供TaskID,此ID為您提交任務(wù)時設(shè)置的TaskID,也可以是調(diào)用ListAsyncTasks - 獲取異步任務(wù)列表接口查詢運行中任務(wù)時,獲取的ID。

事件觸發(fā)

您可以通過創(chuàng)建支持異步調(diào)用的觸發(fā)器來觸發(fā)異步任務(wù),支持異步調(diào)用的觸發(fā)器列表如下。

任務(wù)防重復(fù)提交

為了避免任務(wù)重復(fù)執(zhí)行,函數(shù)計算支持為每次提交的任務(wù)設(shè)定全局唯一的ID,當異步接口提交失敗時,例如異步調(diào)用提交任務(wù)接口超時,您可以通過提交相同ID的任務(wù)進行重試。關(guān)于重試方式的介紹,請參見重試策略

函數(shù)計算提供TaskID這一任務(wù)概念,該ID全局唯一。建議您在每次提交任務(wù)時指定該ID,并在出現(xiàn)超時等情況下進行重試。函數(shù)計算會對您重復(fù)提交的任務(wù)進行校驗,當有相同ID進入系統(tǒng)時,該次請求將認為是重復(fù)提交而被拒絕,并返回錯誤409

說明

函數(shù)計算還提供了RequestID這一概念,如果您設(shè)置了RequestID但未設(shè)置TaskID,系統(tǒng)將自動設(shè)置TaskIDRequestID。使用異步任務(wù)時,建議您設(shè)置TaskID,無需設(shè)置RequestID

設(shè)置TaskID

您可以在函數(shù)計算控制臺、使用Serverless Devs或調(diào)用API提交一次任務(wù)執(zhí)行。如果需要設(shè)置TaskID,請在觸發(fā)函數(shù)執(zhí)行時設(shè)置參數(shù)x-fc-async-task-id

觸發(fā)任務(wù)執(zhí)行時設(shè)置TaskID的示例代碼請參見示例代碼

任務(wù)監(jiān)控

您可以使用函數(shù)計算提供的任務(wù)監(jiān)控指標實時獲取異步任務(wù)的狀態(tài)、及時發(fā)現(xiàn)錯誤和超時等異常信息。

前提條件

已創(chuàng)建函數(shù),詳情請參見創(chuàng)建函數(shù)

操作步驟

  1. 登錄函數(shù)計算控制臺,在左側(cè)導(dǎo)航欄,單擊函數(shù)

  2. 在頂部菜單欄,選擇地域,然后在函數(shù)頁面,單擊目標函數(shù)。

    在目標函數(shù)的詳情頁面,選擇監(jiān)控頁簽,查看異步調(diào)用相關(guān)指標和異步任務(wù)實例級別的資源使用情況。關(guān)于監(jiān)控指標的詳細介紹,請參見監(jiān)控指標

    • 單擊函數(shù)指標頁簽,查看異步調(diào)用相關(guān)指標信息,如下圖所示。

      image

    • 單擊實例指標頁簽,查看異步任務(wù)實例級別的資源使用情況,如下圖所示。

      說明

      開通實例級別指標前,需先開通日志功能。具體操作,請參見配置日志

      image

  3. 為指標設(shè)定告警規(guī)則。

    如果您想監(jiān)控某個指標,如內(nèi)存使用情況、vCPU使用情況等,可以單擊指標右上角的image,跳轉(zhuǎn)到創(chuàng)建指標告警規(guī)則面板,根據(jù)界面提示設(shè)置告警條件和閾值,然后單擊確定

    關(guān)于告警規(guī)則的設(shè)置,請參見下圖。下圖中參數(shù)設(shè)置值表示當函數(shù)異步調(diào)用積壓數(shù)大于等于5條時,將全天候通過釘釘、郵件、電話和Webhook的方式上報中級告警到聯(lián)系人。

    image

任務(wù)編排

結(jié)合云工作流,函數(shù)的異步調(diào)用可以應(yīng)用于大規(guī)模復(fù)雜場景的任務(wù)流程。您可以使用順序、分支和并行等方式來編排函數(shù)計算異步任務(wù),云工作流會按照設(shè)定好的步驟可靠地協(xié)調(diào)任務(wù)執(zhí)行,跟蹤每個任務(wù)的狀態(tài)轉(zhuǎn)換,并在必要時執(zhí)行您定義的重試邏輯,以確保任務(wù)順利完成。更多信息,請參見集成函數(shù)計算

前提條件

操作步驟

  1. 登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。

  2. 在左側(cè)導(dǎo)航欄,選擇工作流列表,然后在工作流列表頁面,單擊創(chuàng)建工作流

  3. 創(chuàng)建工作流對話框,選擇創(chuàng)建工作流的方式,然后選擇要創(chuàng)建的工作流的模式。

    云工作流支持創(chuàng)建標準和快速兩種模式的工作流,關(guān)于兩種模式的更多信息,請參見標準工作流和快速工作流。更多操作,請參見基于空白畫布創(chuàng)建工作流

  4. 編輯上一步創(chuàng)建的工作流。

    1. 編輯流程。

      您可以選擇CloudFlow Studio編輯YAML編輯兩種方式,本文以YAML編輯方式為例進行介紹。

      在流程詳情頁面右上角,單擊YAML,在左側(cè)代碼編輯框內(nèi)輸入流程定義語言,然后單擊保存

      示例如下。

      Type: StateMachine
      Name: MyFlow
      SpecVersion: v1
      StartAt: InvokeFunction
      States:
        - Type: Task
          Name: InvokeFunction
          Action: FC:InvokeFunction
          TaskMode: RequestComplete
          Parameters:
            invocationType: Async
            resourceArn: acs:fc:us-west-1:103435468****:functions/func-i1****/LATEST
          End: true
    2. 配置流程角色。

      在流程詳情頁面右上角,單擊工作流配置,選擇執(zhí)行角色,然后單擊保存

      說明

      請確保為流程配置的角色已被授予AliyunFCInvocationAccess權(quán)限策略。

  5. 在流程詳情頁面,您可以單擊右上角的執(zhí)行觸發(fā)工作流任務(wù)進行測試。