gpt4 book ai didi

docker - 如何在Terraform中声明和引用ECR存储库而又不损害其内容?

转载 作者:行者123 更新时间:2023-12-02 20:47:08 28 4
gpt4 key购买 nike

我正在构建Terraform配置,以将一些容器部署到AWS ECS。显然,我必须将Docker镜像推送到ECR。我在ECR中创建了一个存储库并推送了图像。

现在,我正在自动化。如果我这样声明aws_ecr_repository:

data "aws_ecr_repository" "service" {
name = "myrepository"
}

然后Terraform将对其进行管理。我最终可以像这样引用它
image = "${aws_ecr_repository.myrepository.repository_url}"

在建立ECS任务定义的过程中。

我的印象是,当我在开发周期中运行 terraform destroy时,Terraform将删除此存储库-或在包含图像时失败。这会很糟糕,因为 terraform destroy要么永远无法完成,要么我必须清除ECR存储库以使该命令成功完成。

我怎样才能最好地引用一个已经存在的ECR存储库,但是我似乎不希望Terraform进行管理,因为Terraform可能会破坏保存在Terraform之外的数据,即由发布CI作业上传的Docker镜像?

最佳答案

如果您不希望Terraform对其进行管理,请使用data source。这样可以获取如下数据:

data "aws_ecr_repository" "example" {
name = "example"
}

然后像这样引用URL:
${data.aws_ecr_repository.example.repository_url}

关于docker - 如何在Terraform中声明和引用ECR存储库而又不损害其内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50705590/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com