Last active
June 24, 2024 12:21
-
-
Save bensie/56f51bc33d4a55e2fc9a to your computer and use it in GitHub Desktop.
ImageMagick Static Binaries for AWS Lambda
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Must be run on an Amazon Linux AMI that matches AWS Lambda's runtime which can be found at: | |
# https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html | |
# | |
# As of May 21, 2019, this is: | |
# Amazon Linux AMI 2018.03.0 (ami-0756fbca465a59a30) | |
# | |
# You need to prepend PATH with the folder containing these binaries in your Lambda function | |
# to ensure these newer binaries are used. | |
# | |
# In a NodeJS runtime, you would add something like the following to the top of | |
# your Lambda function file: | |
# process.env['PATH'] = process.env['LAMBDA_TASK_ROOT'] + '/imagemagick/bin:' + process.env['PATH'] | |
# | |
# This works with both ImageMagick v6.x and v7.x | |
# version=6.9.10-23 | |
version=7.0.8-45 | |
sudo yum -y install libpng-devel libjpeg-devel libtiff-devel gcc | |
curl -O https://imagemagick.org/download/ImageMagick-$version.tar.gz | |
tar zxvf ImageMagick-$version.tar.gz | |
cd ImageMagick-$version | |
./configure --prefix=/var/task/imagemagick --enable-shared=no --enable-static=yes | |
make | |
sudo make install | |
tar zcvf ~/imagemagick.tgz /var/task/imagemagick/ |
@ClickheadZ Facing same issue, were you able to find a fix?
Thanks~ It's work for me !!! But I found a small problem while using it:
curl download url: curl -O https://imagemagick.org/download/ImageMagick-$version.tar.gz , it will return 404 http status...
the ture url is: https://download.imagemagick.org/archive/ImageMagick-$version.tar.xz
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@samkit-jain Thanks for the response! I had not added it properly, I repackaged and deployed a zip now and I'm getting a different error, not sure what I did wrong.
Here are the steps I took to package Wand:
In lambda console, my lambda structure now looks like this:
And when i try
from wand.image import Image
I now get the error message :Unable to import module 'lambda_function': MagickWand shared library not found.\nYou probably had not installed ImageMagick library
despite the fact that I have deployed the imagemagick/ghostscript zip as a layer for this lambda and added it. Did I do something wrong in the Wand packaging or is the problem my lambda layer?