AWS CDKでLambda(node.js)をデプロイする
aws-cdkをグローバルインストールします。
1 |
npm install -g aws-cdk |
これでcdkコマンドが使えるようになります。
1 2 |
cdk --version 2.26.0 (build a409d63) |
プロジェクト作成します。
1 |
cdk init app --language typescript |
lambdaディレクトリを作成し、index.js(lambda)を作成します。
1 2 |
mkdir lambda touch index.js |
index.js(lambda)は以下のようにします。
1 2 3 4 5 6 7 8 |
exports.handler = async function(event) { console.log("request:", JSON.stringify(event, undefined, 2)); return { statusCode: 200, headers: { "Content-Type": "text/plain" }, body: `Hello, CDK! You've hit ${event.path}\n` } } |
lib配下のts修正
プロジェクトのlib配下にあるtsファイルを修正します。
add start ~ add endまでです。以下では、index.handler、node.js v16にしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import { Stack, StackProps } from 'aws-cdk-lib'; import { Construct } from 'constructs'; import * as lambda from 'aws-cdk-lib/aws-lambda'; export class Sample001Stack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); // add start const index = new lambda.Function(this, 'IndexHandler', { runtime: lambda.Runtime.NODEJS_16_X, // node.js v16 code: lambda.Code.fromAsset('lambda'), // lambdaディレクトリ handler: 'index.handler' // index.jsにしたのでindex }) // add end } } |
これで保存します。
cdk bootstrap
次に以下コマンド実行します。
1 |
cdk bootstrap |
このコマンドはデプロイする前に1回だけ実行が必要なようです。
裏でcloudformationのstackが作成されます。
cdk deploy
デプロイします。
1 |
cdk deploy |
これでstackとlambdaがデプロイされます。
node_modulesを含めたデプロイの場合は、aws-lambda-node.jsを使う必要がありそうです。
参考サイト
https://cdkworkshop.com/20-typescript.html
https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
資格:少額短期保険募集人,FP3級