AWS SAM と の開始方法 AWS CDK - AWS Serverless Application Model

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

AWS SAM と の開始方法 AWS CDK

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

前提条件

を使用するには AWS SAM CLI では AWS CDK、 と AWS CDKをインストールする必要があります。 AWS SAM CLI.

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

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

注記

AWS SAM CLI は AWS CDK 、バージョン 1.135.0 以降の AWS CDK v1 とバージョン 2.0.0 以降の v2 をサポートしています。

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

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

実行するコマンド:

AWS CDK v2
mkdir cdk-sam-example cd cdk-sam-example cdk init app --language typescript
AWS CDK v1
mkdir cdk-sam-example cd cdk-sam-example cdk init app --language typescript npm install @aws-cdk/aws-lambda

ステップ 2: アプリケーションに Lambda 関数を追加する

lib/cdk-sam-example-stack.ts のコードを、以下のコードに置き換えます。

AWS CDK v2
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_9, handler: 'app.lambda_handler', code: lambda.Code.fromAsset('./my_function'), }); } }
AWS CDK v1
import * as cdk from '@aws-cdk/core'; import * as lambda from '@aws-cdk/aws-lambda'; export class CdkSamExampleStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); new lambda.Function(this, 'MyFunction', { runtime: lambda.Runtime.PYTHON_3_9, handler: 'app.lambda_handler', code: lambda.Code.fromAsset('./my_function'), }); } }

ステップ 3: Lambda 関数コードを追加する

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

実行するコマンド:

OS and 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 SAM CLI は、 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

を使用して AWS CDK アプリケーションをテストするために使用できるオプションの詳細についてはCLI、 AWS SAM 「」を参照してくださいAWS SAM を使用する AWS CDK アプリケーションのローカルでのテスト