从 powershell 更新 azure api 入站策略

Update azure api inbound policy from powershell

首先感谢您的关注。

我需要从 powershell 更新由 Azuremanagementservice 管理的 API 的入站策略。为此,我尝试从 powershell 访问 API 不幸的是没有任何进展。

我正在通过 powershell 寻找什么 a) 访问 AzuremanagementService 下的 API b) 更新入库操作策略

谢谢

您可以使用 REST API:
Api Operation Policy - Create Or Update

放置https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}/policies/policy?api-version=2019-12-01

如果您想通过 Azure PowerShell 设置策略,请尝试以下代码(为演示添加根级别入站 IP 阻止策略):

$newPolicy = '<policies>
                <inbound>
                    <ip-filter action="forbid">
                        <address-range from="192.168.0.1" to="192.168.0.2" />
                    </ip-filter>
                </inbound>
                <backend>
                    <forward-request />
                </backend>
                <outbound />
                <on-error />
             </policies>'

$apim_context = New-AzApiManagementContext -ResourceGroupName "<resource group name>" -ServiceName "<API management service name>"

Set-AzApiManagementPolicy -Context $apim_context  -Policy $newPolicy

结果:

有关 Set-AzApiManagementPolicy 操作的更多信息,请参阅 this reference doc

更新

如果要修改API级别的策略,需要使用下面的命令获取所有ApiId:

Get-AzApiManagementApi -Context $apim_context | Select-Object Name,ApiId

我将 ApiID 指定为“echo-api”:

Set-AzApiManagementPolicy -Context $apim_context  -Policy $newPolicy -ApiId 'echo-api'

结果:

有关使用 PowerShell 设置策略的更多信息,请参阅 here