はじめに
本記事ではcdkプロジェクトからlamdba環境を構築します。
他リソースとの作成方法とは違った流れでしたので、記事にまとめることにしました。
使用言語はTypescriptになります。
目次
- ディレクトリ構成の把握
- lambdaディレクトリの環境構築
- まとめ
ディレクトリ構成の把握
環境構築を始める前に、ディレクトリの構成及びパッケージのダウンロードする場所を把握しておきましょう。
my-cdk-app/
├── bin/ # アプリケーションエントリポイント
│ └── my-cdk-app.ts # Appインスタンスを作成しスタックをロード
├── lib/ # スタック定義を配置するディレクトリ
│ └── my-cdk-app-stack.ts
├── test/ # ユニットテスト用
├── lambdas/ # 各lambda環境を保存先となるディレクトリ(new)
│ └── lambda # lambda環境(new)
│ └── src # ソースファイル格納
├── cdk.json # CDK設定ファイル
├── package.json # npm設定ファイル
└── tsconfig.json # TypeScript設定ファイル
cdkプロジェクトの配下に1つディレクトリ(lambdas)を用意し、lambdas配下にディレクトリを用意するといった流れになります。
lambdaディレクトリの環境構築
node.jsプロジェクトの作成
まず最初に、lambdaディレクトリ配下にnode.jsプロジェクトを作成します。
npm init
Enterで進めていくと、package.jsonが作成されます。
lamdba開発のセットアップ
次に、必要なパッケージをインストールしていきましょう。
npm install -D typescript ts-node @types/node @types/aws-lambda
package.jsonにパッケージが追加されていることを確認します。
{
"name": "resize",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"@types/aws-lambda": "^8.10.145",
"@types/node": "^22.9.1",
"ts-node": "^10.9.2",
"typescript": "^5.6.3"
}
}
追加で、パッケージをインストールしていきます。
npm install @aws-sdk/client-s3 @aws-sdk/client-sqs dotenv jimp
最後に、Typescriptのセットアップをしていきます。
npx tsc --init
tsconfig.jsonが作成されていましたら完了です。
ソースファイルを作成する
lamdba環境の作成ができましたので、試しにソースファイルを書いていこうと思います。
ソースはsrcディレクトリ配下に作成します。
import { Handler } from 'aws-lambda';
export const handler: Handler = async (event) => {
console.log('Hello, world!');
console.log('%o', event);
};
cdkプロジェクトにesbuildパッケージをインストール
最後にcdkプロジェクト配下でesbuildパッケージをインストールしましょう。
TypescriptをJavascriptに変換するパッケージになりまして、
lamdbaの実行環境はnode.jsになりますので変換する必要があります。
npm install esbuild
まとめ
今回はcdkプロジェクトからlamdba環境構築してみました!
他リソースとは違い、アプリ制作寄りの環境構築が必要でしたね。
npmやnode.jsの理解が必要だなと思いました。
では、またノシ