Condividi tramite


Guida introduttiva: Creare un'app del servizio app con un modello di Azure Resource Manager

Iniziare a usare Servizio app di Azure distribuendo un'app nel cloud con un modello di Azure Resource Manager (modello di Azure Manager) e l'l'interfaccia della riga di comando di Azure in Cloud Shell. Un modello di Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Non sono previsti costi per completare questa guida introduttiva perché viene usato un livello di servizio app gratuito.

Per completare questa guida introduttiva, è necessario un account Azure con una sottoscrizione attiva. Se non si ha un account Azure, è possibile crearne uno gratuitamente.

Note

A partire dall'API ARM versione 2024-11-01, i siti vengono creati con l'autenticazione di base disabilitata per impostazione predefinita. Se necessario, gli utenti possono abilitarlo manualmente .

Passare alla fine

Se si ha familiarità con l'uso dei modelli di Resource Manager, è possibile passare alla fine selezionando questo pulsante Pulsante per distribuire il modello di Resource Manager in Azure.. Questo pulsante apre il modello di Resource Manager nel portale di Azure.

Nel portale di Azure selezionare Crea nuovo per creare un nuovo gruppo di risorse e quindi selezionare il pulsante Rivedi e crea per distribuire l'app.

Iniziare a usare Servizio app di Azure distribuendo un'app nel cloud con un modello di Azure Resource Manager (modello di Azure Manager) e l'l'interfaccia della riga di comando di Azure in Cloud Shell. Un modello di Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Non sono previsti costi per completare questa guida introduttiva perché viene usato un livello di servizio app gratuito.

Per completare questa guida introduttiva, è necessario un account Azure con una sottoscrizione attiva. Se non si ha un account Azure, è possibile crearne uno gratuitamente.

Note

A partire dall'API ARM versione 2024-11-01, i siti vengono creati con l'autenticazione di base disabilitata per impostazione predefinita. Se necessario, gli utenti possono abilitarlo manualmente .

Passare alla fine

Se si ha familiarità con l'uso dei modelli di Resource Manager, è possibile passare alla fine selezionando questo pulsante Pulsante per distribuire il modello di Resource Manager in Azure.. Questo pulsante apre il modello di Resource Manager nel portale di Azure.

Nel portale di Azure selezionare Crea nuovo per creare un nuovo gruppo di risorse e quindi selezionare il pulsante Rivedi e crea per distribuire l'app.

Iniziare a usare Servizio app di Azure distribuendo un'app nel cloud con un modello di Azure Resource Manager (modello di Azure Manager) e l'l'interfaccia della riga di comando di Azure in Cloud Shell. Un modello di Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Per distribuire un'app contenitore di Windows è necessario un piano Premium. Per informazioni dettagliate sui prezzi, vedere la pagina dei prezzi del servizio app.

Note

A partire dall'API ARM versione 2024-11-01, i siti vengono creati con l'autenticazione di base disabilitata per impostazione predefinita. Se necessario, gli utenti possono abilitarlo manualmente .

Passare alla fine

Se si ha familiarità con l'uso dei modelli di Resource Manager, è possibile passare alla fine selezionando questo pulsante Pulsante per distribuire il modello di Resource Manager in Azure.. Questo pulsante apre il modello di Resource Manager nel portale di Azure.

Nel portale di Azure selezionare Crea nuovo per creare un nuovo gruppo di risorse e quindi selezionare il pulsante Rivedi e crea per distribuire l'app.

Rivedere il modello

Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure. Distribuisce un piano di servizio app e un'app del servizio app in Windows. È compatibile con le app .NET Core, .NET Framework, PHP, Node.js e HTML statiche. Per Java, vedere Creare un'app 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",
        "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",
      "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."
      }
    }
  },
  "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'))]"
      ]
    }
  ]
}

Nel modello sono definite due risorse di Azure:

Questo modello contiene diversi parametri predefiniti per praticità. Vedere la tabella per le impostazioni predefinite dei parametri e le relative descrizioni:

Parametri TIPO Valore predefinito Descrizione
webAppName string webApp-<uniqueString> Nome dell'app basato su un valore string univoco
appServicePlanName string webAppPlan-<uniqueString> Nome del piano del servizio app basato su un valore string univoco
ubicazione string [resourceGroup().___location] Area dell'app
sku string F1 Dimensione delle istanze (F1 = livello gratuito)
Linguaggio string .NET Stack del linguaggio di programmazione (.NET, php, node, html)
helloWorld boolean False True = distribuire l'app "Hello World
repoUrl (URL del repository) string Repository Git esterno (facoltativo)

Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure. Distribuisce un piano di servizio app e un'app del servizio app in Linux. È compatibile con tutti i linguaggi di programmazione supportati nel servizio app.

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

Nel modello sono definite due risorse di Azure:

Questo modello contiene diversi parametri predefiniti per praticità. Vedere la tabella per le impostazioni predefinite dei parametri e le relative descrizioni:

Parametri TIPO Valore predefinito Descrizione
webAppName string webApp-<uniqueString> Nome dell'app basato su un valore string univoco
appServicePlanName string webAppPlan-<uniqueString> Nome del piano del servizio app basato su un valore string univoco
ubicazione string [resourceGroup().___location] Area dell'app
sku string F1 Dimensione delle istanze (F1 = livello gratuito)
linuxFxVersion string DOTNETCORE|9.0 "Stack del linguaggio di programmazione | Versione"
repoUrl (URL del repository) string Repository Git esterno (facoltativo)

Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure. Distribuisce un piano del servizio app e un'app del servizio app in un contenitore di Windows.

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

Nel modello sono definite due risorse di Azure:

Questo modello contiene diversi parametri predefiniti per praticità. Vedere la tabella per le impostazioni predefinite dei parametri e le relative descrizioni:

Parametri TIPO Valore predefinito Descrizione
webAppName string webApp-<uniqueString> Nome dell'app basato su un valore string univoco
appServicePlanName string webAppPlan-<uniqueString> Nome del piano del servizio app basato su un valore string univoco
ubicazione string [resourceGroup().___location] Area dell'app
skuTier string P1v3 Dimensioni dell'istanza (Visualizza gli SKU disponibili)
appSettings string [{"name": "PORT","value": "8080"}] Porta di ascolto del servizio app. Deve essere 8080.
kind string windows Sistema operativo
hyperv string true Modalità di isolamento
windowsFxVersion string DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Immagine del contenitore

Distribuire il modello

In questo caso per distribuire il modello viene usata l'interfaccia della riga di comando di Azure. È anche possibile usare il portale di Azure, Azure PowerShell e l'API REST. Per informazioni sugli altri metodi di distribuzione, vedere Distribuire modelli.

Il codice seguente crea un gruppo di risorse, un piano di servizio app e un'app Web. Un gruppo di risorse, un piano di servizio app e una posizione predefiniti sono impostati automaticamente. Sostituire <app-name> con un nome di app univoco globale (i caratteri validi sono a-z, 0-9 e -).

Eseguire i comandi seguenti per distribuire un'app .NET Framework 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"

Eseguire i comandi seguenti per creare un'app Python 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"

Per distribuire uno stack di linguaggio diverso, aggiornare linuxFxVersion con i valori appropriati. Nella tabella sono visualizzati degli esempi. Per visualizzare le versioni correnti, eseguire il comando seguente in Cloud Shell:

az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion
Linguaggio Esempio
.NET linuxFxVersion="DOTNETCORE|9.0"
Giava linuxFxVersion="JAVA|21-java21 TOMCAT|11.0-java21 JBOSSEAP|8-java17"
Node.js linuxFxVersion="NODE|22-lts
Pitone linuxFxVersion="PYTHON|3.13"
PHP linuxFxVersion="PHP|8.4"

Eseguire i comandi seguenti per distribuire un'app .NET in un contenitore di Windows.

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"

Note

È possibile trovare altri esempi di modelli del Servizio app di Azure qui.

Convalidare la distribuzione

Passare a http://<app_name>.azurewebsites.net/ e verificare che la creazione sia stata completata.

Screenshot che mostra l'esperienza del codice di Windows.

Screenshot che mostra l'esperienza Linux.

Screenshot che mostra l'esperienza del contenitore di Windows.

Pulire le risorse

Quando non è più necessario, eliminare il gruppo di risorse.

Passaggi successivi