当使用 Docker 支持的 AWS Lambda 时,如何使用 CLI“部署新映像”?

Mat*_*tin 4 aws-cli boto3 aws-lambda

我已经使用 Terraform 部署了 lambda。它成功指向 ECR 并且映像以预期的 ENTRYPOINT 运行。但是,每次我将新代码推送到 ECR 时,我都必须转到 Web 控制台,单击“部署新映像”,否则 lambda 会运行旧映像。

另外,我尝试使用:latestas 标签,但这似乎没有帮助。我能够通过上传强制生成新图像:2:3然后手动将 lambda 指向这些图像。如果有一种方法可以使用标签:latest,那就太方便了。

我很乐意使用 bash 或 boto 来完成此操作,但从我阅读的文档来看,没有明显的方法可以做到这一点。

这个类似的问题已被关闭,因为 lambda 过去不受 docker images 支持

小智 6

使用 aws cli 更新 lambda 函数。

假设您有一个配置文件或在您的环境中设置了适当的凭据,您可以调用aws lambda update-function-code并提供所需的 image-uri。由于您已经定义了 uri,因此您可以在函数中查询该值。

aws lambda update-function-code --function-name $MY_FUNC --image-uri $(aws lambda get-function --function-name $MY_FUNC | jq -r '.Code.ImageUri')
Run Code Online (Sandbox Code Playgroud)

我正在使用 jq 来提取 ImageUri,但我确信还有很多其他方法和意见关于如何进行此操作。

如果您查看返回的整个 .Code 对象,aws lambda get-function --function-name $MY_FUNC您可以检查 sha256 并查看它反映了更新后的函数图像。

当前文档:AWS CLI 更新函数代码文档