#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 — Используйте строку политики, полученную из предыдущего вызова функции, чтобы установить строку политики для вновь созданной операции.