我刚刚学习了一些有关Terraform的基础知识,并创建了具有AWS EC2重要性的简单可重用Terraform模块以及一些其他资源(安全组,弹性ip,ssh密钥对等),该资源可在https://github.com/g4s8/docker-worker上获得>
现在,我想在创建时将本地文件复制到EC2实例(我猜测使用file provisioner)。是否可以这样定义文件变量:
module "worker" {
# ...
files = [
{
src: "./file1",
dst: "/home/ec2-user/file1"
},
{
src: "./file2",
dst: "/home/ec2-user/file2"
}
]
}
并根据以下变量创建动态预配器:
resource "aws_instance" "worker" {
# pseudocode:
# for (file : var.files) {
provisioner "file" {
source = file.source
destination = file.destination
}
# }
}
所以我的问题是:是否可以在模块中动态生成预配器,如果可以的话,如何对文件的所有项目进行迭代以创建预配器?我在input variable documentation中找不到与此相关的参考。