我正在尝试以编程方式(如果可能,通过Azure资源管理器)在特定资源组中创建APIM服务。目标是我们可以有一个已参数化的模板或脚本,并且可以将其检入源代码管理,以便我们可以复制并重新创建环境。
ARM文档页面中的This table说是,资源管理器已启用APIM,但是Quickstart Templates link找不到Microsoft.ApiManagement资源类型的示例模板。但是,这可能仅意味着还没有人向画廊提供模板,而我将不得不编写自己的模板。
至于编写自己的ARM模板,article that walks you through authoring a Resource Manager template表示:
要了解有关资源提供者的许多知识,请参见Resource Manager providers, regions, API versions and schemas
...链接回与我上面的“此表”文本相同的页面。 “创作模板”文章的同一部分还说:
[属性是]资源特定的配置设置。这些属性的值与您在请求正文中提供的用于REST API操作(PUT方法)以创建资源的值完全相同。有关资源架构文档或REST API的链接,请参见Resource Manager providers, regions, API versions and schemas。
...再次链接回上述同一页面。
我已经检查了APIM REST API和azure-resource-manager-schemas页面,以获取有关如何创建APIM实例的文档。
APIM REST API要求您已经创建了一个APIM实例。它设计用于在APIM实例中操作APIM资源,而不是首先创建APIM实例。
ARM模式项目不包含Microsoft.ApiManagement的模式。字符串“ api管理”和“ apim”不在模式项目中出现。
是否可以通过编程方式创建API管理服务,如果可以,怎么办?
最佳答案
是的,可以使用Azure Powershell 1.0小命令https://azure.microsoft.com/en-us/documentation/articles/powershell-install-configure/以编程方式创建ApiManagement服务。下面是可以帮助您实现的Commandlet。
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
可在此处找到有关Commandlet的完整文档
https://msdn.microsoft.com/en-us/library/mt619282.aspx