В 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 в виде:
/ subscription / [mysub] / resourceGroups / [mygroup] /providers/Microsoft.ApiManagement/service/MyAPIMS/apis/MyWebAPI
Но тогда, если я пытаюсь получить политику API, он ничего не делает. Вот что я попробовал:
Get-AzApiManagementPolicy -Context $apimContext -ApiId $MyApi.Id -SaveAs "C:\Source\MyApiPolicy.xml"
Нет нового файла в этом месте. Если я не укажу -SaveAs, он не будет отображать вывод в терминале.
Это работает, если я не укажу -ApiId (например, я могу просто сохранить политику области действия арендатора),Так что я не понимаю, что такое получение политики для конкретного API, который ему не нравится.