我创建了一个 Azure devOps Pipeline,其任务是输出人类可读的 Terraform 计划。
我有以下管道任务正在运行而没有警告...
- task: TerraformOutput@1
enabled: true
inputs:
outputFilePath: $(System.DefaultWorkingDirectory)/deployment_layer/network/tfplan'
artifactName: 'tfplan'
我现在收到警告:
##[警告]任务“Terraform Load Output”版本 1 (TerraformOutput@1) 依赖于已终止生命的 Node 版本 (10)。
联系扩展所有者以获取任务的更新版本。任务维护者应查看节点升级指南:https://aka.ms/node-runner-guidance
我查看了该网址,但无法弄清楚他们所说的内容如何与我解决警告的任务相关联。
我将尝试找到一个类似的“任务”,它创建并发布为人类可读的 Terraform 计划选项卡 - 除了“TerraformOutput@1”之外,还有其他人使用不同的任务类型来执行此操作吗?
- task: TerraformOutput@1
enabled: true
displayName: "Create human readbale plan"
inputs:
outputFilePath: '$(System.DefaultWorkingDirectory)/deployment_layer/re_id/tfplan'
artifactName: 'tfplan'
在 Azure DevOps 中使用 TerraformOutput@1 任务时,我会收到相同的警告。
表示管道任务正在使用生命周期结束的节点版本。该警告来自任务本身。
参考TerraformOutput任务配置:task.json
"execution": {
"Node10": {
"target": "src/index.js"
}
}
我们需要联系扩展开发者更新扩展所依赖的节点版本。正如 jessehouwing 所分享的,我们可以在扩展站点中创建问题反馈票。
根据我的测试,这个警告暂时不影响任务的使用。您可以忽略此警告并继续使用。
我将尝试找到一个类似的“任务”,它创建并发布为人类可读的 Terraform 计划选项卡 - 除了“TerraformOutput@1”之外,还有其他人使用不同的任务类型来执行此操作吗?
恐怕没有现成的管道任务(内置或扩展任务)可以实现相同的功能(在“管道”选项卡中显示 terraform 计划输出)。
作为解决方法,我们可以使用 terraform show 命令将 tfplan 文件转换为人类可读的格式,并使用 logging 命令 将文件输出到管道任务。
这是一个例子:
steps:
- task: TerraformTaskV4@4
inputs:
provider: 'azurerm'
command: 'init'
xxx
- task: TerraformTaskV4@4
inputs:
provider: 'azurerm'
command: 'plan'
commandOptions: '-out=tfplan'
environmentServiceNameAzureRM: 'xx'
- task: TerraformTaskV4@4
inputs:
provider: 'azurerm'
command: 'show'
commandOptions: 'tfplan -no-color'
outputTo: 'file'
outputFormat: 'default'
fileName: 'tfplan.md'
environmentServiceNameAzureRM: 'xx'
- bash: |
ls -la
sed -i '1 i\```' tfplan.md
echo '```' >> tfplan.md
echo "##vso[task.uploadsummary]$(System.DefaultWorkingDirectory)/tfplan.md"
结果:
在这种情况下,我们可以在“管道”选项卡中看到人类可读的 terraform 输出。