ここで説明した内容は、ARMテンプレートのhttps://azure.microsoft.com/en-us/documentation/articles/web-sites-integrate-with-vnetですべて完了しました。 1つのことを除いて - 既存のVNETとのVNET統合を可能にする。Azure ARMテンプレートで新しいリソースを作成するには?
これはARMテンプレートで行うことができますか? ありがとう!
ここで説明した内容は、ARMテンプレートのhttps://azure.microsoft.com/en-us/documentation/articles/web-sites-integrate-with-vnetですべて完了しました。 1つのことを除いて - 既存のVNETとのVNET統合を可能にする。Azure ARMテンプレートで新しいリソースを作成するには?
これはARMテンプレートで行うことができますか? ありがとう!
以下は、参考になるサンプルテンプレートです。ここでは、と注意しなければならない3つの事がある
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"hostingPlanName": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the hosting plan to use in Azure."
}
},
"webSiteName": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the Azure Web app to create."
}
},
"vnetName": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of an existing Azure VNet which has a Gateway Subnet already, and is in the resource group you are going to deploy."
}
},
"skuName": {
"type": "string",
"defaultValue": "S1",
"allowedValues": [
"S1",
"S2",
"S3",
"P1",
"P2",
"P3",
"P4"
],
"metadata": {
"description": "Describes plan's pricing tier and instance size. Check details at https://azure.microsoft.com/en-us/pricing/details/app-service/"
}
},
"skuCapacity": {
"type": "int",
"defaultValue": 1,
"minValue": 1,
"metadata": {
"description": "Describes plan's instance count"
}
}
},
"resources": [
{
"apiVersion": "2015-08-01",
"name": "[parameters('hostingPlanName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[resourceGroup().location]",
"tags": {
"displayName": "HostingPlan"
},
"sku": {
"name": "[parameters('skuName')]",
"capacity": "[parameters('skuCapacity')]"
},
"properties": {
"name": "[parameters('hostingPlanName')]"
}
},
{
"apiVersion": "2015-08-01",
"name": "[parameters('webSiteName')]",
"type": "Microsoft.Web/sites",
"location": "[resourceGroup().location]",
"tags": {
"[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource",
"displayName": "Website"
},
"dependsOn": [
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]"
],
"properties": {
"name": "[parameters('webSiteName')]",
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]"
},
"resources": [
{
"apiVersion": "2015-08-01",
"name": "web",
"type": "config",
"dependsOn": [
"[concat('Microsoft.Web/sites/', parameters('webSiteName'))]"
],
"properties": {
"pythonVersion": "3.4"
}
},
{
"apiVersion": "2015-08-01",
"name": "[parameters('vnetName')]",
"type": "virtualNetworkConnections",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Web/sites/', parameters('webSiteName'))]"
],
"properties": {
"vnetResourceId": "[concat(resourceGroup().id, '/providers/Microsoft.Network/virtualNetworks/', parameters('vnetName'))]"
}
}
]
}
]
}
this quickstart sample in GitHubから変更されています。
テンプレートはpython Webアプリケーションテンプレートで始まり、 "Microsoft.Web/sites/virtualNetworkConnections"リソースを追加します。したがって、他のプログラミング言語を使用している場合は、他のテンプレートから始めることができます。
既存のVNetは、配備するのと同じリソースグループ内にある必要があります。使用しているVNetが同じリソースグループに属していない場合は、「Microsoft.Web/sites/virtualNetworkConnections」の「プロパティ」にある「vnetResourceId」を変更する必要があります。
使用しているVNetには、すでにポイントツーサイトアドレスのゲートウェイが必要です。そうしないと、WebアプリケーションをVNetに統合できなくなります。詳細については、更新Configure a Point-to-Site connection to a virtual network using PowerShell
を参照してください。私は、この情報を取得する方法について、よく、これについては多くがネット上にありません。このテンプレートは、PowerShellソリューションとARMテンプレートに関する知識に基づいて構築されています。 PowerShellソリューションはthis articleで入手できます。 ARMテンプレートを取得するもう1つの方法は、これらのリソースを1つのリソースグループに作成し、ポータル内のリソースグループのテンプレートをエクスポートすることです。しかし、リソースタイプ "Microsoft.Web/sites/virtualNetworkConnections"はまだサポートされていないため、この場合は動作しません。ただし、PowerShellコマンドGet-AzureRmResource
とオプション-debug
を使用してREST APIを調べることはできます。
Get-AzureRmResource -ResourceGroupName <resource group> -ResourceType Microsoft.Web/sites/virtualNetworkConnections -Name <web app>/<VNet> -debug -ApiVersion 2015-08-01
次のREST APIが表示されます。
ウリ:
https://management.azure.com/subscriptions/<subscription id>/resourceGroups/<resource group>/providers/Microsoft.Web/sites/<web app>/virtualNetworkConnections/<VNet>?api-version=2015-08-01
ボディ:
{
"name": "<VNet>",
"type": "Microsoft.Web/sites/virtualNetworkConnections",
"location": "<Location>",
"properties": {
"vnetResourceId": "/subscriptions/<subscription id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<VNet>"
}
}
ことができます。
いくつか自動的に生成された値をスキップ、あなたは私が書くものに非常に似ているテンプレートを取得しますあなたはテンプレートを共有するので、私はやり直す必要はありませんか? –
私はできればいいと思うが、これはクライアントのためであり、しかも多くのパラメータと変数で大きくなっている。残念だが、それはできない。 – alvipeo