これは v2 AWS CDK デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
このトピックでは、 を AWS SAMCLI AWS CDK アプリケーションで使用するために必要なものについて説明し、シンプルな AWS CDK アプリケーションを構築してローカルでテストする手順を示します。
前提条件
ローカルでテストするには、 をインストールする必要があります AWS SAMCLI。インストール手順については、 AWS SAM「 CLIのインストール」を参照してください。
AWS CDK アプリケーションの作成とローカルでのテスト
を使用して AWS CDK アプリケーションをローカルでテストするには AWS SAMCLI、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
という名前のファイルを作成します。
実行するコマンド:
$
mkdir my_function
$
cd my_function
$
touch app.py
次のコードを app.py
に追加します。
def lambda_handler(event, context):
return "Hello from SAM and the CDK!"
ステップ 4: Lambda 関数をテストする
を使用して AWS SAMCLI、 AWS CDK アプリケーションで定義した Lambda 関数をローカルに呼び出すことができます。これを行うには、関数コンストラクト識別子と合成された 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