将Azure API管理操作移至新API

时间:2019-03-20 16:43:50

标签: azure azure-api-management

是否可以将Azure APIM中定义的操作移动到与原始定义不同的API?我想将一些操作重组为新的API,而无需在所需位置手动重新创建该操作。 (请注意,API尚未发布到生产环境中,因此这不会是一个重大变化。)我看不出有任何方法可以通过APIM UI来完成此任务,并且运气不佳。编程的方式来做到这一点。

例如,使用下图,如何将 POST添加客户地址操作从客户管理API 移至潜在客户API

enter image description here

1 个答案:

答案 0 :(得分:2)

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

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

  • Get-AzureRmApiManagementOperation-用于读取现有操作。
  • New-AzureRmApiManagementOperation-用于基于通过将Get函数的结果映射到此New函数而创建的现有操作来创建新操作。 请注意,“说明”字段上的字符数限制为1000。
  • Remove-AzureRmApiManagementOperation-用于从旧的API位置删除操作。 我不建议您使用此命令,除非您确信前面的步骤完全可以按照您的要求工作。因为我遇到了一个问题,即操作说明字段只能为1000个字符或更少,所以很高兴我没有从旧位置删除操作,因为我不得不手动将说明复制/粘贴到新位置。

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