Terraform 本地_文件和提供程序之间的地形依赖性问题

Terraform 本地_文件和提供程序之间的地形依赖性问题,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,Rabbitmq terraform supportcacert_file作为参数,是指向自定义CA的文件路径。我的自定义CA存储在AWS ssm参数中。我需要获取它,将它放入一个文件,并使用cacert\u file的文件值路径 因此,首先我获取值: data "aws_ssm_parameter" "rabbitmq_cacert_file" { name = "/shared/${var.metaenv}/rabbitmq/ca&quo

Rabbitmq terraform support
cacert_file
作为参数,是指向自定义CA的文件路径。我的自定义CA存储在AWS ssm参数中。我需要获取它,将它放入一个文件,并使用
cacert\u file
的文件值路径

因此,首先我获取值:

data "aws_ssm_parameter" "rabbitmq_cacert_file" {
  name = "/shared/${var.metaenv}/rabbitmq/ca"
}
然后,我使用此值创建一个临时文件:

resource "local_file" "rabbitmq_ca" {
  content  = data.aws_ssm_parameter.rabbitmq_cacert_file.value
  filename = "${path.module}/rabbitmq_cacert_file"
}
最后,我在我的提供者中使用此文件:

provider "rabbitmq" {

  endpoint        = "https://myhost:8443"
  username        = myuser
  password        = mypass

  cacert_file     = local_file.rabbitmq_ca.filename
}
但我在创建执行计划时遇到问题:

Error: open ./rabbitmq_cacert_file: no such file or directory
  on main.tf line 28, in provider "rabbitmq":
  28: provider "rabbitmq" {
我认为这是一个依赖性问题:当提供者的配置试图读取文件时,文件尚未创建


由于无法添加属性,是否有办法解决我的问题?

如果
local\u file.rabbitmq\u ca.filename
是一个导出属性,那么这里将存在一个隐式依赖项。不幸的是,这是资源的一个论点。这应该只是初始应用的问题,对吗?这里的解决方法是在完整的计划和应用之前,可能
target
rabbitmq_ca资源,这不是很好,但对您来说很有用。
target
资源确实是可能的,但在我的情况下并不适合,因为terraform流是CI/CD管道的一部分,而不是所有rabbitmq提供者。无论如何,谢谢你的主意。