Lambda Layers by Serverless
以下の記事を参考にLambda Layerを試してみました。
LambdaのLayerをServerless Frameworkで - Qiita
Lambda Layersとは
Layer化することによりより複雑な処理が実行できるということかな? AWS Lambda レイヤー - AWS Lambda
layer追加
serverlessのnodejs版(hello)にLayerを追加します。
Layerに追加する関数作成
$ cd my-project $ tree . ├── handler.js ├── my-layer │ └── nodejs │ └── node_modules │ └── pow │ └── index.js ├── serverless.yml
serverless.ymlを修正
cat serverless.yml layers: mylayer: path: my-layer
deploy
$ serverless deploy Serverless: Packaging service... Serverless: Excluding development dependencies... Serverless: Excluding development dependencies... Serverless: Creating Stack... Serverless: Checking Stack create progress... ..... Serverless: Stack create finished... Serverless: Uploading CloudFormation file to S3... Serverless: Uploading artifacts... Serverless: Uploading service my-service.zip file to S3 (1.81 KB)... Serverless: Uploading service mylayer.zip file to S3 (207 B)... Serverless: Validating template... Serverless: Updating Stack... Serverless: Checking Stack update progress... .................. Serverless: Stack update finished... Service Information service: my-service stage: dev region: ap-northeast-1 stack: my-service-dev resources: 6 api keys: None endpoints: None functions: hello: my-service-dev-hello layers: mylayer: arn:aws:lambda:ap-northeast-1:881710576594:layer:mylayer:1
deployされているか確認します。
$ aws lambda list-layers { "Layers": [ { "LayerName": "mylayer", "LayerArn": "arn:aws:lambda:ap-northeast-1:881710576594:layer:mylayer", "LatestMatchingVersion": { "LayerVersionArn": "arn:aws:lambda:ap-northeast-1:881710576594:layer:mylayer:1", "Version": 1, "CreatedDate": "2019-05-04T05:00:56.274+0000" } } ] }