ローカルテストの開始方法 - AWS クラウド開発キット (AWS CDK) v2

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

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

ローカルテストの開始方法

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

前提条件

ローカルでテストするには、AWS SAM CLI をインストールする必要があります。インストール手順については、「AWS SAM CLI のインストール」を参照してください。

AWS CDK アプリケーションの作成とローカルでのテスト

AWS SAM CLI を使用して AWS CDK アプリケーションをローカルにテストするには、Lambda 関数が含まれる AWS CDK アプリケーションがある必要があります。次のステップを使用して、Lambda 関数を使用する基本的な AWS CDK アプリケーションを作成します。詳細については、「AWS Cloud Development Kit (AWS CDK) 開発者ガイド」の「AWS CDK を使用して、サーバーレスアプリケーションを作成する」を参照してください。

ステップ 1: AWS CDK アプリケーションを作成する

このチュートリアルでは、TypeScript を使用するAWS CDK アプリケーションを初期化します。

実行するコマンド:

$ mkdir cdk-sam-example $ cd cdk-sam-example $ cdk init app --language typescript
ステップ 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'), }); } }
ステップ 3: Lambda 関数コードを追加する

my_function という名前のディレクトリを作成します。そのディレクトリに app.py という名前のファイルを作成します。

実行するコマンド:

macOS / Linux
$ mkdir my_function $ cd my_function $ touch app.py
Windows
$ mkdir my_function $ cd my_function $ type nul > app.py
PowerShell
$ 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!"
ステップ 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