

# 使用 Lambda 上下文对象检索 TypeScript 函数信息
<a name="typescript-context"></a>

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

要启用上下文对象的类型检查，必须添加 [@types/aws-lambda](https://www.npmjs.com/package/@types/aws-lambda) 程序包作为开发依赖项并导入 `Context` 类型。有关更多信息，请参阅 [Lambda 的类型定义](lambda-typescript.md#typescript-type-definitions)。

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

**上下文属性**
+ `functionName` – Lambda 函数的名称。
+ `functionVersion` – 函数的[版本](configuration-versions.md)
+ `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 及更早版本运行时系统的基于回调的函数处理程序。

**Example index.ts 文件**  
以下示例函数记录了上下文信息并返回了日志的位置。  
在 Lambda 函数中使用此代码之前，必须添加 [@types/aws-lambda](https://www.npmjs.com/package/@types/aws-lambda) 程序包作为开发依赖项。此程序包包含 Lambda 的类型定义。有关更多信息，请参阅 [Lambda 的类型定义](lambda-typescript.md#typescript-type-definitions)。

```
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;
};
```