Slide 17
Slide 17 text
CDK でのルーティング定義の書き方
17
A ルーティング表が CDK にある
B CDK にパスもメソッドも出てこない
// エンドポイントごとに Lambda 関数を1つ作る
const createUserHandler = new NodejsFunction(this, "CreateUser", {
this.handler = new NodejsFunction(this, "Handler", {
entry: "apps/api/src/lambda.ts",
entry: "src/handlers/create-user.ts", ...
});
// /users を作り、POST に専用ハンドラを割り当てる
const users = api.root.addResource("users");
users.addMethod("POST",
new LambdaIntegration(createUserHandler),
{ authorizer, ... });
// /users/me を作り、GET に別のハンドラを割り当てる
const me = users.addResource("me");
me.addMethod("GET",
new LambdaIntegration(getUserHandler),
{ authorizer, ... });
// ...これがエンドポイント数だけ続く
APIを追加するにはCDKのコードを修正する必要が
ある
runtime: lambda.Runtime.NODEJS_22_X,
vpc, environment: { ... },
});
new apigateway.LambdaRestApi(this, "Api", {
handler: this.handler,
proxy: true, // ANY /{proxy+} → 全部この Lambda へ
});
// おわり
CDK が知っているのは「全リクエストを1つの
Lambda に流す」だけ
エンドポイント追加でインフラの 差分 は ゼロ
ハンドラの中のコードはHonoのままなので読みやす
い
B 有利 - エンドポイント1本の追加が、A は「ハンドラ + CDK」、B は「ハンドラ」だけ