我正在研究一个模板,以帮助简化我们到本地IIS服务器的部署。用户名和密码存储在Azure密钥保管库中,但是当我在Web App管理任务中使用它们时,无法访问它们。我想我只是语法错误。
要在Azure Key Vault中获取密钥,我正在使用以下任务。这样做的原因是找到了密钥,并且没有给我错误。
- task: AzureKeyVault@1
inputs:
azureSubscription : '_MyServiceConnectionHere_'
KeyVaultName : '_MyVaultNameHere_'
SecretsFilter : '${{ parameters.websiteName }}-AppPoolUsername,${{ parameters.websiteName }}-AppPoolPassword'
这就是我在IIS Web App管理任务中使用它们的方式。 (我在相关部分中缩写了以下内容。)
- task: IISWebAppManagementOnMachineGroup@0
displayName: Update Website and App Pool
inputs:
AppPoolNameForWebsite: ${{ parameters.websiteName }}
DotNetVersionForWebsite: 'No Managed Code'
AppPoolIdentityForWebsite: 'specificUser'
AppPoolUsernameForWebsite: ${{variables['${{parameters.websiteName}}-AppPoolUsername']}}
AppPoolPasswordForWebsite: ${{variables['${{parameters.websiteName}}-AppPoolPassword']}}
AppPoolName: ${{ parameters.websiteName }}
此处,用户名和密码无法解析。如您所见,我正在尝试使用以下语法检索它们:
${{variables['${{parameters.websiteName}}-AppPoolUsername']}}
通过已组成的键名检索变量的正确语法是什么?
答案 0 :(得分:0)
在IISWebAppManagementOnMachineGroup任务中,您只需要使用$(xxx)
即可将变量作为普通变量获取。
${{}}
是编译时语法。您需要首先运行Azure Key Vault任务以使变量在环境中生成。
要在以下任务中使用Azure Key Vault机密,只需使用$(secret_name)。
secret_name是您在Azure Key Vault中创建的一个。
也请查看此博客中的详细示例:Using secrets from Azure Key Vault in a pipeline