【发布时间】:2021-10-25 13:28:51
【问题描述】:
目前已将 java lambda 代码打包为 .zip 文件并部署到 AWS Lambda,但由于长时间运行的任务超过了 @987654321,需要迁移到 AWS Batch @
可以使用容器映像部署 java lambda 代码,并将 docker CMD 设置为 Dockerfile 中的处理程序(例如 https://hub.docker.com/r/amazon/aws-lambda-java)。
FROM public.ecr.aws/lambda/java:11
# Copy function code and runtime dependencies from Gradle layout
COPY build/classes/java/main ${LAMBDA_TASK_ROOT}
COPY build/dependency/* ${LAMBDA_TASK_ROOT}/lib/
# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "com.example.LambdaHandler::handleRequest" ]
因此代码仍然可以作为容器映像部署到 AWS Lambda。问题是它仍然是一个 lambda,所以将那个图像用于 AWS Batch 没有任何意义……
大师???鉴于 lambda 逻辑已经过试验和测试:
- 使用 handleRequest 方法转换 lambda 代码以使用 AWS Batch 的最简单方法是什么 -> 可能从 JAR 执行并准备图像以便可以使用 AWS Batch?
- 是否需要一个 main 方法 作为入口点而不是处理程序?
【问题讨论】:
标签: java docker aws-lambda dockerfile aws-batch