

これは AWS CDK v2 デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ローカルテストの開始方法
<a name="testing-locally-getting-started"></a>

このトピックでは、AWS CDK アプリケーションで AWS SAM CLI を使用するために必要な事柄と、シンプルな AWS CDK アプリケーションを構築してローカルにテストするための手順を説明します。

## 前提条件
<a name="testing-locally-getting-started-prerequisites"></a>

ローカルでテストするには、AWS SAM CLI をインストールする必要があります。インストール手順については、「[AWS SAM CLI のインストール](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/getting_started.html)」を参照してください。

## AWS CDK アプリケーションの作成とローカルでのテスト
<a name="testing-locally-getting-started-tutorial"></a>

AWS SAM CLI を使用して AWS CDK アプリケーションをローカルにテストするには、Lambda 関数が含まれる AWS CDK アプリケーションがある必要があります。次のステップを使用して、Lambda 関数を使用する基本的な AWS CDK アプリケーションを作成します。詳細については、「*AWS Cloud Development Kit (AWS CDK) 開発者ガイド*」の「[AWS CDK を使用して、サーバーレスアプリケーションを作成する](https://docs.aws.amazon.com/cdk/latest/guide/serverless_example.html)」を参照してください。<a name="testing-locally-getting-started-tutorial-init"></a>

 **ステップ 1: AWS CDK アプリケーションを作成する**   
このチュートリアルでは、TypeScript を使用するAWS CDK アプリケーションを初期化します。  
実行するコマンド:  

```
$ mkdir cdk-sam-example
$ cd cdk-sam-example
$ cdk init app --language typescript
```<a name="testing-locally-getting-started-tutorial-lambda"></a>

 **ステップ 2: アプリケーションに Lambda 関数を追加する**   
`lib/cdk-sam-example-stack.ts` のコードを、以下のコードに置き換えます。  

```
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as lambda from 'aws-cdk-lib/aws-lambda';

export class CdkSamExampleStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    new lambda.Function(this, 'MyFunction', {
      runtime: lambda.Runtime.PYTHON_3_12,
      handler: 'app.lambda_handler',
      code: lambda.Code.fromAsset('./my_function'),
    });
  }
}
```<a name="testing-locally-getting-started-tutorial-code"></a>

 **ステップ 3: Lambda 関数コードを追加する**   
`my_function` という名前のディレクトリを作成します。そのディレクトリに `app.py` という名前のファイルを作成します。  
実行するコマンド:  

**Example**  

```
$ mkdir my_function
$ cd my_function
$ touch app.py
```

```
$ mkdir my_function
$ cd my_function
$ type nul > app.py
```

```
$ mkdir my_function
$ cd my_function
$ New-Item -Path "app.py”
```
次のコードを `app.py` に追加します。

```
def lambda_handler(event, context):
    return "Hello from SAM and the CDK!"
```<a name="testing-locally-getting-started-tutorial-function"></a>

 **ステップ 4: Lambda 関数をテストする**   
AWS CDK アプリケーションで定義されている Lambda 関数は、 AWS SAM CLI を使用してローカルに呼び出すことができます。これを行うには、呼び出す関数のコンストラクト識別子と、合成した AWS CloudFormation テンプレートへのパスが必要です。  
`lib` ディレクトリに戻って、次のコマンドを実行します。  

```
$  cd ..
```
 **実行するコマンド:**   

```
$  cdk synth --no-staging
```

```
$  sam local invoke MyFunction --no-event -t ./cdk.out/CdkSamExampleStack.template.json
```
 **出力例:**   

```
Invoking app.lambda_handler (python3.9)

START RequestId: 5434c093-7182-4012-9b06-635011cac4f2 Version: $LATEST
"Hello from SAM and the CDK!"
END RequestId: 5434c093-7182-4012-9b06-635011cac4f2
REPORT RequestId: 5434c093-7182-4012-9b06-635011cac4f2	Init Duration: 0.32 ms	Duration: 177.47 ms	Billed Duration: 178 ms	Memory Size: 128 MB	Max Memory Used: 128 MB
```