Serverless Application Model

前回に続いて、Lambda関数の実行を今回はSAM(Serverless Application Modelを使って試しました。(SAMを使うためには、AWSのアカウントが必要だと思っていましたが、なくてもローカル実行はできるのですね)

環境) DockerDesktop & M2 Mac

NodeJSのインストール 

brew install nodebrew

バージョン確認

nodebrew -v

 nodebrew 1.2.0

インストール可能なNode.jsの確認

nodebrew ls-remote

ダウンロードするディレクトリ作成

mkdir -p ~/.nodebrew/src

Node.jsインストール

nodebrew install-binary v18.12.1
nodebrew use v18.12.1

インストールされたNode.jsの確認

nodebrew ls

echo ‘export PATH=$HOME/.nodebrew/current/bin:$PATH’ >> ~/.zshrc

node -v

 v18.12.1

AWS SAMのインストール

brew install aws-sam-cli

SAM バージョン確認 (AWS CLI は不要)

sam –version

 SAM CLI, version 1.90.0

SAMLの初期化からlambdaHandlerの実行(前回と同様呼び出しによるものとサーバを通したもの)

hello-world/app.mjs

sam-cliをnodeからインストールする方法もあったため、試しましたがcpuがarmであることで失敗しました。
node.jsの対応バージョンも変わったりと、この時点での環境を抑えておく意味で、書留めておきます。

参考) ※情報が古いものもありますが、考え方を参考にさせていただきました。
https://masanyon.com/node-js-npm-cli-command-node-package-manager/
https://zenn.dev/masatto16/articles/bf7110a1012b40
https://dev.classmethod.jp/articles/20170816-sam-local/

template.yaml

events/event.json