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 Button to deploy the Resource Manager template to Azure. knop te selecteren. Met deze knop opent u de ARM-sjabloon in Azure Portal.

Screenshot of the ARM Template in the 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 Button to deploy the Resource Manager template to Azure. knop te selecteren. Met deze knop opent u de ARM-sjabloon in Azure Portal.

Screenshot of the ARM Template in the 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 Button to deploy the Resource Manager template to Azure. knop te selecteren. Met deze knop opent u de ARM-sjabloon in Azure Portal.

Screenshot of the ARM Template in the 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:

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:

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:

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.

Screenshot of the Windows code experience.

Screenshot of the Linux experience.

Screenshot of the Windows container experience.

Resources opschonen

Verwijder de resourcegroep als u deze niet meer nodig hebt.

Volgende stappen