Azure应用程序配置:正在获取arm模板中的PrimaryKey



我已经提取了属于Azure应用程序配置预览版的ARM模板,并将其设置到我们的IaC存储库中-到目前为止还不错。

我们的下一个逻辑步骤是将AppConfiguration.PrimaryKey插入我们的密钥库。然而,我不知道这处房产的名称,也无法在网上找到任何有关该主题的信息。此外,我看不到resources.azure.com中列出的AppConfiguration/configurationStores类型(假设它是,因为它仍在公共预览中(。

有人知道如何引用主键(可能还有只读主键(,这样我就可以通过arm模板中的"outputs"变量引用它们了吗?

然后我可以让Az Cli/Az Powershell将秘密插入我们的密钥库,我们就可以实现IaC 的完全自动化

我没能弄清楚这一点。

然而,通过在IaC脚本中使用az-cli命令(它无论如何都会调用驻留在azure blob存储中的arm模板(,我避免了这个问题:

$connStrings = az appconfig credential list -n $configName| ConvertFrom-Json 
$readOnlyConnString = ($connStrings | Where {$_.name -eq "Primary Read Only"}).connectionString
$primaryConnString = ($connStrings | Where {$_.name -eq "Primary"}).connectionString
#then
az keyvault secret set --vault-name $kvName --name $keyNameRO --value $readOnlyConnString
az keyvault secret set --vault-name $kvName --name $keyNamePrimary --value $primaryConnString

对于ARM模板,我执行了以下操作。listkeys函数返回与键有关的所有值的完整列表。这很难弄清楚。我希望它能有所帮助。

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"configurationStores_instance_name": {
"defaultValue": "ac-instance",
"type": "String"
}
},
"variables": {
"apiVersionVar": "[providers('Microsoft.AppConfiguration', 'configurationStores').apiVersions[0]]",
"resourceId": "[resourceId('Microsoft.AppConfiguration/configurationStores', parameters('configurationStores_instance_name'))]",
},
"resources": [
{
"type": "Microsoft.AppConfiguration/configurationStores",
"apiVersion": "2019-10-01",
"name": "[parameters('configurationStores_instance_name')]",
"location": "northcentralus",
"sku": {
"name": "standard"
},
"properties": {}
}
],
"outputs": {
"AppConfigEndpoint": {
"type": "string",
"value": "[reference(parameters('configurationStores_instance_name')).endpoint]"
},
"AppConfigKeys": {
"type": "Array",
"value": "[listkeys(variables('resourceId'), variables('apiVersionVar')).value]"
}
}

}

希望这能有所帮助!

相关内容

  • 没有找到相关文章

最新更新