0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS CDKでlamdba環境を作成する

Posted at

はじめに

本記事ではcdkプロジェクトからlamdba環境を構築します。
他リソースとの作成方法とは違った流れでしたので、記事にまとめることにしました。

使用言語はTypescriptになります。

目次

  1. ディレクトリ構成の把握
  2. lambdaディレクトリの環境構築
  3. まとめ

ディレクトリ構成の把握

環境構築を始める前に、ディレクトリの構成及びパッケージのダウンロードする場所を把握しておきましょう。

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ディレクトリ配下に作成します。

index.ts
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の理解が必要だなと思いました。

では、またノシ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?