获取API范围策略XML

问题描述 投票:0回答:1

[在MS Azure中,我设置了API管理服务-我们将其称为“ MyAPIMS”。在其中,我添加了一个Web应用程序作为API-我们将其称为“ MyWebAPI”。在此API中,我在“入站处理”部分中添加了“设置标头”策略。因此,现在,如果我进入该API的入站处理策略xml,则看起来像这样:

<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的ID为:

/ subscriptions / [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的政策。

azure azure-api-management azure-api-apps api-management
1个回答
0
投票

问题是您正在将$MyApi.Id传递给Get-AzApiManagementPolicy。您应该传递$MyApi.ApiId,它将转换为您的API的名称。

Id属性是ARM资源ID,而cmdlet需要API名称。

© www.soinside.com 2019 - 2024. All rights reserved.