我是 Terraform 新手,正在开发一个在 AWS 上使用 Docker/AWS ECR/ECS 基础设施的项目。我在这篇文章中看到作者指定了类似的内容
data "aws_ecs_task_definition" "test" {
task_definition = "${aws_ecs_task_definition.test.family}"
depends_on = ["aws_ecs_task_definition.test"]
}
resource "aws_ecs_task_definition" "test" {
family = "test-family"
# ...
}
Run Code Online (Sandbox Code Playgroud)
为什么他同时使用数据源和资源aws_ecs_task_definition?经过几个小时的深入研究官方文档以及谷歌搜索文章后,我找不到解释或类似的示例。
我稍后看到当他设置服务时,他使用以下代码来引用它们:(同样,我不确定这里发生了什么)
task_definition = "${aws_ecs_task_definition.test.family}:${max("${aws_ecs_task_definition.test.revision}", "${data.aws_ecs_task_definition.test.revision}")}"
我现在很困惑在同一类型上同时使用数据和资源与仅使用资源之间有什么区别。生命周期方面有什么区别吗?
我现在正在尝试为我的 docker 映像创建一个 AWS ECR,并且我希望 terraform 来管理它(创建/更新/销毁),我是否应该同时使用该类型的数据源和资源aws_ecr_repository?