Переместить операцию управления Azure API в новый API

#azure #azure-api-management

#azure #azure-api-management

Вопрос:

Есть ли способ переместить операцию, определенную в Azure APIM, в API, отличный от того, в котором она была первоначально определена? Я хотел бы реорганизовать некоторые операции в новые API без необходимости вручную воссоздавать операцию в нужном месте. (Обратите внимание, что API-интерфейсы еще не были опубликованы в рабочей среде, поэтому это не будет кардинальным изменением.) Я не вижу никакого способа выполнить это с помощью APIM UI, и мне не очень повезло с поиском программного способа сделать это.

Например, используя изображение ниже, как бы я перенес операцию добавления адреса клиента с API управления клиентами на API потенциальных клиентов?

введите описание изображения здесь

Комментарии:

1. В настоящее время с портала Azure этого достичь невозможно. Но да, как вы правильно упомянули, вы можете вручную воссоздать операцию в нужном месте.

Ответ №1:

Хотя это и не идеальное решение, библиотека PowerShell для управления API Azure RM помогла мне создать сценарий PowerShell, который позволяет получить большую часть того, что я хотел, но все же требует небольшого ручного труда.

В PowerShell я создал array идентификаторы операций, которые я хочу переместить, затем использовал комбинацию следующих функций в for-each цикле, чтобы «переместить» operations в нужный API:

  • Get-AzureRmApiManagementOperation — Используется для чтения существующей операции.
  • New-AzureRmApiManagementOperation — Используется для создания новой операции на основе существующей, созданной путем сопоставления результатов функции Get с этой новой функцией. Обратите внимание, что поле описания ограничено 1000 символами.
  • Удалить-AzureRmApiManagementOperation — Используется для удаления операции из старого расположения API. Я не рекомендую использовать это, если вы не уверены, что предыдущие шаги работали именно так, как вы хотите.Поскольку я столкнулся с проблемой, из-за которой поле описания операции может содержать не более 1000 символов, я рад, что не удалил операцию из старого расположения, потому что мне пришлось вручную скопировать / вставить описание в новое расположение.

Хотя вышеуказанные функции помогут при копировании operations , policies внутри каждой operation функции копироваться не будут. Следовательно, следующие функции могут быть использованы для обеспечения того, чтобы policies также копировались:

  • Get-AzureRmApiManagementPolicy — Используется для получения политики XML из операции в виде строки.
  • Set-AzureRmApiManagementPolicy — Используйте строку политики, полученную из предыдущего вызова функции, чтобы установить строку политики для вновь созданной операции.