在 YAML 中从 KeyVault 引用 SQL 用户名和密码

Referencing SQL Username and Password from KeyVault in YAML

下面我有一个用 YAML 编写的 Azure CI 管道,我已经创建了一个具有 2 个机密(用户名和密码)及其各自的值(管理员和密码)的 KV。现在,我一直在尝试将变量中的秘密引用到 task: SqlAzureDacpacDeployment@1 但它不起作用。

如果我在 SqlUsername 和 SqlPassword 中输入 $Username and $Password,我会得到这个错误 Cannot validate argument on parameter 'Username'.

如果我在 SqlUsername 和 SqlPassword 中输入 '$(Username)'and '$(Password)',我会得到这个错误 Login failed for user '***'.

我应该把什么放在那里或者我如何正确地引用它们?谢谢!

trigger:
- master
 
pool:
  vmImage: 'windows-latest'

variables:    
  $Username: ""
  $Password: ""

steps:
- task: AzureKeyVault@1
  displayName: 'Get credentials from Key-Vault'
  inputs:
    azureSubscription: 'Test-SC'
    KeyVaultName: 'Test-KV'
    SecretsFilter: '*'
    RunAsPreJob: false

- task: SqlAzureDacpacDeployment@1
  displayName: 'Reg Database DDL Script'
  inputs:
    SqlUsername: $Username
    SqlPassword: $Password
  enabled: true

找到答案,所以设置 RunAsPreJob: trueSqlUsername: '$(Username)' SqlPassword: '$(Password)' 确保您添加了访问策略并且 KV 和 azureSubscription 的名称都是正确的