Вопрос был моим последним средством, и сразу после того, как я опубликовал это, я нашел ответ здесь: https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references#reference-syntax (в документации) "[concat('@Microsoft.KeyVault(SecretUri=', reference(variables('storageConnectionStringResourceId')).secretUriWithVersion, ')')]"
.
РЕДАКТИРОВАТЬ Следуя вышеупомянутому, вы можете ссылаться на секрет в шаблоне ARM и получить URL-адрес секрета с включенной версией.
Создать секрет:
{
"type": "Microsoft.KeyVault/vaults/secrets",
"name": "[concat(variables('keyVaultName-v'),'/', variables('queueStorageConnectionStringSecretName-v'))]",
"apiVersion": "2018-02-14",
"properties": {
"value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('queueStorageName-v'), ';AccountKey=', listKeys(variables('storageAccountResourceId'),'2015-05-01-preview').key1)]"
}
И тогда вы можете ссылаться на него в своем приложении функций
{
"name": "StorageQueueConnectionString",
"value": "[concat('@Microsoft.KeyVault(SecretUri=', reference(variables('queueStorageConnectionStringSecretNameResourceId-v')).secretUriWithVersion, ')')]"
}
Затем в своей функции вы можете ссылаться на StorageQueueConnectionString
в привязке
[Queue("queueName", Connection ="StorageQueueConnectionString")]
ICollector<string> outputQueueItem
Таким образом, у вас нетссылаться на строку подключения в переменных окружения (или коде), делая ваше приложение более безопасным.В этом примере требуется идентификация, назначенная системой (или назначенная пользователем) между приложением функций и хранилищем.В настоящее время я пытаюсь создать хранилище, и я сделал код, который можно найти здесь: https://github.com/mslot/Microservices. Код не красивый!Я пробую много вещей, связанных с хранилищем ключей и привязками между различными объектами Azure.