Поставщики должны выполняться как часть ресурса, а не как ресурс верхнего уровня.
Обычно это выполняется для экземпляра, например, в примерах, приведенных в вышеупомянутых связанных документах.:
resource "aws_instance" "web" {
# ...
provisioner "local-exec" {
command = "echo ${self.private_ip} > file.txt"
}
}
Который записывает IP-адрес экземпляра в файл, локальный в том месте, где запускается Terraform.
Если у вас вообще нет ссылки на ресурс (выпросто хотите, чтобы что-то происходило независимо от изменения ресурсов) вы можете использовать null_resource
, который предназначен для этой цели.
Как уже упоминалось в local-exec
документах Вы можете использовать это так:
resource "null_resource" "example2" {
provisioner "local-exec" {
command = "Get-Date > completed.txt"
interpreter = ["PowerShell", "-Command"]
}
}