Служебная фабрика Azure с ошибкой 404 шлюза Ocelot API
Я создал приложение фабричной службы Azure с несколькими службами без учета состояния и состояния. Все мои сервисы statefull доступны через сервис без сохранения состояния Web Api. Теперь я добавил шлюз Ocelot API в другой сервис веб-API без сохранения состояния и хочу получить доступ ко всем моим сервисам только через этот шлюз. Теперь, когда я пытаюсь получить доступ к сервисам из моего сервиса шлюза API, он дает мне 404.
Конфигурация Оцелота
{
"ReRoutes": [
{
"DownstreamPathTemplate": "/api/product/seed",
"DownstreamScheme": "http",
"UpstreamPathTemplate": "/api/product/randomize",
"UpstreamHttpMethod": [ "Get" ],
"DownstreamHostAndPorts": [
{
"Host": "http://localhost:8314"
}
],
"QoSOptions": {
"TimeoutValue": 360000
}
}
],
"GlobalConfiguration": {
"BaseUrl": "http://localhost:8445"
}
}
Что мне здесь не хватает?
1 ответ
Если вы выполняете локальную отладку, вам не нужно добавлять схему протокола и порт в конфигураторе хоста, вы можете опустить HTTP-трафик в значении Host и включить одноуровневое свойство для порта (см. Пример ниже):
{
"DownstreamPathTemplate": "/api/user/",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "demo.api.gateway",
"Port": 52792
}
],
"UpstreamPathTemplate": "/api/user/",
"UpstreamHttpMethod": [ "Get" ]
},
Кстати, я написал руководство по API-шлюзам о API-шлюзах и ASP.net Core + Ocelot. Если вы хотите узнать больше о API-шлюзах, вы можете проверить эту статью:
https://www.pogsdotnet.com/2018/08/api-gateway-in-nutshell.html
Надеюсь, поможет!
Аллан