1
1

More than 3 years have passed since last update.

Serverless Frameworkで AWS Lambda Layersを作る

Posted at

目的

Serverless Frameworkを使って、Lambda関数と同時にLambda Layerを作成する。

ディレクトリ構成

sls-example
  ├── handle.py
  ├── layers
  │   └── pillow
  │       ├── package.sh
  │       └── requirements.txt
  └── serverless.yml
requirements.txt
pillow==6.0.0
package.sh
#!/bin/sh

export OUTPUT_DIR="python"
rm -rf ${OUTPUT_DIR} && mkdir -p ${OUTPUT_DIR}
docker run --rm -v $(pwd):/var/task -w /var/task lambci/lambda:build-python3.6 \
    pip install -r requirements.txt -t ${OUTPUT_DIR} 
serverless.yml
service: sls-example

provider:
  name: aws
  runtime: python3.6
  stage: dev
  region: us-west-2
plugins:
  - serverless-python-requirements
package:
  individually: true

# AWS Lambda Layers
layers:
  pillow:
    path: layers/pillow
    name: ${self:service}-pillow
    compatibleRuntimes:
      - python3.6
    allowedAccounts:
      - '*'

# AWS Lambda Functions
functions:
  analyze:
    handler: analysis_lambda.analyze
    layers:
      - {Ref: PillowLambdaLayer}
#     - arn:aws:lambda:${self:provider.region}:xxxxxxxxxxx:layer:{service名}-{layer名}:{バージョン}

デプロイ

cd pillow
./package.sh
cd sls-example
sls deploy
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1