全部產品
Search
文件中心

Function Compute:上下文及日誌格式

更新時間:Nov 02, 2024

在Web函數中,您想擷取上下文或者查看執行日誌,可以參考Custom Runtime的公用要求標頭以及日誌格式,根據這些資訊打造屬於您的自訂運行環境。

Function Compute公用要求標頭

Custom Runtime從Function Compute中接收到的公用要求標頭如下表所示。如果您需要訪問阿里雲其他服務,您可能需要用到臨時AccessKey的Headers。如果您需要遷移已有的應用,可忽略下文的內容。

說明
  • 事件函數和HTTP函數均包含Common Headers。

  • 公用要求標頭是Function Compute自動產生的,主要包含許可權資訊和函數的基本資料等。

Header

描述

x-fc-request-id

Request ID。

x-fc-access-key-id

臨時AccessKey ID。

x-fc-access-key-secret

臨時AccessKey Secret。

x-fc-security-token

臨時Security Token。

x-fc-function-handler

函數的Handler,如果Runtime本身就是函數(例如Custom Runtime或者Custom Container函數),則該值無意義,設定為一個隨機字串即可。

x-fc-function-memory

函數最大能使用的記憶體。

x-fc-region

函數所在的地區。

x-fc-account-id

函數所有者的UID。

x-fc-qualifier

函數調用時指定的服務版本或別名。更多資訊,請參見使用版本和別名實現灰階發布

x-fc-version-id

函數調用時指定的服務版本。

x-fc-function-name

函數名稱。

x-fc-service-logproject

函數所在服務配置的記錄項目。

x-fc-service-logstore

函數所在服務配置的日誌庫。

x-fc-control-path

函數的請求類型。

對於Custom Runtime或Custom Container,您可以根據Headers中的參數來判斷函數調用是HTTP函數調用還是事件函數調用。參數資訊如下:

  • /invoke:該請求為事件函數調用。/invoke表示是Invoke函數調用請求。

  • /http-invoke:該請求為HTTP函數調用。/http-invoke表示是HTTP invoke函數調用請求,Function Compute會將您的請求(包括Path、Body和Headers)加上Common Headers後轉寄給Custom Runtime或Custom Container,Custom Runtime或Custom Container返回的回應標頭和響應體則會被返回給用戶端。

  • /initialize/initialize表示第一次建立執行環境時,Function Compute自動發起的Initialize函數調用請求。在容器的生命週期內,有且僅成功調用一次,類似於Class建構函式。

重要

出於安全考慮,Custom Runtime(Debian11)中已不再支援x-fc-security-token,如您仍需要臨時許可權資訊,可通過配置環境變數中的ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRETALIBABA_CLOUD_SECURITY_TOKEN擷取。

函數日誌格式

建議您在建立服務時啟用日誌功能,Custom Runtime中所有列印到標準輸出(Stdout)的日誌會自動收集到您指定的Log Service中。具體步驟,請參見配置日誌

Function Compute在其他運行環境,即除Custom Runtime以外的運行環境中調用函數時,如果要求標頭中包含x-fc-log-type" = "Tail",那麼返回的回應標頭包含x-fc-log-result的內容就是函數執行時列印的日誌,日誌上限為4 KB。您可以在Function Compute控制台函數執行結果中查看該日誌。

說明

不同語言下指定記錄層級的介面不同,請您根據實際運行環境設定。更多資訊,請參見基礎資訊

相關文檔

  • 使用Custom Runtime編寫函數的運行環境,請參見環境說明

  • 冷啟動Custom Runtime的基本原理及HTTP Server配置要求,請參見基本原理

  • Custom Runtime中函數調用的方式、使用限制及程式碼範例,請參見Web函數

  • Custom Runtime實現函數執行個體生命週期回調的方法,請參見函數執行個體生命週期回調