aws-cdk - 使用 AssetStaging 作为代码源时,每次部署时 DockerImageCode 哈希都会发生变化
问题描述
我们有一个 CDK 应用程序,它使用 AssetStaging 构造将相关文件夹移动到临时文件夹,然后我们使用 DockerImageCode 创建一个引用复制文件夹的 lambda 函数。所以是这样的:
self.assets= AssetStaging(
self,
"CopiedAsset",
source_path=str(Path(".").absolute().parent.parent / "python_packages"),
exclude=[
"exclude_1/**/*",
"exclude_2/**/*",
)
self.lambda = _lambda.DockerImageFunction(
self,
"Lambda",
code=_lambda.DockerImageCode.from_image_asset(
directory=self.assets.absolute_staged_path,
file="lambda/Dockerfile",
cmd=["/var/task/lambda/handler.handler"],
exclude=docker_exclude_dirs,
),
)
但是,从 CDK 的源代码(此处)看来,暂存目录的路径名(self.assets.absolute_staged_path
)是来自 的源哈希的一部分DockerImageFunction
,这意味着每次部署时都会重新部署 Docker 映像(self.assets
因为随机的)
有没有办法解决?
解决方案
推荐阅读
- javascript - 如何将本地 json 文件数据导入我的 JavaScript 变量?
- angular - 导入自定义库时出现编译错误
- mysql - 将查询输出连接到 mysql 工作台中的 csv 文件?
- ssh - SSH 无密码:martin@XXX.XXX.XXX.XXX:权限被拒绝(公钥、gssapi-keyex、gssapi-with-mic)
- arrays - Json 列表/数组案例中的 JOLT TRANSFORM
- html - 在服务器上使用应用程序时图像抛出 404 错误
- javascript - html表单在mysql中插入数据的数据提交中断
- javascript - 循环遍历数组并填充矩阵 - JS
- python - 我正在尝试打开扩展名为 .ml 的文件
- jsonpath - jsonpath查找所有键离开包含一个字符串