Create a AWS TypeScript project with serverless
プロジェクトの作成
serverless framework の template では以下 2 つがある
こちらは設定ファイルが serverless.yml
こちらは legacy のディレクトリに ↓ に移動されている
こちらの方は、middy や jsonschema などが初めから入っている
設定ファイルも serverless.ts になっている
とりあえず、ミニマルにスタートしたい場合は aws-node-typescript をテンプレートにプロジェクトを作成してその後、ほしいものを追加する感じが良いと思われる
code:bash
npx serverless create -t aws-node-typescript
serverless.yml -> serverless.ts
serverless.ts を使うときは、型定義 @serverless/typescript @types/node ts-node のインストールが必要
code:bash
npm i -D \
@serverless/typescript @types/node ts-node
↑ を入れたらファイル名を変更する
code:serverless.ts
// 型定義
import { AWS } from "@serverless/typescript";
// 変数等に分離してもよいし、別ファイルに分離しても良い
name: "aws",
runtime: "nodejs18.x",
};
const config: AWS = {
service: "service-name",
provider,
...
}
module.exports = config
ローカルでのfunctionの実行
関数が↓のようにserverless.yml に定義されていた場合に
code:yaml
functions:
hello:
handler: src/handlers/hello.handler
npx sls invoke local -f hello で実行できる