我正在嘗試使用 Terraform 部署 ECS,并且在我執行 terraform apply 時拋出了上述錯誤。請幫幫我。
這是 main.tf 檔案中的代碼塊
resource "null_resource" "push" {
provisioner "local-exec" {
command = <<EOF
aws ecr get-login-password --region "$region" | docker login --username AWS --password-stdin "$ecr_fqdn"
docker tag "servian/techchallengeapp:latest" "$repository"
docker push "$repository:latest"
docker logout "$ecr_fqdn"
EOF
environment = {
ecr_fqdn = regex("^([^/]*)/", aws_ecr_repository.ecs.repository_url).0
region = var.region
repository = aws_ecr_repository.ecs.repository_url
}
}
depends_on = [aws_ecr_repository.ecs]
}
來自 variable.tf 檔案的代碼塊
variable "region" {
description = "Region to deploy app"
default = "ap-southeast-2"
}
請在附圖中找出錯誤
地形誤差
uj5u.com熱心網友回復:
甲${ ... }序列是在Terraform的配置語言,其評估所述標記之間給出的運算式的插值。Unix shell 通常使用$..
根據官方檔案,command在 shell 中進行評估,并且可以使用環境變數或 Terraform 變數。因此,基本上,您要實作的目標應該從根本上起作用。
現在,讓我們看一下錯誤:
Provided region_name '"$region"' doesn't match a supported format."
請從環境變數中洗掉雙引號,然后重試。
如果失敗,請設定TF_LOG為日志級別TRACE并重試。另外,請直接粘貼錯誤而不是螢屏截圖。
祝你好運!
uj5u.com熱心網友回復:
首先嘗試添加echo $region, 以了解在您的environment部分中分配了哪個值區域。
正如本討論中所見,命令本身可能需要使用'$region'代替"$region",以避免過早地進行變數擴展(即在定義時command,而不是在執行時)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/401888.html
標籤:码头工人 地形 亚马逊-ecs terraform-provider-aws
下一篇:從JSON生成csv檔案
