環境
// dockerを起動
docker-compose up -d
Lambda関数の作成
zipファイルを使って関数を作成する方法で実施。
1.コードファイルの作成
index.mjs
export const handler = async (event) => {
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
ローカルで作ってください。
AWS Lambda作成時に生成されるコードそのままコピペした。
2.zipに圧縮
右クリックorコマンド
3.Lambda関数のデプロイ
以下コマンドでデプロイします。
aws --endpoint-url=http://localhost:4566 --profile localstack lambda create-function ^
--function-name [任意の関数名] ^
--runtime nodejs20.x ^
--zip-file fileb://lambda/index.zip ^
--handler index.handler ^
--role arn:aws:iam::000000000000:role/lambda-role
見やすくするため^で改行しています。
--zip-fileにはzipを置いた場所を指定する。自分の場合localstack/lambdaに置いたのでこうなる。
--roleはダミーで問題ないがarn:aws:iam:xxx:role/xxxにする必要がある。testとかにしちゃうとエラーが出る(多分)
Lambda関数が作成されたか確認してみる。
aws lambda list-functions --endpoint-url=http://localhost:4566 --profile localstack
色々出たら成功
4.Lambda関数の実行
aws lambda invoke ^
--function-name [実行したいlambda関数名] ^
output.log --endpoint-url=http://localhost:4566 --profile localstack
output.logに実行結果を出力するようにしている。
参考