【问题标题】:How to remove Terraform double quotes?如何删除 Terraform 双引号?
【发布时间】:2021-06-30 06:26:12
【问题描述】:

我使用 terraform 创建了一个 YML 管道。 它使用脚本任务并在输出中返回 Web 应用程序名称

steps:
- script: | 
    [......] 
    terraform apply -input=false -auto-approve
    
    # Get the App Service name for the dev environment.
    WebAppNameDev=$(terraform output appservice_name_dev)
    
    # Write the WebAppNameDev variable to the pipeline.
    echo "##vso[task.setvariable variable=WebAppNameDev;isOutput=true]$WebAppNameDev"
  name: 'RunTerraform'

任务运行良好,但是当我部署 web 应用程序时它崩溃了,因为似乎变量 $WebAppNameDev 有双引号。

      - task: AzureWebApp@1
        displayName: 'Azure App Service Deploy: website'
        inputs:
          azureSubscription: 'MySubscription'
          appName: $(WebAppNameDev)
          package: '$(Pipeline.Workspace)/drop/*.zip'

错误看起来像:

 Got service connection details for Azure App Service:'"spikeapp-dev-6128"'
 ##[error]Error: Resource '"spikeapp-dev-6128"' doesn't exist. Resource should exist before deployment.

如何删除双引号或修复 terraform 输出?

【问题讨论】:

  • The terraform docs 建议在自动化脚本中使用环境变量TF_IN_AUTOMATION 时设置它。我不确定这是否能解决问题,但值得一试。
  • 谢谢。我做了尝试,但似乎没有任何变化

标签: yaml terraform azure-pipelines


【解决方案1】:

我通过在 terraform 输出中添加 --raw 参数来解决。

WebAppNameDev=$(terraform output --raw appservice_name_dev)

参考。 https://www.terraform.io/docs/cli/commands/output.html

【讨论】:

  • 太棒了!感谢您在这里分享您的解决方案,您可以Accept it as an Answer,这样可以帮助遇到相同问题的其他社区成员,我们可以存档此线程,谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-12-15
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2018-02-02
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
相关资源
最近更新 更多