ServerlessFrameworkでTypeScript(lambda)開発

ServerlessFrameworkでTypeScript(lambda)開発

前提

項目バージョン
sls3.30.1
nodev18.16.0
npm9.5.1
aws cliaws-cli/1.22.34 Python/3.10.6 Linux/5.10.16.3-microsoft-standard-WSL2 botocore/1.23.34

プロジェクト作成

slsコマンドでTypeScriptのプロジェクト作成します。

$ sls create -t aws-nodejs-typescript -n hoge -p slstest
$ cd slstest
$ npm i

sls createコマンドのオプションの意味です。

オプション意味
-tテンプレート名
-nサービス名
-pサービスを作成するためのパス

プロジェクト作成されます。

ServerlessFrameworkでTypeScript(lambda)開発

nodeだとserverless.ymlだったのですが、tsだとserverless.tsになるようです。

デプロイ

sls deployでデプロイします。

$ sls deploy
Running "serverless" from node_modules

Deploying hoge to stage dev (us-east-1)

✔ Service deployed to stack hoge-dev (122s)

endpoint: POST - https://ktzlfmcx0h.execute-api.us-east-1.amazonaws.com/dev/hello
functions:
  hello: hoge-dev-hello (12 kB)

Monitor all your API routes with Serverless Console: run "serverless --console"

Lambda削除

serverless removeコマンドでスタック削除してlambdaを削除します。

ローカル実行

ローカル実行します。

$ sls invoke local -f hello -p src/functions/hello/mock.json
Running "serverless" from node_modules
{
    "statusCode": 200,
    "body": "{\"message\":\"Hello Frederic, welcome to the exciting Serverless world!\",\"event\":{\"headers\":{\"Content-Type\":\"application/json\"},\"body\":{\"name\":\"Frederic\"},\"rawBody\":\"{\\\"name\\\": \\\"Frederic\\\"}\"}}"
}

sls invoke localコマンドのオプションの意味です。

オプション意味
-fファンクション名
-pインプットファイルとなるjson or yamlファイルのパス

コメント

タイトルとURLをコピーしました