本文介绍在函数计算中使用Node.js运行时开发代码时,所涉及的Context(上下文)的相关概念。

什么是上下文

函数计算运行您的函数时,会将上下文对象传递到执行方法中。该对象包含有关调用、服务、函数、链路追踪和执行环境等信息。

事件请求处理程序(Event Handler)和HTTP请求处理程序(HTTP Handler)都支持上下文对象作为传入参数,且格式和内容相同。上下文对象主要提供了以下参数。
字段 类型 说明
requestId String

本次调用请求的唯一ID。您可以记录该ID,当函数调用出现问题时方便查询。

credentials Credentials结构,包含以下字段:
  • accessKeyId
  • accessKeySecret
  • securityToken

函数计算服务通过扮演服务角色而获取的一组临时密钥,其有效时间是5分钟。您可以在代码中使用Credentials去访问相应的服务例如OSS,这就避免了您把自己的AccessKey信息编码在函数代码里。详细信息,请参见通过RAM角色实现跨云账号授权

function FunctionMeta结构,包含以下字段:
  • name
  • handler
  • memory
  • timeout

当前调用的函数的一些基本信息,例如函数名、函数入口、函数内存和超时时间。

service ServiceMeta结构,包含以下字段:
  • name
  • logProject
  • logStore
  • qualifier
  • versionId

当前调用的函数所在的服务信息,包含服务名称、接入的日志服务SLS的Project和Logstore信息,以及服务的版本和别名信息。其中qualifier表示调用函数时指定的服务版本或别名,version_id表示实际调用的服务版本。

region String

当前调用的函数所在地域ID,例如在华东2(上海)地域调用,则地域ID为cn-shanghai。详细信息,请参见服务地址

accountId String

函数所属的阿里云账号ID(主账号ID)。

tracing Tracing结构,包含以下字段:
  • spanContext
  • jaegerEndpoint
  • spanBaggages
  • parseOpenTracingBaggages

链路追踪相关参数。具体信息,请参考链路追踪简介

logger 函数计算定义的ContextLog结构,包含以下字段:
  • debug
  • info
  • warn
  • error
  • log
日志对象,用于打印日志。会格式化输出日志,格式为日期 请求ID [级别] 日志内容,例如2022-04-01T10:04:19.024Z 19b394a3-4fff-480c-9b5c-cbdfd6952f4e [info] hello,fc