【发布时间】:2022-01-12 08:45:17
【问题描述】:
这是我的 terraform 代码:
resource "aws_s3_bucket_object" "file_upload" {
for_each = fileset("init_conf/", "*")
bucket = aws_s3_bucket.conf_bucket.id
acl = "private"
key = "config/${local.service_name}/${each.value}"
source = "init_conf/${each.value}"
source_hash = filemd5("init_conf/${each.value}")
kms_key_id = "arn:aws:kms:##################:###################"
server_side_encryption = "aws:kms"
tags = merge(tomap({
"Name" = local.service_name,
}), local.default_tags)
}
resource "null_resource" "cert" {
triggers = {
always_run = "${timestamp()}"
}
provisioner "local-exec" {
command = "openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout ${path.cwd}/init_conf/${var.cname}.key -out ${path.cwd}/init_conf/${var.cname}.crt"
}
}
terraform apply 执行后,首先刷新:resource "aws_s3_bucket_object" "file_upload" 的状态,然后才执行:provisioner "local-exec"。然而,我想要的是:provisioner“local-exec”首先执行,它为我生成一个证书并存储它,然后才使用资源“aws_s3_bucket_object”“file_upload”上传文件。
有人可以帮忙吗?
【问题讨论】:
-
在
aws_s3_bucket_object上添加depends_on属性。 -
进展如何?还不清楚你能做什么?
标签: amazon-web-services terraform terraform-provider-aws