如何删除 Terraform 双引号?

Gra*_*chu 12 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'
Run Code Online (Sandbox Code Playgroud)

该任务工作正常,但当我部署 web 应用程序时,它崩溃了,因为变量似乎$WebAppNameDev有双引号。

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

错误看起来像:

 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.
Run Code Online (Sandbox Code Playgroud)

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

Gra*_*chu 35

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

WebAppNameDev=$(terraform output -raw appservice_name_dev)
Run Code Online (Sandbox Code Playgroud)

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