

# 耐久関数のモニタリング
<a name="durable-monitoring"></a>

CloudWatch メトリクス、CloudWatch Logs、トレースを使用して、耐久関数をモニタリングできます。耐久関数は長期間実行でき、複数の関数呼び出しにまたがることができるため、それらをモニタリングするには、チェックポイント、状態遷移、リプレイ動作など、一意の実行パターンを理解する必要があります。

## CloudWatch メトリクス
<a name="durable-monitoring-metrics"></a>

Lambda は、追加料金なしで CloudWatch にメトリクスを自動的に発行します。耐久関数は、標準の Lambda メトリクスを超える追加のメトリクスを提供し、長時間におよぶワークフロー、状態管理、リソース使用率をモニタリングするのに役立ちます。

### 耐久性のある実行メトリクス
<a name="durable-monitoring-execution-metrics"></a>

Lambda は、耐久性のある実行に対して次のメトリクスを出力します。


| メトリクス | 説明 | 
| --- | --- | 
| ApproximateRunningDurableExecutions | RUNNING 状態における耐久性のある実行の数 | 
| ApproximateRunningDurableExecutionsUtilization | アカウントで実行中の最大耐久実行クォータに対する現在の使用率 | 
| DurableExecutionDuration | 耐久性のある実行が RUNNING 状態のままであるミリ秒単位の経過実測時間 | 
| DurableExecutionStarted | 開始された耐久性のある実行の数 | 
| DurableExecutionStopped | StopDurableExecution API を使用して停止した耐久性のある実行の数 | 
| DurableExecutionSucceeded | 正常に完了した耐久性のある実行の数 | 
| DurableExecutionFailed | 失敗で完了した耐久性のある実行の数 | 
| DurableExecutionTimedOut | 設定された実行タイムアウトを超えた耐久性のある実行の数 | 
| DurableExecutionOperations | 耐久性のある実行内で実行されたオペレーションの累積数 (最大: 3,000) | 
| DurableExecutionStorageWrittenBytes | 耐久性のある実行によって保持されるバイト単位のデータの累積量 (最大: 100 MB) | 

### CloudWatch メトリクス
<a name="durable-monitoring-standard-metrics"></a>

Lambda は、耐久関数の標準の呼び出し、パフォーマンス、および同時実行メトリクスを出力します。耐久性のある実行は、チェックポイントやリプレイの進行に伴って複数の関数呼び出しにまたがる可能性があるため、これらのメトリクスの動作は標準関数とは異なります。
+ **呼び出し:** リプレイを含む各関数呼び出しをカウントします。1 回の耐久性のある実行で、複数の呼び出しデータポイントを生成できます。
+ **期間:** 各関数の呼び出しを別々に測定します。1 回の耐久性のある実行にかかる合計時間に `DurableExecutionDuration` を使用します。
+ **エラー:** 関数の呼び出しエラーを追跡します。実行レベルの障害には `DurableExecutionFailed` を使用します。

標準 Lambda メトリクスの完全なリストについては、「[Lambda 関数のメトリクスのタイプ](https://docs.aws.amazon.com//lambda/latest/dg/monitoring-metrics-types.html)」を参照してください。

### CloudWatch アラームの作成
<a name="durable-monitoring-alarms"></a>

メトリクスがしきい値を超えたときに通知する CloudWatch アラームを作成します。一般的なアラームは次のとおりです。
+ `ApproximateRunningDurableExecutionsUtilization` がクォータの 80% を超えている
+ `DurableExecutionFailed` しきい値を超えて増加している
+ `DurableExecutionTimedOut` は実行がタイムアウトしていることを示す
+ `DurableExecutionStorageWrittenBytes` がストレージ制限に近づく

詳細については、「[Amazon CloudWatch アラームを使用する](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)」を参照してください。

## EventBridge イベント
<a name="durable-monitoring-eventbridge"></a>

Lambda は、耐久性のある実行のステータス変更イベントを EventBridge に発行します。これらのイベントを使用して、ワークフローをトリガーしたり、通知を送信したり、耐久関数全体で実行ライフサイクルの変更を追跡したりできます。

### 耐久性のある実行のステータス変更イベント
<a name="durable-eventbridge-status-changes"></a>

Lambda は、耐久性のある実行がステータスを変更するたびに EventBridge にイベントを出力します。これらのイベントの特性は次のとおりです。
+ **ソース:** `aws.lambda`
+ **詳細タイプ:** `Durable Execution Status Change`

ステータス変更イベントは、次の実行状態で発行されます。
+ `RUNNING` – 実行が開始されました
+ `SUCCEEDED` – 実行が正常に完了しました
+ `STOPPED` – StopDurableExecution API を使用して実行を停止しました
+ `FAILED` – エラーにより実行に失敗しました
+ `TIMED_OUT` – 実行が設定されたタイムアウトを超えました

次の例は、耐久性のある実行のステータス変更イベントを示しています。

```
{
  "version": "0",
  "id": "d019b03c-a8a3-9d58-85de-241e96206538",
  "detail-type": "Durable Execution Status Change",
  "source": "aws.lambda",
  "account": "123456789012",
  "time": "2025-11-20T13:08:22Z",
  "region": "us-east-1",
  "resources": [],
  "detail": {
    "durableExecutionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function:$LATEST/durable-execution/090c4189-b18b-4296-9d0c-cfd01dc3a122/9f7d84c9-ea3d-3ffc-b3e5-5ec51c34ffc9",
    "durableExecutionName": "order-123",
    "functionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function:2",
    "status": "RUNNING",
    "startTimestamp": "2025-11-20T13:08:22.345Z"
  }
}
```

終了状態 (`SUCCEEDED`、`STOPPED`、`FAILED`、`TIMED_OUT`) の場合、イベントには実行が完了したことを示す `endTimestamp` フィールドが含まれます。

### EventBridge ルールの作成
<a name="durable-eventbridge-rules"></a>

Amazon Simple Notification Service、Amazon Simple Queue Service、またはその他の Lambda 関数などのターゲットに耐久性のある実行のステータス変更イベントをルーティングするためのルールを作成します。

次の例では、耐久性のある実行のすべてのステータスの変更に一致するルールを作成します。

```
{
  "source": ["aws.lambda"],
  "detail-type": ["Durable Execution Status Change"]
}
```

次の例では、失敗した実行のみに一致するルールを作成します。

```
{
  "source": ["aws.lambda"],
  "detail-type": ["Durable Execution Status Change"],
  "detail": {
    "status": ["FAILED"]
  }
}
```

次の例では、特定の関数のステータス変更に一致するルールを作成します。

```
{
  "source": ["aws.lambda"],
  "detail-type": ["Durable Execution Status Change"],
  "detail": {
    "functionArn": [{
      "prefix": "arn:aws:lambda:us-east-1:123456789012:function:my-function"
    }]
  }
}
```

ルールの作成の詳細については、「EventBridge ユーザーガイド」の「[Amazon EventBridge チュートリアル](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tutorial.html)」を参照してください。

## AWS X-Ray トレース
<a name="durable-monitoring-xray"></a>

耐久関数で X-Ray トレースを有効にできます。Lambda は X-Ray トレースヘッダーを耐久性のある実行に渡します。これにより、ワークフロー全体でリクエストをトレースできます。

Lambda コンソールを使用して X-Ray; トレースを有効にするには、関数を選択し、設定、モニタリング、オペレーションツールを選択し、X-Ray でアクティブトレースを有効にします。

AWS CLI を使用して X-Ray トレースを有効にするには:

```
aws lambda update-function-configuration \
    --function-name my-durable-function \
    --tracing-config Mode=Active
```

AWS SAM を使用して AWS X-Ray トレースを有効にするには:

```
Resources:
  MyDurableFunction:
    Type: AWS::Serverless::Function
    Properties:
      Tracing: Active
      DurableConfig:
        ExecutionTimeout: 3600
```

X-Ray の詳細については、「[AWS X-Ray デベロッパーガイド](https://docs.aws.amazon.com//xray/latest/devguide/aws-xray.html)」を参照してください。