タイトル : AWS lambda 初めの一歩 lambdaを登録して呼び出す localstackを試そう 2024
更新日 : 2024-11-22
カテゴリ : プログラミング
初めの一歩 lambdaを登録して呼び出す
- pythonソースを書いてzipにする
$ cat test1.py
def handler(event, context):
return 'Welcome to LocalStack'
$ zip src.zip test1.py
adding: test1.py (stored 0%)
$
-
lambdaを作成
- --function-name : 関数名
- --runtime : pythonの3.9のランタイム
- --role : ロールの割り当て。localstackだと何でも良いけど形式チェックがかかるので、arnのそれらしい文字列で書く
- --handler : test1.pyのメソッド handlerを呼び出すので test1.handler
- --zip-file : ソースファイルをzipにしたもの
$ aws lambda create-function --function-name lambda_test1 --runtime python3.9 --role arn:aws:iam::000000000000:role/lambda-role-dummy --handler test1.handler --zip-file fileb://src.zip
{
"FunctionName": "lambda_test1",
"FunctionArn": "arn:aws:lambda:ap-northeast-1:000000000000:function:lambda_test1",
"Runtime": "python3.9",
"Role": "arn:aws:iam::000000000000:role/lambda-role-dummy",
"Handler": "test1.handler",
"CodeSize": 230,
...
$
- 作成されているか確認
関数名のみ表示する。整形は jqを使った方が良いのかな~
$ aws lambda list-functions | jq -r .Functions[].FunctionName
lambda_test1
$ aws lambda list-functions --query 'Functions[*].[FunctionName]'
[
[
"lambda_test1"
]
]
$
- 呼び出し
invoke を使って --function-name でlambda関数名を指定し、result.logに結果を格納する。
$ aws lambda invoke --function-name lambda_test1 result.log
{
"StatusCode": 200,
"ExecutedVersion": "$LATEST"
}
$ cat result.log
"Welcome to LocalStack"$
動いているみたいですね。やったー!
以下で削除できるので、ソース書き換えて何度かやり直しましょう。
$ aws lambda delete-function --function-name lambda_test1
$