Open HanXHX opened 3 years ago
Hello,
while trying to make chromium run on aws I found this: https://aws.amazon.com/blogs/compute/upcoming-changes-to-the-python-sdk-in-aws-lambda/
to solve the above problem. Not fully succesfull yet, but I thought I would post it anyway if it helps anyone.
Br,
Mikko
Did y'all figure this out?
I've solved it by using a custom docker image for lambda :shrug:
@fprochazka How exactly? Did you use this package?
You can find all the required info here: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-image.html
my Dockerfile is derived from the AWS documentation:
ARG BUILD_IMAGE_BASE
FROM ${BUILD_IMAGE_BASE} as builder
RUN set -ex \
&& yarn install --non-interactive --frozen-lockfile --no-progress \
&& yarn run package
FROM docker.cogvio.dev/cogvio/dev/node-js:12-alpine
RUN set -ex \
&& apk --no-cache upgrade \
&& apk add --no-cache --update chromium unzip nss curl
ENV LAMBDA_TASK_ROOT=/var/task
ENV LAMBDA_RUNTIME_DIR=/var/runtime
ENV PATH="${LAMBDA_TASK_ROOT}/node_modules/.bin:${PATH}"
WORKDIR ${LAMBDA_TASK_ROOT}
# override global config to ensure local repository is at predictable path
ENV YARN_CACHE_FOLDER=/var/cache/yarn
RUN mkdir -p $YARN_CACHE_FOLDER
COPY --from=builder /srv/.serverless/pdf.zip ${LAMBDA_TASK_ROOT}
RUN set -ex \
&& unzip -q pdf.zip \
&& rm -f pdf.zip \
&& du -sh ${LAMBDA_TASK_ROOT} \
&& chmod -R 0777 /tmp
ENTRYPOINT ["/usr/local/bin/npx", "/var/task/node_modules/aws-lambda-ric/bin/index.js"]
CMD [ "src/handlers/pdf.default" ]
The builder step just builds the nodejs app, nothing special there. And as you can see, I'm then installing chromium
directly from alpine repositories, as I was able to test locally, that it works in headless correctly.
In the app itself, I'm still using serverless
, but I've removed the dependency on this package, as it's not needed anymore and I can just start the chromium in headless directly and can get rid of a bunch of the workarounds for Amazon Linux. But it was a pain in the butt to get it working smoothly, not gonna lie.
Hi,
I can't start chromium on AWS Lambda. It seems, the shipped chromium version is not statically compiled with
libnss3.so
.Used code:
Logs under AWS:
Environement:
@serverless-chrome/lambda
: 1.0.0-57.2Best,
EM