AWS CDKとは
AWS Cloud Development Kit (AWS CDK) とはAWSサービスをプログラミング言語で定義してデプロイできる仕組みです。
AWSコンソール上で手作業でサービスを構築するよりもミスを防ぐことができたり、環境を複製するのが簡単になったりします。
この記事では、LambdaをAWS CDKからデプロイできることを確認します。
CDKプロジェクトの作成
前提条件
次のツールをインストール済みであることが前提です。
- AWS CDK CLI ver2
- Node.js ver.24
プロジェクトの初期化
CDKプロジェクトは次の手順で作成できます。
# プロジェクトディレクトリに移動
$ cd cdk_intro
# CDKプロジェクトを初期化
$ cdk init app --language typescript
プロジェクトを初期化すると、いくつかのファイルやフォルダが作成されます。
このうち lib ディレクトリを主に編集します。
Lambdaの定義
デプロイするLambdaをプログラミング言語で定義します。
Lambdaの定義で使用するTypeScriptの型定義を追加します。
$ npm install --save-dev @types/aws-lambda
Lambdaを定義します。ここではリクエストに応じてJSONレスポンスを返してくれる関数を定義します。
lambdaディレクトリを作成してファイルに記載します。
import { APIGatewayProxyEventV2, APIGatewayProxyResultV2 } from "aws-lambda";
export const handler = async (
event: APIGatewayProxyEventV2,
): Promise<APIGatewayProxyResultV2> => {
console.log("Received event:", JSON.stringify(event, null, 2));
return {
statusCode: 200,
headers: {
"content-type": "application/json",
},
body: JSON.stringify({
message: "Hello from Lambda Function URL!",
method: event.requestContext.http.method,
path: event.rawPath,
time: new Date().toISOString(),
}),
};
};
デプロイ
デプロイするにはAWSアカウントとリージョンを指定する必要があります。
以下のファイルに必要な情報を記載します。
#!/usr/bin/env node
import * as cdk from "aws-cdk-lib/core";
import { CdkIntroStack } from "../lib/cdk_intro-stack";
const app = new cdk.App();
new CdkIntroStack(app, "CdkIntroStack", {
// デプロイに使用するアカウント、リージョンを指定
env: { account: "12345...", region: "ap-northeast-1" },
});
初回のみブートストラップと呼ばれる、CDKデプロイのためのS3やIAMロールの準備が必要です。
$ cdk bootstrap
# 準備に少々時間がかかります
準備ができたら実際にデプロイしてみます。
# デプロイ実行
$ cdk deploy
# 次のようなセキュリティに関する質問が表示されたら、問題ないので「y」を入力してEnterキーを押下する
"--require-approval" is enabled and stack includes security-sensitive updates: 'Do you wish to deploy these changes' (y/n) y
デプロイが成功したら、ブラウザでAWSコンソールを開き「CloudFormation」サービスを開くとデプロイしたスタックが表示されます。
また、「Lambda」を開くと関数がデプロイされていることを確認できます。
まとめ
AWS CDKを使うと、プログラムコードでAWSサービスをデプロイできます。
環境を簡単に複製したり、変更時のレビューがしやすいというメリットがあります。

