使用 Lambda 上下文对象检索 TypeScript 函数信息 - AWS Lambda

使用 Lambda 上下文对象检索 TypeScript 函数信息

当 Lambda 运行您的函数时,它会将上下文对象传递到处理程序。此对象提供的方法和属性包含有关调用、函数和执行环境的信息。

要启用上下文对象的类型检查,必须添加 @types/aws-lambda 程序包作为开发依赖项并导入 Context 类型。有关更多信息,请参阅 Lambda 的类型定义

上下文方法
  • getRemainingTimeInMillis() – 返回执行超时前剩余的毫秒数。

上下文属性
  • functionName – Lambda 函数的名称。

  • functionVersion – 函数的版本

  • invokedFunctionArn – 用于调用函数的 Amazon Resource Name (ARN)。表明调用者是否指定了版本号或别名。

  • memoryLimitInMB – 为函数分配的内存量。

  • awsRequestId – 调用请求的标识符。

  • logGroupName – 函数的日志组。

  • logStreamName – 函数实例的日志流。

  • identity –(移动应用程序)有关授权请求的 Amazon Cognito 身份的信息。

    • cognitoIdentityId – 经过身份验证的 Amazon Cognito 身份。

    • cognitoIdentityPoolId – 授权调用的 Amazon Cognito 身份池。

  • clientContext –(移动应用程序)客户端应用程序提供给 Lambda 的客户端上下文。

    • client.installation_id

    • client.app_title

    • client.app_version_name

    • client.app_version_code

    • client.app_package_name

    • env.platform_version

    • env.platform

    • env.make

    • env.model

    • env.locale

    • Custom – 由客户应用程序设置的自定义值。

  • callbackWaitsForEmptyEventLoop:默认情况下(true),当使用基于回调的函数处理程序时,Lambda 会在回调函数执行完毕后,等待事件循环为空,然后再结束函数调用。设置为 false 将发送响应并立即结束调用,而无需等待回调函数运行完毕后才让事件循环清空。未完成的事件将在下次调用期间继续运行。请注意,Lambda 仅支持针对 Node.js 22 及更早版本运行时系统的基于回调的函数处理程序。

例 index.ts 文件

以下示例函数记录了上下文信息并返回了日志的位置。

注意

在 Lambda 函数中使用此代码之前,必须添加 @types/aws-lambda 程序包作为开发依赖项。此程序包包含 Lambda 的类型定义。有关更多信息,请参阅 Lambda 的类型定义

import { Context } from 'aws-lambda'; export const lambdaHandler = async (event: string, context: Context): Promise<string> => { console.log('Remaining time: ', context.getRemainingTimeInMillis()); console.log('Function name: ', context.functionName); return context.logStreamName; };