将 Azure API 管理操作移动到新 API

Move Azure API Management Operation to New API

有没有办法将 Azure APIM 中定义的 operation 移动到不同于最初定义的 API?我想将一些操作重新组织到新的 APIs w/o 中,必须在所需位置手动重新创建操作。 (请注意,APIs 尚未发布到生产环境,因此这不会是重大更改。)我看不出有什么方法可以通过 APIM UI 并没有找到一种编程方式来做到这一点。

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

虽然不是完美的解决方案,但 Azure RM API Management PowerShell library 帮助我构建了一个 PowerShell 脚本,它可以满足我的大部分需求,但仍然需要一些手工劳动。

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

  • Get-AzureRmApiManagementOperation - 用于读取现有操作。
  • New-AzureRmApiManagementOperation - 用于基于通过将 Get 函数的结果映射到此新函数而创建的现有操作来创建新操作。 请注意,描述字段有 1000 个字符的限制。
  • Remove-AzureRmApiManagementOperation - 用于从旧的 API 位置删除操作。 我不推荐使用这个,除非你非常确定前面的步骤完全按照你想要的方式工作。因为我 运行 遇到了操作描述字段只能是 1000 的问题字符或更少,我很高兴我没有从旧位置删除操作,因为我必须手动 copy/paste 将描述放入新位置。

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