

# Lambda 非同期呼び出しのエラー処理の設定
<a name="invocation-async-configuring"></a>

次の設定を使用して、Lambda で非同期の関数呼び出しのエラーと再試行をどのように処理するかを設定します。
+ [MaximumEventAgeInSeconds](https://docs.aws.amazon.com/lambda/latest/api/API_PutFunctionEventInvokeConfig.html#lambda-PutFunctionEventInvokeConfig-request-MaximumEventAgeInSeconds): Lambda が非同期イベントキューにイベントを保持する最大時間を秒単位で設定します。この時間を過ぎると、イベントは破棄されます。
+ [MaximumRetryAttempts](https://docs.aws.amazon.com/lambda/latest/api/API_PutFunctionEventInvokeConfig.html#lambda-PutFunctionEventInvokeConfig-request-MaximumRetryAttempts): 関数がエラーを返したときに Lambda がイベントを再試行する回数の上限を設定します。

Lambda コンソールまたは AWS CLI を使用して、関数、バージョン、またはエイリアスのエラー処理を設定します。

------
#### [ Console ]

**エラー処理を設定するには**

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

1. 関数を選択します。

1. [**設定**]、[**Asynchronous invocation (非同期呼び出し)**] の順に選択します。

1. [**Asynchronous invocation (非同期呼び出し)**] で、[**Edit (編集)**] を選択します。

1. 以下を設定します。
   + [**Maximum age of event**] (イベントの最大有効期間) － Lambda が非同期イベントキューにイベントを保持する最大時間 (最大 6 時間)。
   + [**Retry attempts**] (再試行) － 関数がエラーを返したときに Lambda が再試行する回数 (0 〜 2)。

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

------
#### [ AWS CLI ]

AWS CLI で非同期呼び出しを設定するには、[put-function-event-invoke-config](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/put-function-event-invoke-config.html) コマンドを使用します。以下の例では、最大イベント有効期間が 1 時間で再試行なしの関数を設定しています。

```
aws lambda put-function-event-invoke-config \ 
  --function-name error \
  --maximum-event-age-in-seconds 3600 \
  --maximum-retry-attempts 0
```

`put-function-event-invoke-config` コマンドは、関数、バージョン、またはエイリアスの既存の設定を上書きします。あるオプションだけを設定し、他のものはリセットしないようにするには、[update-function-event-invoke-config](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-event-invoke-config.html) コマンドを使用します。以下の例では、イベントを処理できない場合に、`destination` という名前の標準 SQS キューにレコードを送信するように Lambda を設定します。

```
aws lambda update-function-event-invoke-config \
  --function-name my-function \
  --destination-config '{"OnFailure":{"Destination": "arn:aws:sqs:us-east-1:123456789012:destination"}}'
```

------

以下の出力が表示されます。

```
{
    "LastModified": 1573686021.479,
    "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function:$LATEST",
    "MaximumRetryAttempts": 0,
    "MaximumEventAgeInSeconds": 3600,
    "DestinationConfig": {
        "OnSuccess": {},
        "OnFailure": {}
    }
}
```

呼び出しイベントが最大有効期間を超えるか、すべての再試行に失敗すると、Lambda はそのイベントを破棄します。破棄されたイベントのコピーを保持するには、失敗イベントの[送信先](invocation-async-retain-records.md#invocation-async-destinations)を設定します。