【发布时间】:2021-08-17 17:55:51
【问题描述】:
我是 AWS 世界的新手。我正在开发一个构建无服务器应用程序的项目,作为其中的一部分,我创建了 4 个运行良好的 lambda。
接下来我尝试使用 CDK 创建部署管道;下面是我想要做的。
-
使用包含所有 lambda 代码的代码创建 docker 映像
-
从同一图像创建 4 个不同的 lambda,只需覆盖 docker 图像中的 CMD 并提及 lambda 处理程序
我已在本地设置 CDK 并能够创建堆栈,一切正常。
下面是我的代码sn-p
--创建docker镜像
asset_img = aws_ecr_assets.DockerImageAsset(
self,
"test_image",
directory=os.path.join(os.getcwd(), "../mysrc")
)
--从 docker 镜像创建 lambda
aws_lambda.DockerImageFunction(
self,
function_name="gt_from_image",
code=_lambda.DockerImageCode.from_ecr(
self,
repository=asset_img.repository,
tag="latest")
)
以下是我遇到的错误
TypeError: from_ecr() got multiple values for argument 'repository'
我不确定如何引用创建的图像并定义 lambda。
已解决:以下是解决方案
asset_img = _asset.DockerImageAsset(self, "test_image", directory=os.path.join(os.getcwd(), "../gt"))
_lambda.DockerImageFunction(self, id='gt_from_image', function_name="gt_from_image_Fn",
code=_lambda.DockerImageCode.from_ecr(
repository=asset_img.repository,
tag=asset_img.source_hash))
【问题讨论】:
标签: amazon-web-services aws-lambda aws-cdk amazon-ecr