

# Lambda 関数のタイムアウトを設定する
<a name="configuration-timeout"></a>

Lambda は、コードを一定時間実行してからタイムアウトします。*タイムアウト*は、Lambda 関数が実行できる最大時間を秒数で表したものです。この設定のデフォルト値は 3 秒ですが、最大値の 900 秒 (15 分) まで 1 秒単位で調整できます。

このページでは、Lambda 関数のタイムアウト設定を更新する方法とタイミングについて説明します。

**Topics**
+ [Lambda 関数の適切なタイムアウト値を決定する](#configuration-timeout-use-cases)
+ [タイムアウトの設定 (コンソール)](#configuration-timeout-console)
+ [タイムアウトの設定 (AWS CLI）](#configuration-timeout-cli)
+ [タイムアウトの設定 (AWS SAM）](#configuration-timeout-sam)

## Lambda 関数の適切なタイムアウト値を決定する
<a name="configuration-timeout-use-cases"></a>

タイムアウト値が関数の平均期間に近い場合、関数が予期せずタイムアウトするリスクが高くなります。関数の期間は、データ転送と処理の量、および関数が相互作用するサービスのレイテンシーによって異なる場合があります。タイムアウトの一般的な原因には、次のようなものがあります。
+ Amazon Simple Storage Service (Amazon S3) からダウンロードを行う場合、通常よりもサイズが大きくなり、時間がかかります。
+ 関数が別のサービスにリクエストを行う場合、応答に時間がかかります。
+ 関数に使用されるパラメータでは、関数の計算が複雑になり、呼び出しに時間がかかります。

アプリケーションをテストする際は、テストがデータのサイズと量、および実際のパラメータ値を正確に反映していることを確認してください。テストでは、便宜上小さいサンプルがよく使用されますが、ワークロードで適度に予想される上限のデータセットを使用する必要があります。

## タイムアウトの設定 (コンソール)
<a name="configuration-timeout-console"></a>

Lambda コンソールで関数のタイムアウトを設定できます。

**関数のタイムアウトを変更する方法**

1. Lambda コンソールの [[関数ページ]](https://console.aws.amazon.com/lambda/home#/functions) を開きます。

1. 関数を選択します。

1. **[設定]** を選択してから、**[一般設定]** を選択します。  
![\[\]](http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images/configuration-tab.png)

1. **[全般設定]** で、**[編集]** を選択します。

1. **[タイムアウト]** に、1～900 秒 (15 分) の値を入力します。

1. **[保存]** を選択します。

## タイムアウトの設定 (AWS CLI）
<a name="configuration-timeout-cli"></a>

[update-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html) コマンドを使用して、タイムアウト値を秒単位で設定できます。次のコマンドの例では、関数のタイムアウトを 120 秒 (2 分) に増やします。

**Example**  

```
aws lambda update-function-configuration \
  --function-name my-function \
  --timeout 120
```

## タイムアウトの設定 (AWS SAM）
<a name="configuration-timeout-sam"></a>

[AWS Serverless Application Model](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/serverless-getting-started.html ) を使用して、関数のタイムアウト値を設定できます。`template.yaml` ファイルの [Timeout](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-timeout) プロパティを更新し、[sam deploy](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) を実行します。

**Example template.yaml**  

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An AWS Serverless Application Model template describing your function.
Resources:
  my-function:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: .
      Description: ''
      MemorySize: 128
      Timeout: 120
      # Other function properties...
```