一年前,AWS宣布支持 Cotainer Images。這個想法是你可以在 Lambda 中運行你的 Docker 鏡像。影像可以基于提供的基本影像之一創建,也可以完全從頭開始。第一種方法只需要實作一個 handler,就像使用常規 Lambda 函式一樣,而使用第二種方法構建影像需要實作 Lambda Runtime API。
基于提供的基礎鏡像構建鏡像更簡單,檔案中給出了Gradle的示例:
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" ]
task copyRuntimeDependencies(type: Copy) {
from configurations.runtimeClasspath
into 'build/dependency'
}
build.dependsOn copyRuntimeDependencies
但是我已經在使用Gradle Shadow Plugin,我不喜歡僅僅為了復制依賴而引入任務的想法。它看起來像一個黑客。
我可以使用影子 JAR 來構建 Java AWS Lambda 容器映像嗎?
uj5u.com熱心網友回復:
事實證明你可以!跳過將類復制到$LAMBDA_TASK_ROOT完全,并僅將單個胖陰影 jar 復制到$LAMBDA_TASK_ROOT/lib:
FROM amazon/aws-lambda-java:latest
COPY build/libs/build-all.jar ${LAMBDA_TASK_ROOT}/lib/
CMD [ "com.example.LambdaHandler::handleRequest" ]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/315024.html
標籤:码头工人 摇篮 aws-lambda
