Azure DevOps中TerraformOutput@1任务Node 10停服警告及替代咨询
替代TerraformOutput@1的可行方案
1. 直接用Terraform CLI命令+脚本任务(推荐)
TerraformOutput@1本质是调用terraform show命令生成可读输出,完全可以用Bash/PowerShell任务直接执行CLI命令,摆脱对旧版本任务的依赖:
Bash任务示例(Linux/macOS代理)
- task: Bash@3 inputs: targetType: 'inline' script: | # 切换到Terraform工作目录 cd $(System.DefaultWorkingDirectory)/deployment_layer/network # 生成无颜色的可读计划输出到文件 terraform show -no-color tfplan > tfplan_readable.txt displayName: '生成人类可读Terraform计划' # 发布生成的可读计划作为工件 - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(System.DefaultWorkingDirectory)/deployment_layer/network/tfplan_readable.txt' ArtifactName: 'tfplan' publishLocation: 'Container'
PowerShell任务示例(Windows代理)
- task: PowerShell@2 inputs: targetType: 'inline' script: | Set-Location $(System.DefaultWorkingDirectory)/deployment_layer/network terraform show -no-color tfplan | Out-File -FilePath tfplan_readable.txt -Encoding utf8 displayName: '生成人类可读Terraform计划' # 发布工件 - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(System.DefaultWorkingDirectory)/deployment_layer/network/tfplan_readable.txt' ArtifactName: 'tfplan' publishLocation: 'Container'
2. 使用微软官方AzureTerraform任务
微软维护的AzureTerraform@1任务基于更新的Node版本,可以结合show命令实现同样效果:
- task: AzureTerraform@1 inputs: command: 'show' workingDirectory: '$(System.DefaultWorkingDirectory)/deployment_layer/network' commandOptions: '-no-color tfplan > tfplan_readable.txt' displayName: '生成可读Terraform计划' # 发布工件 - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(System.DefaultWorkingDirectory)/deployment_layer/network/tfplan_readable.txt' ArtifactName: 'tfplan' publishLocation: 'Container'
3. 自定义格式化输出(可选)
如果需要更美观的格式(比如HTML),可以在脚本中添加格式化逻辑,比如用terraform show -json输出JSON格式,再转成易读的结构化内容:
# 生成JSON格式计划,再转成Markdown表格(需提前安装jq和terraform-docs工具) terraform show -json tfplan | jq '.' | terraform-docs markdown table > tfplan_readable.md
内容的提问来源于stack exchange,提问作者Ian Carrick
相关产品推荐
相关产品推荐

