Я настроил отдельную среду тестирования, чтобы попытаться получить секреты приложения из хранилища ключей Azure.Ссылка @ Microsoft.KeyVault (...) в настройках приложения не разрешает ни секрет, ни текст ссылки, когда запускается тестовая функция для возврата переменных среды.
После this документация для создания службы приложения и аутентификации ее в хранилище ключей. Я создал управляемый идентификатор для своей функции, добавил его в AAD, создал специальную политику доступа для этого управляемого идентификатора с областью действия Get Secret в моем хранилище ключей,и пробовал оба с / без включения области чтения для приложения в качестве пользователя.
Запуск диагностического инструмента для разрешения ссылок на настройки приложения приложения функции не выдает никаких ошибок.Ввод параметра приложения в виде @ Microsoft.KeyVault (SecretUri = SecretUri)
или
@Microsoft.KeyVault(VaultName=myvault;SecretName=mysecret;SecretVersion={version})
, по-видимому, ничего не меняет.Я подождал до получаса, чтобы изменения в настройках реплицировались в Azure, и убедитесь, что сделанные мной изменения являются постоянными.
Вот мое приложение-функция для возврата переменных среды (написано на python):
import json
import logging
import os
import azure.functions as func
def main(req=None) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
try:
name = [os.environ["CLIENTID"]]
except:
name=dict()
for d in os.environ:
name[d]=os.environ[d]
if name:
return func.HttpResponse("Params\n{}".format(json.dumps(name, sort_keys=True, indent=4)))
else:
return func.HttpResponse(
"Please pass a name on the query string or in the request body",
status_code=400
)
Я ожидал, что смогу получить переменную среды CLIENTID.Вместо этого захват этой переменной завершается неудачей, и все переменные окружения возвращаются.Я намеренно возвращаю все переменные окружения, если не могу вернуть единственную переменную, так как хотел убедиться, что перехватил ее, если переменная была переименована или возникла проблема с типизацией / чувствительностью к регистру.