当我拆分 yaml 以制作模板时,我在 Azure devops 管道中收到此错误
存在资源授权问题:“管道无效。作业验证:步骤 TerraformTaskV1 输入 backendServiceArm 引用服务连接 azurerm 无法找到。服务连接不存在或未被授权使用。有关授权详情,请参阅到https://aka.ms/yamlauthz。”
这里给出了一个解决方案来删除任务并再次添加。但这对我不起作用。
当我在一个 yaml 文件中使用 terraform 时,它起作用了。
stages:
- stage: validate
jobs:
- job: validate
continueOnError: false
steps:
- task: TerraformInstaller@0
displayName: 'install'
inputs:
terraformVersion: '0.12.26'
- task: TerraformTaskV1@0
displayName: init
inputs:
provider: 'azurerm'
command: 'init'
backendServiceArm: 'azure-spn'
backendAzureRmResourceGroupName: 'terraform-rg'
backendAzureRmStorageAccountName: 'adsstatetr'
backendAzureRmContainerName: 'sktfcontainer'
backendAzureRmKey: 'terraform.tfstate'
- task: TerraformTaskV1@0
displayName: validate
inputs:
provider: 'azurerm'
command: 'validate'
当我一分为二(模板)
stages:
- stage: validate
jobs:
- template: terraform-validate.yml
parameters:
version: '0.12.26'
sp: 'azurerm'
rg: 'terraform-rg'
sg: 'adsstatetr'
sgContainer: 'sktfcontainer'
skey: 'terraform.tfstate'
它失败并给出了上面写的错误!
parameters:
version: ''
sp: ''
rg: ''
sg: ''
sgContainer: ''
skey: ''
jobs:
- job: validate
continueOnError: false
steps:
- task: TerraformInstaller@0
displayName: 'install'
inputs:
terraformVersion: '0.12.26'
- task: TerraformTaskV1@0
inputs:
provider: 'azurerm'
command: 'init'
backendServiceArm: '${{ parameters.sp }}'
backendAzureRmResourceGroupName: '${{ parameters.rg }}'
backendAzureRmStorageAccountName: '${{ parameters.sg }}'
backendAzureRmContainerName: '${{ parameters.sgContainer }}'
backendAzureRmKey: '${{ parameters.skey }}'
它还显示了一个奇怪的授权资源。单击“批准”也无法解决。又是为什么?如果服务连接有任何问题,为什么我的单文件 yaml 应该工作?这里没有审批问题!