前提
Runtimeはpythonを指定。
今回使用したキー情報のみを記述。
記述例
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
# S3 Buckets
BucketName:
Type: AWS::S3::Bucket
# Lambda Functions
FunctionName:
Type: AWS::Serverless::Function # Serverless::FunctionがLambdaのこと
Properties:
Handler: app.handler #ここはファイル名.メソッド名で記述する。pythonの場合、app.pyのhandler関数を呼び出すということになる
Runtime: python3.11
CodeUri: ./test/ # 実行ファイルがあるパス
Policies:
# S3へのアップロードが必要であれば「S3CrudPolicy」のような記述をする。
Environment:
Variables:
# 環境変数をセットする場合、ここに記述する。その際に「!Ref [インんスタンス名]」のように変数を格納できる。
所感
- 他にもmemory等の設定も記述できるため、コンソールで行うのと同じように様々な設定ができることが便利。
- pythonの場合、requirements.txtが実行スクリプトファイルと同じ階層にありそ子にライブラリを追加することで簡単にLambdaの実行環境が作れるように感じた。Layer追加やECRを使用したコンテナLambdaのよリも楽に設定できる。
- ライブラリの容量が少ない場合に適しており、ライブラリの容量が大きい場合やライブラリの使用にあたり様々なモジュールがimportされる場合はLayer・コンテナLambdaを使用した方が良い印象。
参考