Rövid útmutató: App Service-alkalmazás létrehozása ARM-sablonnal

Ismerkedjen meg a Azure-alkalmazás Szolgáltatással, ha üzembe helyez egy alkalmazást a felhőben egy Azure Resource Manager-sablon (ARM-sablon) és egy Azure CLI használatával a Cloud Shellben. A Resource Manager-sablon egy JavaScript Object Notation (JSON) fájl, amely meghatározza a projekt infrastruktúráját és konfigurációját. Ennek a rövid útmutatónak a elvégzése nem jár költséggel, mivel ingyenes App Service-szintet használ.

A rövid útmutató elvégzéséhez aktív előfizetéssel rendelkező Azure-fiókra lesz szüksége. Ha nem rendelkezik Azure-fiókkal, ingyenesen létrehozhat egyet.

Ugrás a végére

Ha már ismeri az ARM-sablonok használatát, a gomb kiválasztásával Button to deploy the Resource Manager template to Azure. a végére ugorhat. Ez a gomb megnyitja az ARM-sablont az Azure Portalon.

Screenshot of the ARM Template in the Azure portal.

Az Azure Portalon válassza az Új létrehozása lehetőséget egy új erőforráscsoport létrehozásához, majd válassza a Véleményezés + létrehozás gombot az alkalmazás üzembe helyezéséhez.

Ismerkedjen meg a Azure-alkalmazás Szolgáltatással, ha üzembe helyez egy alkalmazást a felhőben egy Azure Resource Manager-sablon (ARM-sablon) és egy Azure CLI használatával a Cloud Shellben. A Resource Manager-sablon egy JavaScript Object Notation (JSON) fájl, amely meghatározza a projekt infrastruktúráját és konfigurációját. Ennek a rövid útmutatónak a elvégzése nem jár költséggel, mivel ingyenes App Service-szintet használ.

A rövid útmutató elvégzéséhez aktív előfizetéssel rendelkező Azure-fiókra lesz szüksége. Ha nem rendelkezik Azure-fiókkal, ingyenesen létrehozhat egyet.

Ugrás a végére

Ha már ismeri az ARM-sablonok használatát, a gomb kiválasztásával Button to deploy the Resource Manager template to Azure. a végére ugorhat. Ez a gomb megnyitja az ARM-sablont az Azure Portalon.

Screenshot of the ARM Template in the Azure portal.

Az Azure Portalon válassza az Új létrehozása lehetőséget egy új erőforráscsoport létrehozásához, majd válassza a Véleményezés + létrehozás gombot az alkalmazás üzembe helyezéséhez.

Ismerkedjen meg a Azure-alkalmazás Szolgáltatással, ha üzembe helyez egy alkalmazást a felhőben egy Azure Resource Manager-sablon (ARM-sablon) és egy Azure CLI használatával a Cloud Shellben. A Resource Manager-sablon egy JavaScript Object Notation (JSON) fájl, amely meghatározza a projekt infrastruktúráját és konfigurációját. Egy Windows-tárolóalkalmazás üzembe helyezéséhez prémium csomagra van szükség. A díjszabás részleteiért tekintse meg az App Service díjszabási oldalát .

Ugrás a végére

Ha már ismeri az ARM-sablonok használatát, a gomb kiválasztásával Button to deploy the Resource Manager template to Azure. a végére ugorhat. Ez a gomb megnyitja az ARM-sablont az Azure Portalon.

Screenshot of the ARM Template in the Azure portal.

Az Azure Portalon válassza az Új létrehozása lehetőséget egy új erőforráscsoport létrehozásához, majd válassza a Véleményezés + létrehozás gombot az alkalmazás üzembe helyezéséhez.

A sablon áttekintése

Az ebben a gyorsútmutatóban használt sablon az Azure-gyorssablonok közül származik. Egy App Service-csomagot és egy App Service-alkalmazást helyez üzembe Windows rendszeren. Kompatibilis a .NET Core-, .NET-keretrendszer-, PHP-, Node.js- és statikus HTML-alkalmazásokkal. A Java esetében lásd a Java-alkalmazás létrehozása című témakört.

{
  "$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'))]"
      ]
    }
  ]
}

A sablonban két Azure-erőforrás van definiálva:

Ez a sablon számos olyan paramétert tartalmaz, amelyek előre vannak definiálva az Ön kényelme érdekében. Az alapértelmezett paramétereket és azok leírását az alábbi táblázatban tekinthetik meg:

Paraméterek Típus Alapértelmezett érték Leírás
webAppName húr webApp-<uniqueString> Alkalmazásnév egyedi sztringérték alapján
appServicePlanName húr webAppPlan-<uniqueString> App Service-csomag neve egyedi sztringérték alapján
hely húr [resourceGroup().location] Alkalmazásrégió
sku húr F1 Példány mérete (F1 = ingyenes szint)
language húr .NET Programozási nyelvi verem (.NET, php, node, html)
helloWorld Logikai False True = Deploy ""Helló világ!" alkalmazás" app
repoUrl húr Külső Git-adattár (nem kötelező)

Az ebben a gyorsútmutatóban használt sablon az Azure-gyorssablonok közül származik. Egy App Service-csomagot és egy App Service-alkalmazást helyez üzembe Linuxon. Kompatibilis az App Service összes támogatott programozási nyelvével.

{
  "$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'))]"
      ]
    }
  ]
}

A sablonban két Azure-erőforrás van definiálva:

Ez a sablon számos olyan paramétert tartalmaz, amelyek előre vannak definiálva az Ön kényelme érdekében. Az alapértelmezett paramétereket és azok leírását az alábbi táblázatban tekinthetik meg:

Paraméterek Típus Alapértelmezett érték Leírás
webAppName húr webApp-<uniqueString> Alkalmazásnév egyedi sztringérték alapján
appServicePlanName húr webAppPlan-<uniqueString> App Service-csomag neve egyedi sztringérték alapján
hely húr [resourceGroup().location] Alkalmazásrégió
sku húr F1 Példány mérete (F1 = ingyenes szint)
linuxFxVersion húr DOTNETCORE|3.0 "Programozási nyelvi verem | Verzió"
repoUrl húr Külső Git-adattár (nem kötelező)

Az ebben a gyorsútmutatóban használt sablon az Azure-gyorssablonok közül származik. Egy App Service-csomagot és egy App Service-alkalmazást helyez üzembe egy Windows-tárolón.

{
  "$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
      }
    }
  ]
}

A sablonban két Azure-erőforrás van definiálva:

Ez a sablon számos olyan paramétert tartalmaz, amelyek előre vannak definiálva az Ön kényelme érdekében. Az alapértelmezett paramétereket és azok leírását az alábbi táblázatban tekinthetik meg:

Paraméterek Típus Alapértelmezett érték Leírás
webAppName húr webApp-<uniqueString> Alkalmazásnév egyedi sztringérték alapján
appServicePlanName húr webAppPlan-<uniqueString> App Service-csomag neve egyedi sztringérték alapján
hely húr [resourceGroup().location] Alkalmazásrégió
skuTier húr P1v3 Példány mérete (Elérhető termékváltozatok megtekintése)
alkalmazás Gépház húr [{"name": "PORT","value": "8080"}] App Service-figyelési port. 8080-nak kell lennie.
kind húr windows Operációs rendszer
hyperv húr true Elkülönítési mód
windowsFxVersion húr DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Tárolólemezkép

A sablon üzembe helyezése

Itt az Azure CLI-t használjuk a sablon üzembe helyezéséhez. Használhatja az Azure Portalt, az Azure PowerShellt és a REST API-t is. Az egyéb üzembehelyezési módszerekről a Sablonok üzembe helyezése című témakörben olvashat.

Az alábbi kód létrehoz egy erőforráscsoportot, egy App Service-csomagot és egy webalkalmazást. Beállított egy alapértelmezett erőforráscsoportot, App Service-csomagot és helyet. Cserélje le <app-name> egy globálisan egyedi alkalmazásnévre (az érvényes karakterek a következőka-z: és 0-9-).

Futtassa az alábbi parancsokat egy .NET-keretrendszeralkalmazás Windows rendszeren való üzembe helyezéséhez.

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"

A következő parancsok futtatásával hozzon létre Egy Python-alkalmazást Linuxon:

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"

Egy másik nyelvi verem üzembe helyezéséhez frissítsen linuxFxVersion a megfelelő értékekkel. A minták a táblázatban láthatók. Az aktuális verziók megjelenítéséhez futtassa a következő parancsot a Cloud Shellben: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

Nyelv Példa
.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"

Futtassa az alábbi parancsokat egy .NET-alkalmazás Windows-tárolón való üzembe helyezéséhez.

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"

Az üzembe helyezés ellenőrzése

Keresse meg és http://<app_name>.azurewebsites.net/ ellenőrizze, hogy létrejött-e.

Screenshot of the Windows code experience.

Screenshot of the Linux experience.

Screenshot of the Windows container experience.

Az erőforrások eltávolítása

Ha már nincs rá szükség, törölje az erőforráscsoportot.

Következő lépések