如何在terraform中定义没有触发器选项的执行顺序
理解它按照terraform的main.tf中定义的顺序运行有意义吗 我理解,为了定义terraform上的顺序,有必要描述触发器选项 但是,如果它不能像这个数据“外部”那样使用触发器选项,我如何定义执行顺序 例如,我希望按如下顺序运行如何在terraform中定义没有触发器选项的执行顺序,terraform,Terraform,理解它按照terraform的main.tf中定义的顺序运行有意义吗 我理解,为了定义terraform上的顺序,有必要描述触发器选项 但是,如果它不能像这个数据“外部”那样使用触发器选项,我如何定义执行顺序 例如,我希望按如下顺序运行 get_my_public_ip -> ec2 -> db -> test_http_status main.tf如下所示 data "external" "get_my_public_ip" { program = ["sh", "sc
get_my_public_ip -> ec2 -> db -> test_http_status
main.tf如下所示
data "external" "get_my_public_ip" {
program = ["sh", "scripts/get_my_public_ip.sh"]
}
module "ec2" {
...
}
module "db" {
...
}
data "external" "test_http_status" {
program = ["sh", "scripts/test_http_status.sh"]
}
我只能就您提供的代码提供反馈,但确保数据库准备就绪后运行
test\u status
命令的一种方法是在数据库中使用dependens\u
但正如@JimB已经提到的,terraform不是程序性的,因此无法确保顺序。terraform配置是声明性的,而不是程序性的。资源声明的顺序与执行的顺序无关。唯一具有“触发器”属性的资源是
null\u资源
,但资源之间的引用创建了一个依赖项。依赖于\u可以与任何资源一起使用?还是必须是模块?它可以与任何资源一起使用-
resource "null_resource" "test_status" {
depends_on = ["module.db.id"] #or any output variable
provisioner "local-exec" {
command = "scripts/test_http_status.sh"
}
}