Regex terraform本地exec中的转义url

Regex terraform本地exec中的转义url,regex,bash,sed,terraform,Regex,Bash,Sed,Terraform,假设我有:- variable "url" { value = "https://sqs.eu-central-1.amazonaws.com/11111111/my_queue.fifo" } provisioner "local-exec" { command = <<-EOT sed -i "s/URL.*:.*/URL: $url/g" "./test.yaml" EO

假设我有:-

variable "url" {
  value = "https://sqs.eu-central-1.amazonaws.com/11111111/my_queue.fifo"
}
provisioner "local-exec" {
command = <<-EOT
  sed -i "s/URL.*:.*/URL: $url/g" "./test.yaml"
EOT
}

我想知道如何用terraform的URL变量替换我的
URL:“
元素?”?我尝试了很多次,但它返回了regex错误。逃离地狱:cry

测试中设置
url
最简单的方法是使用。在这种情况下,您的
test.yaml
将是:

kind: ConfigMap
apiVersion: v1
metadata:
  name: test
  namespace: default
data:
  URL: ""
kind: ConfigMap
apiVersion: v1
metadata:
  name: test
  namespace: default
data:
  URL: "${url}"
以及地形代码:

variable "url" {
  default = "https://sqs.eu-central-1.amazonaws.com/11111111/my_queue.fifo"
}

output "test" {  
  value = templatefile("./test.yaml", {url = var.url})
}

我想您所需要的就是
sed-I“s,URL.*:*,URL:$URL,g.”/test.yaml“
(假设
中从来没有出现过
$URL
)。或者,将其转义以用于
sed
替换模式。请参见此操作是否仅适用于.yaml文件而不是tf文件,我尝试过这样做,但它给了我错误``对资源类型的引用后面必须至少有一个属性访问,并指定资源名称```@BilalBayasut是的,它与
yaml
一起工作。答案中给出的例子是工作一。生活更安全,谢谢you@BilalBayasut没问题。很高兴它成功了:-)