yaml - 如何删除 Terraform 双引号?

标签 yaml terraform azure-pipelines

我使用 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'
任务工作正常,但是当我部署 webapp 时它崩溃了,因为它看起来是可变的 $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 输出?

最佳答案

我通过添加 --raw 解决了地形输出的参数。

WebAppNameDev=$(terraform output --raw appservice_name_dev)
引用https://www.terraform.io/docs/cli/commands/output.html

关于yaml - 如何删除 Terraform 双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66935287/

相关文章:

azure - 使用服务主体从 DevOps Pipeline 调用 Databricks API

git - Azure DevOps - 条件/表达式允许我跳过阶段内的任务

azure-devops - VSTS - 设置 $(Rev :. r ) 起始值

azure - Azure DevOps 发布管道中的 Node.js 程序?

mysql - 更改多个数据库的连接名称

google-cloud-platform - GCP 上 terraform 的最低权限集

azure - Terraform NSG 使用 for_each 从多个模块输出规则

java - Spring Boot中一个类的多个配置树

configuration - 如何解决Prometheus错误 'role missing (one of: pod, service, endpoints, node)'

terraform - count=0 的 ACM 证书且 aws_acm_certificate_validation 由于 for_each 而失败