AWS Lambda
The example Yaml configurations in this file are using the legacy 0.8 syntax. If you are using Drone 1.0 or Drone Cloud please ensure you use the appropriate 1.0 syntax. Learn more here.
The plugin utilizes AWS go-sdk to update an existing function’s code; build your code, zip it with dependencies and upload it to S3. Then trigger the plugin for deploy.
Example:
pipeline:
deploy-lambda:
image: omerxx/drone-lambda-plugin
pull: true
function_name: my-function
s3_bucket: some-bucket
file_name: lambda-dir/lambda-project-${DRONE_BUILD_NUMBER}.zip
Example of a complete Lambda project’s pipeline:
pipeline:
build:
image: python:2.7-alpine
commands:
- apk update && apk add zip
- pip install -r requirements.txt -t .
- zip -r -9 lambda-project-${DRONE_BUILD_NUMBER}.zip *
s3-publish:
image: plugins/s3
acl: private
region: us-east-1
bucket: some-bucket
target: lambda-dir
source: lambda-project-${DRONE_BUILD_NUMBER}.zip
deploy-lambda:
image: omerxx/drone-lambda-plugin
pull: true
function_name: my-function
s3_bucket: some-bucket
file_name: lambda-dir/revenue-report-${DRONE_BUILD_NUMBER}.zip
notify-slack-releases:
image: plugins/slack
channel: product-releases
webhook: https://hooks.slack.com/services/ABCD/XYZ
username: Drone-CI
Secret Reference
It is highly recommended to make use of IAM roles instead of environment variables for AWS (Considering you are running Drone on AWS)
- aws_access_key_id
- AWS access key
- aws_secret_access_key
- AWS secret key. Access and secret key variables override credentials stored in config files
- aws_default_region
- AWS region. This variable overrides the default region of the in-use profile, if set
If these are not set, the plugin will use the instance IAM role [ Recommended method ]
Parameter Reference
- function_name
- Name of the lambda function as set in AWS
- s3_bucket
- Name of the S3 bucket in which the zip package for deployment is stored
- file_name
- Name of the file in S3. Can be prefixed like
my-directory/my-zip-package.zip