AWS lambda 容器 /bin/sh 错误:运行时退出但未提供原因”

Ros*_*nko 1 containers amazon-s3 amazon-web-services docker aws-lambda

我从 AWS lambda 容器中收到此错误Error: Runtime exited without providing a reason 当我在本地运行此容器时,我得到了exit code 0

但是当我在 Lambda 中运行它时,我收到了上面提到的错误exit code 0。

在这两种情况下,备份都会正确创建S3

我的容器运行此命令:

FROM alpine:3.14.2

ARG BUILD_ID
ARG BUILD_DATE
ARG VERSION=0.0.9

LABEL maintainer="Rostyslav Malenko"
LABEL version="$VERSION"
LABEL description="This is custom Alpine Docker Image for the create SQL dump from RDS to S3 directly."
LABEL org.label-schema.build-date=$BUILD_DATE

ENV BUILD_ID=${BUILD_ID} \
    APPLICATION_VERSION=${VERSION} \
    SERVICE_ROLE=backup \
    NUMPROCS_WORKER=1 \
    INSTALL_PACKAGES="gzip mysql-client aws-cli" \
    WORKSD="/tmp"

RUN apk -v --update add --no-cache ${INSTALL_PACKAGES} && \
    rm -rf /var/cache/apk/* 

WORKDIR ${WORKSD}}

CMD /usr/bin/mysqldump --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD} --port=3306 \
    --single-transaction \
    --routines \
    --triggers \
    --events \
    --add-drop-database \
    --opt \
    --add-locks \
    --compress \
    --databases ${DB_NAME} | gzip -9 | aws s3 cp - s3://${S3BUCKETNAME}/$(date +"%m-%d-%Y-%H-%M-%S")_${DB_NAME}.sql.gz ; echo $?
Run Code Online (Sandbox Code Playgroud)

Mar*_*k B 7

AWS Lambda 期望容器镜像实现特定的接口,以便 Lambda 环境可以将 Lambda 调用事件参数传递到容器中,以便 Lambda 能够正确解析响应。

您似乎正在尝试运行未实现所需 AWS Lambda 接口的常规 Docker 映像。您的用例实际上看起来更适合 AWS ECS + Fargate。如果您想使用 Lambda,则需要修改容器或使用提供的 AWS Lambda 基础容器映像之一重建容器。