Powershell Azure应用程序服务ApiApp
我正在尝试使用PowerShell在Azure应用程序服务中创建API应用程序 默认情况下,我调用的cmdlet始终创建Web应用。如果可能,我想知道如何将类型/种类指定为Powershell Azure应用程序服务ApiApp,powershell,azure,azure-web-app-service,azure-api-apps,Powershell,Azure,Azure Web App Service,Azure Api Apps,我正在尝试使用PowerShell在Azure应用程序服务中创建API应用程序 默认情况下,我调用的cmdlet始终创建Web应用。如果可能,我想知道如何将类型/种类指定为Api-App,而不是Web-App New-AzureRmWebApp -Name $name -Location $location -AppServicePlan $plan -ResourceGroupName $resourceGroup 从我的阅读来看,两者之间除了图标没有太大的不同,如果这就是我的应用程序的全部
Api-App
,而不是Web-App
New-AzureRmWebApp -Name $name -Location $location -AppServicePlan $plan -ResourceGroupName $resourceGroup
从我的阅读来看,两者之间除了图标没有太大的不同,如果这就是我的应用程序的全部内容,那么将类型设置为“Api应用程序”值得吗
我使用的是AzureRM PowerShell模块的5.4.0版
> Get-Module "AzureRM"
ModuleType Version Name
---------- ------- ----
Script 5.4.0 AzureRM
New AzureRmWebApp
中不支持明确指示是API应用程序还是Web应用程序的参数。资源提供程序仍然是Microsoft.Web
。并且在ARM模板中没有指示类型的参数
这两种类型在技术上仍然以相同的方式工作。不同之处在于用途、图标、操作系统运行选择和调试功能(请参阅此处)
您可能希望通过标记来在这两种类型之间进行分类,这将有助于在您的资源组有许多web资源的情况下进行管理
您可以通过Azure门户或Visual Studio创建API应用程序
另外,请查看Azure API管理,以获得API包装而非Azure应用程序服务的更大灵活性。只需调用
新AzureRmResource
,然后传入-种类“API”
:
# CREATE "just-an-api" API App
$ResourceLocation = "West US"
$ResourceName = "just-an-api"
$ResourceGroupName = "demo"
$PropertiesObject = @{
# serverFarmId points to the App Service Plan resource id
serverFarmId = "/subscriptions/SUBSCRIPTION-GUID/resourceGroups/demo/providers/Microsoft.Web/serverfarms/plan1"
}
New-AzureRmResource -Location $ResourceLocation `
-PropertyObject $PropertiesObject `
-ResourceGroupName $ResourceGroupName `
-ResourceType Microsoft.Web/sites `
-ResourceName "just-an-api/$ResourceName" `
-Kind 'api' `
-ApiVersion 2016-08-01 -Force
…它产生了一个API应用程序,Microsoft.Web/sites
resource类型,属于API
类型:
等一下。。你是怎么想到这些的
访问并导航到现有的API应用程序,通过将PowerShell选项卡与JSON资源定义中的所需值相结合来构建PowerShell语法。哎哟,我把
kind
属性放错了位置。固定的!这是参数的一部分,而不是属性包。我的不好。是否也可以为新API应用指定应用服务计划?我认为斜杠前面的名称部分可能允许您指定计划名称(类似于dbserver/dbname),但它每次都会生成一个名为Default1的新应用程序服务计划。示例中的-ResourceName“just-an-api/$ResourceName”的行为与我的测试中显示的-ResourceName“$ResourceName”的行为相同。斜杠后面的名称部分被忽略。有一个-Plan
参数。使用获取帮助New AzureRmResource-Full
@evilSnobu感谢您的评论。我确实看到了Plan参数,描述是一个哈希表:“一个表示资源计划属性的哈希表。”所以这不是一个简单的字符串,它接受应用服务计划的名称,我对如何将应用服务计划表示为哈希表感到困惑。我在网上找不到任何例子来说明如何或何时使用这个参数。我认为这不是要使用的正确参数。您知道如何将应用程序服务计划表示为哈希表,我可以将其传递给此参数吗?谢谢你的帮助!你完全正确。我有点忘乎所以,没有测试。是的,它确实是一个哈希表,但是-Plan
不是您需要的(我的错)<代码>计划是一个非常容易引起误解的参数名称,它与应用程序服务计划完全无关。在属性包中使用serverFarmId
。请参阅我的最新答案。