Служебная фабрика 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

Надеюсь, поможет!
Аллан

Другие вопросы по тегам