全部產品
Search
文件中心

Function Compute:上下文及日誌格式

更新時間:Dec 12, 2024

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

Function Compute公用要求標頭

自訂運行時從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,如果運行時本身就是函數(例如自訂運行時或者自訂鏡像函數),則該值無意義,設定為一個隨機字串即可。

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

函數的請求類型。

對於自訂運行時或自訂鏡像,您可以根據Headers中的參數來判斷函數調用是HTTP函數調用還是事件函數調用。參數資訊如下:

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

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

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

重要

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

函數日誌格式

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

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

說明

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

相關文檔

  • 使用自訂運行時編寫函數的運行環境,請參見環境說明

  • 冷啟動自訂運行時的基本原理及HTTP Server配置要求,請參見基本原理

  • 自訂運行時中函數調用的方式、使用限制及程式碼範例,請參見Web函數

  • 自訂運行時實現函數執行個體生命週期回調的方法,請參見函數執行個體生命週期回調