Partilhar via


Guia de início rápido: criar aplicativo do Serviço de Aplicativo usando um modelo ARM

Comece a usar o Serviço de Aplicativo do Azure implantando um aplicativo na nuvem usando um modelo do Azure Resource Manager (modelo ARM) e a CLI do Azure no Cloud Shell. Um modelo do Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. Você não incorre em custos para concluir este início rápido porque usa uma camada gratuita do Serviço de Aplicativo.

Para concluir este início rápido, você precisará de uma conta do Azure com uma assinatura ativa. Se não tiver uma conta do Azure, pode criar uma gratuitamente.

Saltar para o fim

Se você estiver familiarizado com o uso de modelos ARM, poderá pular para o final selecionando este Botão para implantar o modelo do Gerenciador de Recursos no Azure. botão. Este botão abre o modelo ARM no portal do Azure.

Captura de ecrã do Modelo ARM no portal do Azure.

No portal do Azure, selecione Criar novo para criar um novo Grupo de Recursos e, em seguida, selecione o botão Rever + criar para implementar a aplicação.

Comece a usar o Serviço de Aplicativo do Azure implantando um aplicativo na nuvem usando um modelo do Azure Resource Manager (modelo ARM) e a CLI do Azure no Cloud Shell. Um modelo do Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. Você não incorre em custos para concluir este início rápido porque usa uma camada gratuita do Serviço de Aplicativo.

Para concluir este início rápido, você precisará de uma conta do Azure com uma assinatura ativa. Se não tiver uma conta do Azure, pode criar uma gratuitamente.

Saltar para o fim

Se você estiver familiarizado com o uso de modelos ARM, poderá pular para o final selecionando este Botão para implantar o modelo do Gerenciador de Recursos no Azure. botão. Este botão abre o modelo ARM no portal do Azure.

Captura de ecrã do Modelo ARM no portal do Azure.

No portal do Azure, selecione Criar novo para criar um novo Grupo de Recursos e, em seguida, selecione o botão Rever + criar para implementar a aplicação.

Comece a usar o Serviço de Aplicativo do Azure implantando um aplicativo na nuvem usando um modelo do Azure Resource Manager (modelo ARM) e a CLI do Azure no Cloud Shell. Um modelo do Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. É necessário um plano premium para implantar um aplicativo de contêiner do Windows. Consulte a página de preços do Serviço de Aplicativo para obter detalhes de preços.

Saltar para o fim

Se você estiver familiarizado com o uso de modelos ARM, poderá pular para o final selecionando este Botão para implantar o modelo do Gerenciador de Recursos no Azure. botão. Este botão abre o modelo ARM no portal do Azure.

Captura de ecrã do Modelo ARM no portal do Azure.

No portal do Azure, selecione Criar novo para criar um novo Grupo de Recursos e, em seguida, selecione o botão Rever + criar para implementar a aplicação.

Rever o modelo

O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure. Ele implanta um plano do Serviço de Aplicativo e um aplicativo do Serviço de Aplicativo no Windows. É compatível com aplicativos .NET Core, .NET Framework, PHP, Node.js e HTML estático. Para Java, consulte Criar aplicativo 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'))]"
      ]
    }
  ]
}

Dois recursos do Azure são definidos no modelo:

Este modelo contém vários parâmetros que são predefinidos para sua conveniência. Consulte a tabela para obter os padrões de parâmetros e suas descrições:

Parâmetros Type Default value Description
webAppName string webApp-<uniqueString> Nome do aplicativo com base em um valor de cadeia de caracteres exclusivo
appServicePlanName string webAppPlan-<uniqueString> Nome do Plano do Serviço de Aplicativo com base em um valor de cadeia de caracteres exclusivo
localização string [resourceGroup().location] Região do aplicativo
sku string F1 Tamanho da instância (F1 = Nível Livre)
idioma string .NET Pilha de linguagem de programação (.NET, php, node, html)
OláMundo boolean False True = Implantar o aplicativo "Hello World"
repoUrl string Repositório Git externo (opcional)

O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure. Ele implanta um plano do Serviço de Aplicativo e um aplicativo do Serviço de Aplicativo no Linux. É compatível com todas as linguagens de programação suportadas no Serviço de Aplicativo.

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

Dois recursos do Azure são definidos no modelo:

Este modelo contém vários parâmetros que são predefinidos para sua conveniência. Consulte a tabela para obter os padrões de parâmetros e suas descrições:

Parâmetros Type Default value Description
webAppName string webApp-<uniqueString> Nome do aplicativo com base em um valor de cadeia de caracteres exclusivo
appServicePlanName string webAppPlan-<uniqueString> Nome do Plano do Serviço de Aplicativo com base em um valor de cadeia de caracteres exclusivo
localização string [resourceGroup().location] Região do aplicativo
sku string F1 Tamanho da instância (F1 = Nível Livre)
linuxFxVersion string DOTNETCORE|3.0 "Pilha de linguagem de programação | Versão"
repoUrl string Repositório Git externo (opcional)

O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure. Ele implanta um plano do Serviço de Aplicativo e um aplicativo do Serviço de Aplicativo em um contêiner do 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
      }
    }
  ]
}

Dois recursos do Azure são definidos no modelo:

Este modelo contém vários parâmetros que são predefinidos para sua conveniência. Consulte a tabela para obter os padrões de parâmetros e suas descrições:

Parâmetros Type Default value Description
webAppName string webApp-<uniqueString> Nome do aplicativo com base em um valor de cadeia de caracteres exclusivo
appServicePlanName string webAppPlan-<uniqueString> Nome do Plano do Serviço de Aplicativo com base em um valor de cadeia de caracteres exclusivo
localização string [resourceGroup().location] Região do aplicativo
skuTier string P1v3 Tamanho da instância (Exibir SKUs disponíveis)
appSettings string [{"name": "PORT","value": "8080"}] Porta de escuta do Serviço de Aplicativo. Precisa ser 8080.
variante string windows Sistema operativo
hiperv string true Modo de isolamento
windowsFxVersão string DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Imagem de contentor

Implementar o modelo

A CLI do Azure é usada aqui para implantar o modelo. Você também pode usar o portal do Azure, o Azure PowerShell e a API REST. Para aprender outros métodos de implantação, consulte Implantar modelos.

O código a seguir cria um grupo de recursos, um plano do Serviço de Aplicativo e um aplicativo Web. Um grupo de recursos padrão, um plano do Serviço de Aplicativo e um local foram definidos para você. Substitua <app-name> por um nome de aplicativo globalmente exclusivo (caracteres válidos são a-z, 0-9e -).

Execute os seguintes comandos para implantar um aplicativo .NET framework no 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"

Execute os seguintes comandos para criar um aplicativo Python no 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"

Para implantar uma pilha de idiomas diferente, atualize linuxFxVersion com os valores apropriados. As amostras são mostradas na tabela. Para mostrar as versões atuais, execute o seguinte comando no Cloud Shell: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

Idioma Exemplo
.NET linuxFxVersion="DOTNETCORE|3.0"
PHP linuxFxVersion="PHP|7.4"
Node.js linuxFxVersion="NÓ|10.15"
Java linuxFxVersion="JAVA|1.8 |TOMCAT|9,0"
Python linuxFxVersion="PYTHON|3.7"

Execute os seguintes comandos para implantar um aplicativo .NET em um contêiner do 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"

Validar a implementação

Procure http://<app_name>.azurewebsites.net/ e verifique se ele foi criado.

Captura de ecrã da experiência de código do Windows.

Captura de tela da experiência Linux.

Captura de tela da experiência de contêiner do Windows.

Clean up resources (Limpar recursos)

Quando não for mais necessário, exclua o grupo de recursos.

Próximos passos