我有一个要部署到 AWS 的标准 2 层应用程序。作为此部署的一部分,我需要将配置文件写入 EC2 实例。此配置文件包含数据库 (RDS) 设置。现在,我将此文件定义为 EC2 实例中的提供程序。所以 terraform 所做的是,在 RDS 100% 启动并运行(大约需要 5 分钟)之前,它甚至不会开始构建 EC2 实例。这使事情变得非常缓慢。
有没有办法可以在 EC2 实例的上下文之外创建文件资源,以便并行创建 RDS 实例和 EC2 实例?还是我应该使用另一种模式?
这是一些代码位:
resource "aws_instance" "foo" {
ami = "${lookup(var.AMIS, var.AWS_REGION)}"
instance_type = "t2.micro"
//setup the config file
provisioner "file" {
destination = "foo/config.json"
content = "${data.template_file.config_file.rendered}"
...
}
data "template_file" "config_file" {
template = "${file("config.json.tmpl")}"
vars {
mysql_pass = "${var.MYSQL_PASSWORD}"
mysql_addr = "${aws_db_instance.mysql.endpoint}"
}
}
resource "aws_db_instance" "mysql" {
allocated_storage = 20
...
}