将Azure API管理操作移至新API

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

有没有办法将Azure APIM中定义的操作移动到与最初定义的API不同的API?我想将一些操作重新组织成新的API,而不必在所需的位置手动重新创建操作。 (请注意,API尚未发布到生产中,因此这不会是一个重大变化。)我没有看到任何方法通过APIM UI实现这一点,并且没有太多运气找到一个程序化的方式来做到这一点。

例如,使用下面的图像,我如何将客户管理API中的POST添加客户地址操作移动到Prospect Customer API?

enter image description here

azure azure-api-management
1个回答
2
投票

虽然不是一个完美的解决方案,但是Azure RM API Management PowerShell library帮助我构建了一个PowerShell脚本,它可以让我获得我想要的大部分内容,但仍然需要一点体力劳动。

在PowerShell中,我创建了一个我要移动的操作ID的array,然后在for-each循环中使用以下函数的组合来将operations“移动”到所需的API:

  • Get-AzureRmApiManagementOperation - 用于读取现有操作。
  • New-AzureRmApiManagementOperation - 用于基于通过将Get函数的结果映射到此New函数而创建的现有操作来创建新操作。请注意,“描述”字段中有1000个字符的限制。
  • Remove-AzureRmApiManagementOperation - 用于从旧的API位置删除操作。除非您确定前面的步骤完全符合您的要求,否则我不建议您使用此功能。因为我遇到了操作描述字段只能是1000个字符或更少的问题,我很高兴我没有从旧位置删除操作,因为我不得不手动将描述复制/粘贴到新位置。

虽然上述功能将有助于复制operations,但每个policies中的operation将不会被复制。因此,可以使用以下函数来确保复制policies

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