В MS Azure я установил службу управления API - назовем ее «MyAPIMS». В рамках этого я добавил веб-приложение в качестве API - назовем его «MyWebAPI». В этом API я добавил политику «set-header» в раздел обработки входящих сообщений. Итак, теперь, если я перейду к XML-политике обработки входящих событий API, она будет выглядеть так:
<inbound>
<base />
<set-backend-service id="apim-generated-policy" backend-id="Web-App" />
<set-header name="Referred-From" exists-action="append">
<value>Me</value>
</set-header>
</inbound>
Мне нужно выяснить, как добавить эту политику с помощью сценария PowerShell. Поэтому я решил попробовать просто напрямую использовать команды PowerShell, чтобы получить эту политику, которую я настроил вручную, и посмотреть результат. Во-первых, я понимаю контекст:
$apimContext = New-AzApiManagementContext -ResourceGroupName "MyGroup" -ServiceName "myAPIMS"
Если я выведу «$ apimContext», он отлично отобразит имя группы ресурсов и имя службы. Итак, я получаю API:
$MyApi = Get-AzApiManagementApi -Context $apimContext -Name "MyWebAPI"
При этом, если я выведу «$ MyApi.Id», он отобразит идентификатор MyWebAPI как:
/subscriptions/[mysub visible/resourceGroups/[mygroup visible/providers/Microsoft.ApiManagement/service/MyAPIMS/apis/MyWebAPI
Но затем, если я попытаюсь получить политику API, она ничего не сделает. Вот что я пробовал:
Get-AzApiManagementPolicy -Context $apimContext -ApiId $MyApi.Id -SaveAs "C:\Source\MyApiPolicy.xml"
В этом месте нет новых файлов. Если я не укажу -SaveAs, он не отобразит никаких выходных данных в терминале.
Он работает, если я не укажу -ApiId (например, я могу сохранить политику области клиента). Поэтому я не понимаю, что такого в том, чтобы получить политику для конкретного API, которая ему не нравится.