使用 Lambda 上下文对象检索 TypeScript 函数信息
当 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
– 设置为 false 可在回调运行时立即发送响应,而不是等待 Node.js 事件循环成空。如果为 false,则任何未完成的事件将在下次调用期间继续运行。
您可以使用 @types/aws-lambda
例 index.ts 文件
以下示例函数记录了上下文信息并返回了日志的位置。
注意
在 Lambda 函数中使用此代码之前,必须添加 @types/aws-lambda@types/aws-lambda
时,import
语句 (import ... from 'aws-lambda'
) 会导入类型定义。它不导入 aws-lambda
NPM 程序包,这是一个无关的第三方工具。有关更多信息,请参阅 DefinitelyTyped GitHub 存储库中的 aws-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; };