超シンプルなLambda Layersのサンプル(Python、Serverless Framework使用)
4313 ワード
Layer
複数のLambdaから呼ばれる共通モジュールをイメージ。
ディレクトリ構成
common
├── serverless.yml
└── layer
└── python
└── util.py
serverless.yml
service: sample-layer
provider:
name: aws
layers:
samplelayer:
path: layer
util.py
def hello():
print('Hello, Lambda Layers World!')
Lambda Function
上記のLayerモジュールを呼び出すLambda。
ディレクトリ構成
function
├── serverless.yml
└── handler.py
serverless.yml
service: sample-function
provider:
name: aws
runtime: python3.7
iamRoleStatements:
- Effect: "Allow"
Action:
- "lambda:InvokeFunction"
Resource: "*"
functions:
samplefunction:
handler: handler.handle_request
layers:
- {上記のLayerをsls deployした時に表示されるarn}
handler.py
import util
def handle_request(event, context):
util.hello()
実行結果
注意点など
- Layerは
/opt
に展開される。ここにはパスが通っており、Pythonだと/opt/python
と/opt/python/lib/python3.7/site-packages
が使えるので、Layerもpython
ディレクトリを含めたディレクトリ構成にする必要がある。
- デプロイされたLayerの中身はコンソール上で見たり編集したりすることができない。
- Layerはデプロイする度にバージョンが上がり、ARNも変わる。今回の例のように別スタックからARNでLayerを参照する場合は、Layerをデプロイしたら他の参照しているLambdaもデプロイし直す必要がある。
/opt
に展開される。ここにはパスが通っており、Pythonだと/opt/python
と/opt/python/lib/python3.7/site-packages
が使えるので、Layerもpython
ディレクトリを含めたディレクトリ構成にする必要がある。Author And Source
この問題について(超シンプルなLambda Layersのサンプル(Python、Serverless Framework使用)), 我々は、より多くの情報をここで見つけました https://qiita.com/ttkiida/items/255b124a3cf180329c8a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .