Create the layer in Lambda Lambdaレイヤーの作成
CloudShellで実行しました。
$ mkdir python
$ pip install boto3 -t python/
...
Successfully installed boto3-1.38.40 ...
$ zip -r FILE_NAME.zip python/
$ aws lambda publish-layer-version --layer-name LAYER_NAME \
--zip-file fileb://FILE_NAME.zip \
--compatible-runtimes python3.13
{
"Content": {
"Location": ...,
"CodeSha256": ...,
"CodeSize": ...
},
"LayerArn": "arn:aws:lambda:REGION:ACCOUNT_ID:layer:LAYER_NAME",
"LayerVersionArn": "arn:aws:lambda:REGIONACCOUNT_ID:layer:LAYER_NAME:1",
"Description": ...,
"CreatedDate": ...,
"Version": 1,
"CompatibleRuntimes": [
"python3.13"
]
}
SAM Template and Deploying Lambda function SAMテンプレートとLambda関数のデプロイ
レイヤーのBoto3をimportできているか確認するためのLambda関数をSAMで作成、デプロイします。
samconfig.toml
version = 0.1
[default.global.parameters]
region = REGION
stack_name = STACK_NAME
s3_bucket = BUCKET_NAME
s3_prefix = PREFIX
template.yaml
“Layers”でレイヤーのARNをリスト形式で指定します(指定するレイヤーが1つでもリスト形式)。
Resources:
Lambda:
Type: AWS::Serverless::Function
Properties:
FunctionName: LAMBDA_FUNCTION_NAME
Handler: index.lambda_handler
Runtime: python3.13
CodeUri: .
Layers:
- !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:layer:LAYER_NAME:VERSION
Role: !Sub arn:aws:iam::${AWS::AccountId}:role/ROLE_NAME
Logs:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: !Sub /aws/lambda/${Lambda}
index.py
import boto3
def lambda_handler(event, context):
print(f"boto3.__version__={boto3.__version__}")
$ sam deploy
Result 実行結果
レイヤーを使用しない場合
boto3.__version__=1.35.92
レイヤーを使用する場合
boto3.__version__=1.38.40
Reference 参考
レイヤーによる Lambda 依存関係の管理 - AWS Lambda
このセクションでは、AWS レイヤーを使用してアプリケーションコードを依存関係から分離する方法について説明します。
Python Lambda 関数にレイヤーを使用する - AWS Lambda
Python Lambda レイヤーをパッケージ化して作成する方法について説明します。
Lambda でのレイヤーの作成と削除 - AWS Lambda
Lambda レイヤーの正しい作成方法および削除方法を学びましょう。
関数へのレイヤーの追加 - AWS Lambda
Lambda レイヤーを関数に追加する方法を学びましょう。
https://docs.aws.amazon.com/ja_jp/pythonsdk/
AWS::Serverless::Function - AWS Serverless Application Model
このセクションには、 AWS SAM リソースとプロパティタイプ に関する詳細が含まれていますAWS::Serverless::Function。
擬似パラメータを使用して AWS 値を取得する - AWS CloudFormation
CloudFormation によってあらかじめ定義された、利用可能な擬似パラメータの詳細が一覧表示されます。 擬似パラメータは、AWS アカウント、リージョン、およびその他のコンテキストデータに関するコンテキスト情報を提供する組み込み変数...