Как программно создать службу управления API?

Я пытаюсь программно (через Azure Resource Manager, если возможно) создать службу APIM в определенной группе ресурсов. Цель состоит в том, чтобы мы могли иметь параметризованный шаблон или сценарий, который можно было бы зарегистрировать в системе управления версиями, чтобы мы могли дублировать и воссоздавать наши среды.

Эта таблица на странице документации ARM указано Да, диспетчер ресурсов включен для APIM, но Ссылка" Шаблоны быстрого запуска " не обнаруживает образцов шаблонов для типа ресурса Microsoft.ApiManagement. Однако это может означать просто, что никто еще не внес шаблон в галерею, и что мне придется написать свой собственный.

Что касается написания моего собственного шаблона ARM, статья который проведет вас через создание шаблона Resource Manager, говорит:

Чтобы узнать больше о поставщиках ресурсов, см. Поставщики Resource Manager, регионы, версии и схемы API

... который ссылается на ту же страницу, что и мой текст "Эта таблица" выше. В том же разделе статьи "Авторские шаблоны" также говорится:

[Свойства] параметры конфигурации конкретного ресурса. Значения свойств точно такие же, как значения, которые вы указываете в теле запроса для операции REST API (метод PUT) для создания ресурса. Ссылки на документацию по схеме ресурсов или REST API см. На странице Resource Поставщики менеджеров, регионы, версии и схемы API.

... который снова ссылается на ту же страницу, что и выше.

Я проверил как APIM REST API, так и azure-resource-manager-schemas для документации по созданию экземпляра APIM.

  • APIM REST API требует, чтобы вы уже создали экземпляр APIM. Он предназначен для управления ресурсами APIM в экземпляре APIM, а не для создания экземпляра APIM в первую очередь.
  • Проект схем ARM не содержит схемы для Microsoft.ApiManagement. Строки «api management» и «apim» не встречаются в проекте схем.

Можно ли программно создать службу управления API, и если да, то как?


person shoover    schedule 16.02.2016    source источник
comment
Думаю, я знаю, куда вы идете, и вас будет раздражать тот факт, что вы не можете (пока) программно разрешить доступ REST API к только что созданному экземпляру APIm. Вы также не сможете обновлять части, не относящиеся к API (то есть биты CMS) извне.   -  person donmartin    schedule 08.03.2016
comment
Отчасти я беру это обратно; кажется, что командлеты PowerShell действительно позволяют взаимодействовать с экземпляром без активации интерфейса REST.   -  person donmartin    schedule 08.03.2016


Ответы (3)


Да, можно создать службу ApiManagement программно с помощью командлетов Azure Powershell 1.0 https://azure.microsoft.com/en-us/documentation/articles/powershell-install-configure/. Ниже приведена команда, которая поможет вам в этом.

PS C:\WINDOWS\system32> get-help New-AzureRmApiManagement -example

NAME
New-AzureRmApiManagement

SYNOPSIS
Creates an API Management deployment.

SYNTAX
New-AzureRmApiManagement [-Capacity [<Int32>]] [-Sku [<PsApiManagementSku>]] [-Tags [<0, Culture=neutral,
PublicKeyToken=b77a5c561934e089>]] -AdminEmail <String> -Location {North Central US | South Central US | Central
US | West Europe | North Europe | West US | East US | East US 2 | Japan East | Japan West | Brazil South |
Southeast Asia | East Asia | Australia East | Australia Southeast} -Name <String> -Organization <String>
-ResourceGroupName <String> [<CommonParameters>]

Example 1: Create at Developer tier API Management service

PS C:\>New-AzureRmApiManagement -ResourceGroupName "ContosoGroup02" -Name "ContosoApi" -Location "Central US"
-Organization "Contoso" -AdminEmail "[email protected]"


This command creates a Developer tier API Management service. The command specifies the organization and the
administrator address. The command does not specify the SKU parameter. Therefore, the cmdlet uses the default
value of Developer.


Example 2: Create a Standard tier service that has three units

PS C:\>New-AzureRmApiManagement -ResourceGroupName "ContosoGroup02 -Name "ContosoApi" -Location "Central US"
-Organization "Contoso" -AdminEmail "[email protected]" -Sku Standard -Capacity 3


This command creates a Standard tier API Management service that has three units.

Вы можете найти дополнительные командлеты, используя

 get-Help AzureRmApiManagement

Полную документацию по командлетам можно найти здесь https://msdn.microsoft.com/en-us/library/mt619282.aspx

person Samir    schedule 16.02.2016
comment
Пока это работает. Проголосовали и примем, если никто не предложит решение, использующее шаблоны RM, в течение следующего дня или около того. - person shoover; 16.02.2016

Теперь вы можете использовать Быстрый запуск шаблона ARM службы управления API с GitHub.

person Pete - MSFT    schedule 11.06.2016
comment
Шаблон ARM (который мы сейчас используем вместо Powershell) просто поддерживает экземпляр APIM в группе ресурсов. Он не заполняет экземпляр APIM вашим API, группами, продуктами или политиками. Для этого вам все еще понадобится REST API. - person shoover; 11.06.2016
comment
Ах - извините, я неправильно понял ваш вопрос, поскольку я просто хочу создать ресурс, а не создавать и заполнять. - person Pete - MSFT; 14.06.2016
comment
Нет проблем, информация о шаблоне быстрого запуска по-прежнему будет полезна для следующего человека. - person shoover; 14.06.2016
comment
У нас есть поддержка релизов для шаблонов ARM для управления всеми объектами. Шаблон ARM для управления всеми объектами < / а> - person Samir; 24.08.2017

New-AzureRmApiManagement можно использовать для создания экземпляра APIM. Но подготовка экземпляра APIM требует времени, обычно от 20 до 30 минут. Если вам нужно создать несколько экземпляров, чтобы сэкономить время, лучше сделать это с помощью модуля Runbook службы автоматизации Azure и запустить эту команду параллельно. Здесь является примером.

person Chun Liu    schedule 01.03.2018