了解它按照terraform的main.tf中定义的顺序运行是否有意义?
我了解必须描述触发器选项才能定义terraform的顺序。
但是,如果无法将其用作触发选项(如“外部”数据),该如何定义执行顺序?
例如,我想按以下顺序运行。
get_my_public_ip -> ec2 -> db -> test_http_status
Run Code Online (Sandbox Code Playgroud)
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"]
}
Run Code Online (Sandbox Code Playgroud)
我只能提供有关您提供的代码的反馈,但是确保test_status
数据库准备就绪后才能运行命令的一种方法是depends_on
在null_resource中使用
resource "null_resource" "test_status" {
depends_on = ["module.db.id"] #or any output variable
provisioner "local-exec" {
command = "scripts/test_http_status.sh"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,正如@JimB已经提到的,terraform不是程序性的,因此无法确保顺序。
归档时间: |
|
查看次数: |
5521 次 |
最近记录: |