Ссылка предназначена для конфигурации приложения, которая обычно выбирается и кэшируется при запуске или первом использовании (последнее в этом случае). Он не предназначен для получения каждый раз. Например, если вы хотите управлять временем жизни через ETag, вы можете рассмотреть Azure Конфигурация приложения. Если вам нужно, чтобы эти значения были зашифрованы в состоянии покоя только с ограниченным набором людей, которые могут получить к ним доступ, вы не сможете использовать секреты таким образом, но вместо этого вам придется самостоятельно вызывать Azure Key Vault, но вы все равно должны это сделать. кэшируйте значение в течение ограниченного времени: Key Vault имеет очень низкие пределы скорости, поэтому, если ваша функция получает много вызовов за короткий промежуток времени, некоторые из них могут быть заблокированы и завершены сбоем (есть встроенная политика повторов, но это не поможет, если запросы будут быстро ставиться в очередь).
Например, вы можете просто получить секрет самостоятельно (предполагается, что C#, поскольку неясно, какой язык вы используете):
var vaultUri = Environment.GetEnvironmentVariable("AZURE_KEYVAULT_URL") ?? throw new InvalidOperationException();
var client = new SecretClient(new Uri(vaultUri), new DefaultAzureCredential());
KeyVaultSecret secret = await client.GetSecretAsync("my-secret");
Существует несколько механизмов кэширования в памяти, которые вы можете использовать в зависимости от того, как запускается ваша функция, например, таймер, который запускается время от времени и обновляет сам секрет. Key Vault не поддерживает ETag, поэтому каждый запрос будет для ключа независимо от того, был ли он изменен. Вы можете запросить, изменилась ли версия, но это немного вас экономит (вам все равно придется извлекать полный секрет, так что это 2 запроса, при которых вы можете просто извлечь секрет в 1 запросе через каждый интервал).