Quickstart: Een App Service-app maken met behulp van een ARM-sjabloon
Ga aan de slag met Azure-app Service door een app in de cloud te implementeren met behulp van een Azure Resource Manager-sjabloon (ARM-sjabloon) en Azure CLI in Cloud Shell. Een Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Er worden geen kosten in rekening gebracht om deze quickstart te voltooien omdat u een gratis App Service-laag gebruikt.
Als u deze quickstart wilt voltooien, hebt u een Azure-account met een actief abonnement nodig. Als u geen Azure-account hebt, kunt u er gratis een maken.
Naar het einde gaan
Als u bekend bent met het gebruik van ARM-sjablonen, kunt u doorgaan naar het einde door deze knop te selecteren. Met deze knop opent u de ARM-sjabloon in Azure Portal.
Selecteer in Azure Portal Nieuwe maken om een nieuwe resourcegroep te maken en selecteer vervolgens de knop Beoordelen en maken om de app te implementeren.
Ga aan de slag met Azure-app Service door een app in de cloud te implementeren met behulp van een Azure Resource Manager-sjabloon (ARM-sjabloon) en Azure CLI in Cloud Shell. Een Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Er worden geen kosten in rekening gebracht om deze quickstart te voltooien omdat u een gratis App Service-laag gebruikt.
Als u deze quickstart wilt voltooien, hebt u een Azure-account met een actief abonnement nodig. Als u geen Azure-account hebt, kunt u er gratis een maken.
Naar het einde gaan
Als u bekend bent met het gebruik van ARM-sjablonen, kunt u doorgaan naar het einde door deze knop te selecteren. Met deze knop opent u de ARM-sjabloon in Azure Portal.
Selecteer in Azure Portal Nieuwe maken om een nieuwe resourcegroep te maken en selecteer vervolgens de knop Beoordelen en maken om de app te implementeren.
Ga aan de slag met Azure-app Service door een app in de cloud te implementeren met behulp van een Azure Resource Manager-sjabloon (ARM-sjabloon) en Azure CLI in Cloud Shell. Een Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Er is een Premium-abonnement nodig om een Windows-container-app te implementeren. Zie de pagina met prijzen van App Service voor prijsinformatie.
Naar het einde gaan
Als u bekend bent met het gebruik van ARM-sjablonen, kunt u doorgaan naar het einde door deze knop te selecteren. Met deze knop opent u de ARM-sjabloon in Azure Portal.
Selecteer in Azure Portal Nieuwe maken om een nieuwe resourcegroep te maken en selecteer vervolgens de knop Beoordelen en maken om de app te implementeren.
De sjabloon controleren
De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen. Hiermee wordt een App Service-plan en een App Service-app in Windows geïmplementeerd. De sjabloon is compatibel met .NET Core, .NET Framework, PHP, Node.js en statische HTML-apps. Raadpleeg Java-app maken voor Java.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.25.53.49325",
"templateHash": "16144177164140676603"
}
},
"parameters": {
"webAppName": {
"type": "string",
"defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
"minLength": 2,
"metadata": {
"description": "Web app name."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"sku": {
"type": "string",
"defaultValue": "F1",
"metadata": {
"description": "The SKU of App Service Plan."
}
},
"language": {
"type": "string",
"defaultValue": ".net",
"allowedValues": [
".net",
"php",
"node",
"html"
],
"metadata": {
"description": "The language stack of the app."
}
},
"helloWorld": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "true = deploy a sample Hello World app."
}
},
"repoUrl": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "Optional Git Repo URL"
}
}
},
"variables": {
"appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]",
"gitRepoReference": {
".net": "https://github.com/Azure-Samples/app-service-web-dotnet-get-started",
"node": "https://github.com/Azure-Samples/nodejs-docs-hello-world",
"php": "https://github.com/Azure-Samples/php-docs-hello-world",
"html": "https://github.com/Azure-Samples/html-docs-hello-world"
},
"gitRepoUrl": "[if(bool(parameters('helloWorld')), variables('gitRepoReference')[toLower(parameters('language'))], parameters('repoUrl'))]",
"configReference": {
".net": {
"comments": ".Net app. No additional configuration needed."
},
"html": {
"comments": "HTML app. No additional configuration needed."
},
"php": {
"phpVersion": "7.4"
},
"node": {
"appSettings": [
{
"name": "WEBSITE_NODE_DEFAULT_VERSION",
"value": "12.15.0"
}
]
}
}
},
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2023-01-01",
"name": "[variables('appServicePlanPortalName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('sku')]"
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2023-01-01",
"name": "[parameters('webAppName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"siteConfig": "[variables('configReference')[parameters('language')]]",
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
"httpsOnly": true
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
]
},
{
"condition": "[contains(variables('gitRepoUrl'), 'http')]",
"type": "Microsoft.Web/sites/sourcecontrols",
"apiVersion": "2023-01-01",
"name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
"properties": {
"repoUrl": "[variables('gitRepoUrl')]",
"branch": "master",
"isManualIntegration": true
},
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
]
}
]
}
Er worden twee Azure-resources gedefinieerd in de sjabloon:
- Microsoft.Web/serverfarms: een App Service-plan maken.
- Microsoft.Web/sites: een App Service-app maken.
Deze sjabloon bevat verschillende parameters die voor het gemak vooraf zijn gedefinieerd. Zie de tabel voor de standaardinstellingen voor parameters en de bijbehorende beschrijvingen:
Parameters | Type | Default value | Beschrijving |
---|---|---|---|
webAppName | tekenreeks | webApp-<uniqueString> |
App-naam op basis van een unieke tekenreekswaarde |
appServicePlanName | tekenreeks | webAppPlan-<uniqueString> |
Naam van App Service-plan op basis van een unieke tekenreekswaarde |
locatie | tekenreeks | [resourceGroup().location] |
App-regio |
sku | tekenreeks | F1 |
Exemplaargrootte (F1 = gratis laag) |
taal | tekenreeks | .NET |
Programmeertaalstack (.NET, php, knooppunt, html) |
helloWorld | boolean | False |
True = Hello World-app implementeren |
repoUrl | tekenreeks | |
Externe Git-opslagplaats (optioneel) |
De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen. Hiermee wordt een App Service-plan en een App Service-app in Linux geïmplementeerd. De sjabloon is compatibel met alle ondersteunde programmeertalen in App Service.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.5.6.12127",
"templateHash": "10602523904429381366"
}
},
"parameters": {
"webAppName": {
"type": "string",
"defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
"minLength": 2,
"metadata": {
"description": "Web app name."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"sku": {
"type": "string",
"defaultValue": "F1",
"metadata": {
"description": "The SKU of App Service Plan."
}
},
"linuxFxVersion": {
"type": "string",
"defaultValue": "DOTNETCORE|3.0",
"metadata": {
"description": "The Runtime stack of current web app"
}
},
"repoUrl": {
"type": "string",
"defaultValue": " ",
"metadata": {
"description": "Optional Git Repo URL"
}
}
},
"variables": {
"appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]"
},
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-02-01",
"name": "[variables('appServicePlanPortalName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('sku')]"
},
"kind": "linux",
"properties": {
"reserved": true
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2021-02-01",
"name": "[parameters('webAppName')]",
"location": "[parameters('location')]",
"properties": {
"httpsOnly": true,
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
"siteConfig": {
"linuxFxVersion": "[parameters('linuxFxVersion')]",
"minTlsVersion": "1.2",
"ftpsState": "FtpsOnly"
}
},
"identity": {
"type": "SystemAssigned"
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
]
},
{
"condition": "[contains(parameters('repoUrl'), 'http')]",
"type": "Microsoft.Web/sites/sourcecontrols",
"apiVersion": "2021-02-01",
"name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
"properties": {
"repoUrl": "[parameters('repoUrl')]",
"branch": "master",
"isManualIntegration": true
},
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
]
}
]
}
Er worden twee Azure-resources gedefinieerd in de sjabloon:
- Microsoft.Web/serverfarms: een App Service-plan maken.
- Microsoft.Web/sites: een App Service-app maken.
Deze sjabloon bevat verschillende parameters die voor het gemak vooraf zijn gedefinieerd. Zie de tabel voor de standaardinstellingen voor parameters en de bijbehorende beschrijvingen:
Parameters | Type | Default value | Beschrijving |
---|---|---|---|
webAppName | tekenreeks | webApp-<uniqueString> |
App-naam op basis van een unieke tekenreekswaarde |
appServicePlanName | tekenreeks | webAppPlan-<uniqueString> |
Naam van App Service-plan op basis van een unieke tekenreekswaarde |
locatie | tekenreeks | [resourceGroup().location] |
App-regio |
sku | tekenreeks | F1 |
Exemplaargrootte (F1 = gratis laag) |
linuxFxVersion | tekenreeks | DOTNETCORE|3.0 |
"Programmeertaalstack | Versie" |
repoUrl | tekenreeks | |
Externe Git-opslagplaats (optioneel) |
De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen. Hiermee worden een App Service-plan en een App Service-app geïmplementeerd in een Windows-container.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.25.53.49325",
"templateHash": "10193476814580854111"
}
},
"parameters": {
"appServiceWebAppName": {
"type": "string",
"defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
"minLength": 2,
"metadata": {
"description": "Web App name."
}
},
"appServicePlanName": {
"type": "string",
"defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
"minLength": 2,
"metadata": {
"description": "App Service Plan name."
}
},
"skuTier": {
"type": "string",
"defaultValue": "P1v3"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Web/sites",
"apiVersion": "2023-01-01",
"name": "[parameters('appServiceWebAppName')]",
"location": "[parameters('location')]",
"tags": {
"[format('hidden-related:{0}', resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName')))]": "empty"
},
"properties": {
"siteConfig": {
"appSettings": [
{
"name": "PORT",
"value": "8080"
}
],
"appCommandLine": "",
"windowsFxVersion": "DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp"
},
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
]
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2023-01-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('skuTier')]"
},
"kind": "windows",
"properties": {
"hyperV": true
}
}
]
}
Er worden twee Azure-resources gedefinieerd in de sjabloon:
- Microsoft.Web/serverfarms: een App Service-plan maken.
- Microsoft.Web/sites: een App Service-app maken.
Deze sjabloon bevat verschillende parameters die voor het gemak vooraf zijn gedefinieerd. Zie de tabel voor de standaardinstellingen voor parameters en de bijbehorende beschrijvingen:
Parameters | Type | Default value | Beschrijving |
---|---|---|---|
webAppName | tekenreeks | webApp-<uniqueString> |
App-naam op basis van een unieke tekenreekswaarde |
appServicePlanName | tekenreeks | webAppPlan-<uniqueString> |
Naam van App Service-plan op basis van een unieke tekenreekswaarde |
locatie | tekenreeks | [resourceGroup().location] |
App-regio |
skuTier | tekenreeks | P1v3 |
Instantiegrootte (beschikbare SKU's weergeven) |
app Instellingen | tekenreeks | [{"name": "PORT","value": "8080"}] |
App Service luistert naar de poort. Moet 8080 zijn. |
soort | tekenreeks | windows |
Besturingssysteem |
hyperv | tekenreeks | true |
Isolatiemodus |
windowsFxVersion | tekenreeks | DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp |
Containerinstallatiekopie |
De sjabloon implementeren
Hier wordt de Azure CLI gebruikt om de sjabloon te implementeren. U kunt ook Azure Portal, Azure PowerShell, de REST API gebruiken. Zie Sjablonen implementeren voor meer informatie over andere implementatiemethoden.
Met de volgende code maakt u een resourcegroep, een App Service-plan en een web-app. Er zijn een standaardresourcegroep, een App Service-plan en een locatie voor u ingesteld. Vervang <app-name>
door een globaal unieke app-naam (geldige tekens zijn a-z
, 0-9
en -
).
Voer de volgende opdrachten uit om een .NET Framework-app te implementeren in Windows.
az group create --name myResourceGroup --location "southcentralus"
az deployment group create --resource-group myResourceGroup \
--parameters language=".NET" helloWorld="true" webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows/azuredeploy.json"
Voer de volgende opdrachten uit om een Python-app te maken in Linux:
az group create --name myResourceGroup --location "southcentralus"
az deployment group create --resource-group myResourceGroup --parameters webAppName="<app-name>" linuxFxVersion="PYTHON|3.9" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-linux/azuredeploy.json"
Als u een andere taalstack wilt implementeren, werkt u linuxFxVersion
bij met de juiste waarden. Voorbeelden worden weergegeven in de tabel. Als u huidige versies wilt weergeven, voert u de volgende opdracht in de Cloud Shell uit: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion
Taal | Opmerking |
---|---|
.NET | linuxFxVersion="DOTNETCORE|3.0" |
PHP | linuxFxVersion="PHP|7.4" |
Node.js | linuxFxVersion="NODE|10.15" |
Java | linuxFxVersion="JAVA|1.8 |TOMCAT|9.0" |
Python | linuxFxVersion="PYTHON|3.7" |
Voer de volgende opdrachten uit om een .NET-app te implementeren in een Windows-container.
az group create --name myResourceGroup --location "southcentralus"
az deployment group create --resource-group myResourceGroup \
--parameters webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows-container/azuredeploy.json"
Notitie
U vindt hier meer App Service-sjabloonvoorbeelden.
De implementatie valideren
Blader naar http://<app_name>.azurewebsites.net/
en controleer of deze is gemaakt.
Resources opschonen
Verwijder de resourcegroep als u deze niet meer nodig hebt.