

# コンソールでの Lambda 関数のテスト
<a name="testing-functions"></a>

コンソールで Lambda 関数をテストするには、テストイベントを使用して関数を呼び出します。*テストイベント*とは、関数への JSON 入力です。関数が入力を必要としない場合、イベントは空のドキュメント `({})` にすることができます。

コンソールでテストを実行すると、Lambda はテストイベントと同期して関数を呼び出します。関数ランタイムは イベント JSON をオブジェクトに変換し、コードのハンドラーメソッドに渡して処理します。

**テストイベントを作成する**  
コンソールでテストする前に、プライベートまたは共有可能なテストイベントを作成する必要があります。

## テストイベントで関数を呼び出す
<a name="invoke-with-event"></a>

**関数をテストするには**

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

1. テストする関数の名前を選択します。

1. **[Test]** (テスト) タブを選択します。

1. **[テストイベント]** で、**[新しいイベントを作成]** または **[保存されたイベント]** を選択し、使用する保存済みのイベントを選択します。

1. 必要に応じて、イベント JSON の **[テンプレート]** を選択します。

1. **[テスト]** を選択します。

1. テスト結果を確認するには、**[Execution result]** (実行結果) で、**[Details]** (詳細) を展開します。

テストイベントを保存せずに関数を呼び出すには、保存する前に **[Test]** (テスト) を選択します。これにより、Lambda がセッション期間中だけ保持し、保存されないテストイベントが作成されます。

Node.js、Python、Ruby ランタイムの場合、**[コード]** タブで既存の保存済みおよび未保存のテストイベントにアクセスすることもできます。**[テストイベント]** セクションを使用して、テストを作成、編集、実行します。

## プライベートテストイベントを作成する
<a name="creating-private-events"></a>

プライベートテストイベントは、イベント作成者のみが使用でき、追加のアクセス許可は必要ありません。関数ごとに、最大 10 個のプライベートテストイベントを作成し保存できます。

**プライベートテストイベントを作成するには**

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

1. テストする関数の名前を選択します。

1. **[Test]** (テスト) タブを選択します。

1. **[Test event]** (テストイベント) で、次の作業を行います。

   1. **[Template]** (テンプレート) を選択します。

   1. テストの **[Name]** (名前) を入力します。

   1. テキスト入力ボックスに、JSON テストイベントを入力します。

   1. **[Event sharing settings]** (イベント共有設定) で、**[Private]** (プライベート) を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

Node.js、Python、Ruby ランタイムの場合、**[コード]** タブでテストイベントを作成することもできます。**[テストイベント]** セクションを使用して、テストを作成、編集、実行します。

## 共有可能なテストイベントを作成する
<a name="creating-shareable-events"></a>

共有可能なテストイベントは、同じ AWS アカウント内の他のユーザーと共有できるテストイベントです。他のユーザーの共有可能なテストイベントを編集し、それを使用して関数を呼び出すことができます。

Lambda は、共有可能なテストイベントをスキーマとして `lambda-testevent-schemas` という名前の [Amazon EventBridge (CloudWatch Events) スキーマレジストリ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-schema-registry.html)に保存します。Lambda はこのレジストリを使用して、作成した共有可能なテストイベントを保存したり呼び出したりするので、このレジストリの編集や `lambda-testevent-schemas` 名を使用したレジストリの作成はしないようにお勧めします。

共有可能なテストイベントを表示、共有、編集するには、次の [EventBridge (CloudWatch Events) スキーマレジストリ API オペレーション](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/operations.html)のすべてについてアクセス許可が付与されている必要があります。
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#CreateRegistry](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#CreateRegistry)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#CreateSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#CreateSchema)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DeleteSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DeleteSchema)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-version-schemaversion.html#DeleteSchemaVersion](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-version-schemaversion.html#DeleteSchemaVersion)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#DescribeRegistry](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#DescribeRegistry)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DescribeSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DescribeSchema)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discover.html#GetDiscoveredSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discover.html#GetDiscoveredSchema)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-versions.html#ListSchemaVersions](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-versions.html#ListSchemaVersions)
+ [https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#UpdateSchema](https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#UpdateSchema)

共有可能なテストイベントに加えた編集を保存すると、そのイベントが上書きされることに注意してください。

共有可能なテストイベントを作成、編集、または表示できない場合は、アカウントにこれらのオペレーションに必要なアクセス許可があることを確認してください。必要なアクセス許可を持っていても、共有可能なテストイベントにアクセスできない場合は、EventBridge (CloudWatch Events) レジストリへのアクセスを制限している可能性がある[リソースベースのポリシー](access-control-resource-based.md)がないか確認します。

**共有可能なテストイベントを作成するには**

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

1. テストする関数の名前を選択します。

1. **[Test]** (テスト) タブを選択します。

1. **[Test event]** (テストイベント) で、次の作業を行います。

   1. **[Template]** (テンプレート) を選択します。

   1. テストの **[Name]** (名前) を入力します。

   1. テキスト入力ボックスに、JSON テストイベントを入力します。

   1. **[Event sharing settings]** (イベント共有設定) で、**[Shareable]** (共有可能) を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

**AWS Serverless Application Model で共有可能なテストイベントを使用する。**  
AWS SAM を使用して共有可能なテストイベントを呼び出すことができます。「[AWS Serverless Application Model デベロッパーガイド](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/using-sam-cli-remote-test-event.html)」の「[https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/using-sam-cli-remote-test-event.html](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/using-sam-cli-remote-test-event.html)」を参照してください。

## 共有可能なテストイベントスキーマの削除
<a name="deleting-test-schemas"></a>

共有可能なテストイベントを削除すると、Lambda はそれらを `lambda-testevent-schemas` レジストリから削除します。レジストリから最後の共有可能なテストイベントを削除すると、Lambda はレジストリを削除します。

関数を削除しても、Lambda は関連付けられた共有可能なテストイベントスキーマを削除しません。これらのリソースは、[EventBridge (CloudWatch Events) コンソール](https://console.aws.amazon.com/events) から手動でクリーンアップする必要があります。