

# 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)」を参照してください。

**context メソッド**
+ `getRemainingTimeInMillis()` — 実行がタイムアウトするまでの残り時間をミリ秒で返します。

**context プロパティ**
+ `functionName` － Lambda 関数の名前。
+ `functionVersion` － 関数の[バージョン](configuration-versions.md)。
+ `invokedFunctionArn` － 関数を呼び出すために使用される Amazon リソースネーム (ARN)。呼び出し元でバージョン番号またはエイリアスが指定されているかどうかを示します。
+ `memoryLimitInMB` － 関数に割り当てられたメモリの量。
+ `awsRequestId` － 呼び出しリクエストの ID。
+ `logGroupName` － 関数のロググループ。
+ `logStreamName` — 関数インスタンスのログストリーム。
+ `identity` — (モバイルアプリケーション) リクエストを認可した Amazon Cognito ID に関する情報。
  + `cognitoIdentityId` - 認証された Amazon Cognito ID
  + `cognitoIdentityPoolId` — 呼び出しを承認した Amazon Cognito ID プール。
+ `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;
};
```