Scripts to compile
Sharp # High performance Node.js image processing
library for AWS Lambda instances powered by Amazon Linux 2.x, such as the
nodejs10.x
runtime, and the updated 2018.03 Amazon Linux 1 runtimes.
Absolutely the easiest way of using this is to pull it directly from the AWS Serverless Application repository into a CloudFormation/SAM application, or deploy directly from the Serverless Application Repository into your account, and then link as a layer.
For more information, check out the sharp-lambda-layer application in the Serverless App Repository.
For manual deployments and custom builds, read below...
- Docker desktop
- Unix Make environment
- AWS command line utilities (just for deployment)
- start Docker services
make all
There are two make
scripts in this project.
Makefile
is intended to run on the build system, and just starts a Docker container matching the AWS Linux 2 environment for Lambda runtimes to compile Sharp using the second script.Makefile_gs
is the script that will run inside the container, and actually compile binaries.
The output will be in the result
dir.
By default, this compiles a version expecting to run as a Lambda layer from
/opt
. You can change the expected location by providing a TARGET
variable
when invoking make
.
The default Docker image used is lambci/lambda-base-2:build
. To use a different
base, provide a DOCKER_IMAGE
variable when invoking make
.
Modify the versions of libraries or Sharp directly in Makefile_gs
.
sharp version 0.25.2
Run the following command to deploy the compiled result as a layer in your AWS account.
make deploy DEPLOYMENT_BUCKET=<YOUR BUCKET NAME> [PROFILE="--profile <YOUR NAMED PROFILE FROM ~/.aws/credentials>"]
By default, this uses sharp-layer
as the stack name. Provide a
STACK_NAME
variable when calling make deploy
to use an alternative name.
For more information, check out:
Tomislav Capan
- These scripts: MIT
- Sharp: https://sharp.pixelplumbing.com/#licensing
- Contained libraries all have separate licenses, check the respective web sites for more information