#azure #azure-functions
Вопрос:
У меня есть следующее для моего файла localsettings.json в функции Azure
{
"IsEncrypted": false,
"Values": {
"ConnectionString": "...",
"AzureWebJobsStorage":
"...",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"event-bus-connection": "..."
}
}
Это прекрасно работает
Как бы то ни было, теперь мне нужно добавить сюда еще кое-что
"JwtIssuerOptions": {
"Issuer": "...",
"Audience": "...",
"SecretKey": "...",
"ExpirationInMinutes": 3600
},
Как только я добавлю это в значения, функция не запустится:
Отсутствует значение для хранилища azurewebjobs в файле local.settings.json.
Как я могу заставить это работать?
Пол
Комментарии:
1. Я считаю, что localseettings.json не поддерживает нотацию объектов для определения параметров. Что вы можете сделать, так это определить как ключ с
:
обозначением типа"JwtIssuerOptions:Issuer":...., "JwtIssuerOptions:Audience":....,
, И теперь, используяJwtIssuerOptions
строковый литерал, вы можете привязаться к конфигурации для привязки параметров.2. Спасибо, что это работает, пожалуйста, не могли бы вы добавить это в качестве ответа?
3. Конечно, позвольте мне добавить это.
Ответ №1:
localseettings.json
не поддерживает объектную нотацию для определения параметров. Что вы можете сделать, это определить как ключ с :
обозначением типа «JwtIssuerOptions:Эмитент»:….,
{
"IsEncrypted": false,
"Values": {
"ConnectionString": "...",
"AzureWebJobsStorage":"...",
"JwtIssuerOptions:Issuer": "...",
"JwtIssuerOptions:Audience": "...",
"JwtIssuerOptions:SecretKey": "...",
"JwtIssuerOptions:ExpirationInMinutes": 3600,
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"event-bus-connection": "..."
}
}
И теперь, используя JwtIssuerOptions
строковый литерал, вы можете привязаться к конфигурации для привязки параметров
builder.Services.AddOptions<JwtAuthorizationOptions>()
.Configure<IConfiguration>((settings, configuration) =>
{
configuration.GetSection("JwtIssuerOptions").Bind(settings);
});