Мы настроили API-шлюз в Azure (План потребления). Здесь у нас есть несколько различных API, уже работающих. Недавно мы работали над новым API и добавили его в шлюз.
Все выглядело хорошо, пока мы не начали замечать некоторые странные действия с новым API. Некоторые политики не работали, и кажется, что трассировка также не работает для конкретного API. Трассировка говорит, что заголовок Ocp-Apim-Trace-Location
отсутствует, хотя мы тестируем его через портал. Одна вещь, которую я заметил, заключалась в том, что трассировка работала, если запрос не доходил до нашего бэкэнда.
Политики, которые у нас не работают: set-header
, cache-store
и cache-lookup
. Таким образом, ничего не сохраняется в нашем внешнем перенаправлении, и мы не можем установить какие-либо заголовки ответа.
Это работает для всех других API в шлюзе и также работает для нового API в нашем экземпляре dev / test .
Я попытался создать новый API и импортировал нашу OpenAPI spe c, которая ничего не делала, и я не нашел в Интернете ничего, связанного с нашей проблемой.
Любая помощь приветствуется!
Политика .
<policies>
<inbound>
<!--base: Begin Api scope-->
<!--base: Begin Product scope-->
<!--base: Begin Global scope-->
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid." output-token-variable-name="jwt">
<openid-config url="https://<url-to-openid-config>" />
<audiences>
<audience>apim</audience>
</audiences>
</validate-jwt>
<!--base: End Global scope-->
<!--base: End Product scope-->
<set-query-parameter name="apiKey" exists-action="override">
<value>{{key}}</value>
</set-query-parameter>
<!--base: End Api scope-->
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" allow-private-response-caching="true" downstream-caching-type="none">
<vary-by-header>Accept</vary-by-header>
<vary-by-header>Accept-Charset</vary-by-header>
</cache-lookup>
</inbound>
<backend>
<!--base: Begin Api scope-->
<!--base: Begin Product scope-->
<!--base: Begin Global scope-->
<forward-request timeout="60" />
<!--base: End Global scope-->
<!--base: End Product scope-->
<!--base: End Api scope-->
</backend>
<outbound>
<cache-store duration="20" />
<set-header ="headerName" exists-action="override">
<value>value</value>
</set-header>
</outbound>
<on-error />