全部產品
Search
文件中心

:上下文

更新時間:Jul 06, 2024

本文介紹在Function Compute中使用PHP運行時開發代碼時,所涉及的Context(上下文)的相關概念。

什麼是上下文

Function Compute運行您的函數時,會將內容物件傳遞到執行方法中。該對象包含有關調用、服務、函數、鏈路追蹤和執行環境等資訊。

事件請求處理常式(Event Handler)和HTTP請求處理常式(HTTP Handler)都支援內容物件作為傳入參數,且格式和內容相同。在PHP運行時中,$context參數的資料類型是數組Array類型,定義如下所示。

[
  'requestId' => 'b1c5100f-819d-c421-3a5e-7782a27d8a33',
  'credentials' => [
    'accessKeyId' => 'STS.access_key_id',
    'accessKeySecret' => 'access_key_secret',
    'securityToken' => 'security_token',
  ],
  'function' => [
    'name' => 'my-func',
    'handler' => 'index.handler',
    'memory' => 128,
    'timeout' => 10,
    'initializer' => 'index.initializer',
    'initializationTimeout' => 10,
  ],
  'service' =>[
     'name' => 'my-service',
     'logProject' => 'my-log-project',
     'logStore' => 'my-log-store',
     'qualifier' => 'qualifier',
     'versionId' => '1'
  ],
  'region' => 'cn-shanghai',
  'accountId' => '123456',
  'tracing': {
    'openTracingSpanContext': 'xxxxxxxxxxxx',
    'jaegerEndpoint': 'xxxxxxxx',
    'openTracingSpanBaggages': []
  }
]
$context中包含了以下資訊。
欄位類型說明
requestIdString

本次調用請求的唯一ID。您可以記錄該ID,當函數調用出現問題時方便查詢。

credentialsArray類型,包含以下欄位:
  • accessKeyId
  • accessKeySecret
  • securityToken

Function Compute服務通過扮演服務角色而擷取的一組臨時密鑰,其有效時間是36小時。您可以在代碼中使用Credentials去訪問相應的服務例如OSS,這就避免了您把自己的AccessKey資訊編碼在函數代碼裡。詳細資料,請參見授予Function Compute訪問其他雲端服務的許可權

functionArray類型,包含以下欄位:
  • name
  • handler
  • memory
  • timeout
  • initializer
  • initializationTimeout

當前調用的函數的一些基本資料,例如函數名、函數入口、函數記憶體和逾時時間。

serviceArray類型,包含以下欄位:
  • name
  • logProject
  • logStore
  • qualifier
  • versionId

當前調用的函數所在的服務資訊,包含服務名稱、接入的Log ServiceSLS的Project和Logstore資訊,以及服務的版本和別名資訊。其中qualifier表示調用函數時指定的服務版本或別名,versionId表示實際調用的服務版本。

regionString

當前調用的函數所在地區ID,例如在華東2(上海)地區調用,則地區ID為cn-shanghai。詳細資料,請參見服務接入地址

accountIdString

函數所屬的阿里雲帳號ID(主帳號ID)。

tracingArray類型,包含以下欄位:
  • openTracingSpanContext
  • jaegerEndpoint
  • openTracingSpanBaggages

鏈路追蹤相關參數。具體資訊,請參考鏈路追蹤簡介