Итак, я знаю эти два вопроса, которые, кажется, задают одно и то же:
Как удалить слово 'api' из Azure url-адреса функций
Как изменить базовый путь "/ api" в Azure Functions (v2)?
Однако я все еще не могу избавиться от префикса "api" в моем route.
Мой host.json
выглядит так:
{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
}
}
}
И на моем HttpTrigger я устанавливаю свой собственный маршрут:
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "myapp")] HttpRequest request,
Однако, когда я бегу приложение локально, конечная точка будет выглядеть как:
[POST] http://localhost:7071/api/myapp
Если я изменю свой host.json
на:
{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": "something"
}
}
}
Мое приложение теперь работает на:
[POST] http://localhost:7071/something/myapp
Получается, что пустая строка ""
просто не работает. Любые идеи? (Я сделал все, как обычно: чистое решение, удаление папки bin / obj et c.)
FYI из моего функционального приложения, которое я использую:
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.7" />
РЕДАКТИРОВАТЬ:
Я также ссылаюсь на эти пакеты из приложения-функции (хотя я не понимаю, как это может вызвать эту проблему):
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.1.1" />
РЕДАКТИРОВАТЬ 2
Я сузил проблему до этого кода, который вызывается в Startup.cs
:
IConfiguration configuration = builder.Services.BuildServiceProvider().GetService<IConfiguration>();
IConfiguration combinedConfig = new ConfigurationBuilder()
.AddConfiguration(configuration)
.AddAzureKeyVault(kvEndpoint, kvClient, new DefaultKeyVaultSecretManager());
.Build();
builder.Services.AddSingleton(combinedConfig);
// <-- this line causes the prefix "" to revert to "/api"
По сути, он добавляет хранилище ключей в качестве поставщика конфигурации в стек провайдеров уже готов. (Обратите внимание, что не имеет значения, какие методы .Add я вызываю в построителе конфигурации, это регистрация, которая вызывает проблему). Может быть, есть другой способ написать это?