我的 PowerShell 脚本中有以下内容:
foreach ($row in $csv) {
# split the key into Key Vault name and secret name
$keyParts = $row.key -split '\|'
$functionAppName = $keyParts[0]
$settingName = $keyParts[1]
$value = $row.value
if ($value -match '^https://.*\.vault\.azure\.net/secrets/.*') {
$value = "@Microsoft.KeyVault(SecretUri=$value)"
}
write-host "Setting $settingName for $functionAppName to $value"
az functionapp config appsettings set --resource-group $rg --name $functionAppName --settings "$settingName=$value"
}
写入主机输出看起来不错:
将 myapp 的 mysetting 设置为 @Microsoft.KeyVault(SecretUri=https://mykv.vault.azure.net/secrets/ServiceBusConnectionString/)
但是,当我使用 Azure 门户检查插入的值时,我可以看到尾随右括号已被截断 - 所以我已经
@Microsoft.KeyVault(SecretUri = https://mykv.vault.azure.net/secrets/ServiceBusConnectionString/
下面的
script
对我有用,尝试集成到您的脚本中:
$rithvalue = "https://rithtest.vault.azure.net/secrets/ServiceBusConnectionString/"
if ($rithvalue -match '^https://.*\.vault\.azure\.net/secrets/.*') {
$rithvalue = "@Microsoft.KeyVault(SecretUri=$rithvalue)"
}
$rithsetting="testsetting"
az functionapp config appsettings set --name "rithwik76" --resource-group "testrg" --settings "$rithsetting=$rithvalue"
输出: