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

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

AWS SAM と の開始方法 AWS CDK

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

前提条件

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

  • のインストールの詳細については AWS CDK、「 AWS Cloud Development Kit (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.135.0 以降の AWS CDK v1 と、バージョン 2.0.0 以降の AWS CDK v2 AWS SAMCLIをサポートしています。

ステップ 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 という名前のファイルを作成します。

実行するコマンド:

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 テンプレートへのパスが必要です。

実行するコマンド:

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

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