Compartilhar via


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

Comece a usar o Serviço de Aplicativo do Azure implantando um aplicativo na nuvem usando um modelo do ARM (modelo do Azure Resource Manager) 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. Não será gerado nenhum custo para a conclusão deste início rápido, pois você usa uma Camada gratuita do Serviço de Aplicativo.

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

Observação

A partir da API arm versão 2024-11-01, os sites são criados com a autenticação básica desabilitada por padrão. Os usuários podem habilitá-lo manualmente , se necessário.

Ir para o final

Se estiver familiarizado com o uso de modelos do ARM, vá para o final selecionando o botão Botão para implantar o modelo do Resource Manager no Azure.. Esse botão abrirá o modelo do ARM no portal do Azure.

No portal do Azure, selecione Criar para criar um grupo de recursos e escolha o botão Revisar + criar para implantar o aplicativo.

Comece a usar o Serviço de Aplicativo do Azure implantando um aplicativo na nuvem usando um modelo do ARM (modelo do Azure Resource Manager) 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. Não será gerado nenhum custo para a conclusão deste início rápido, pois você usa uma Camada gratuita do Serviço de Aplicativo.

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

Observação

A partir da API arm versão 2024-11-01, os sites são criados com a autenticação básica desabilitada por padrão. Os usuários podem habilitá-lo manualmente , se necessário.

Ir para o final

Se estiver familiarizado com o uso de modelos do ARM, vá para o final selecionando o botão Botão para implantar o modelo do Resource Manager no Azure.. Esse botão abrirá o modelo do ARM no portal do Azure.

No portal do Azure, selecione Criar para criar um grupo de recursos e escolha o botão Revisar + criar para implantar o aplicativo.

Comece a usar o Serviço de Aplicativo do Azure implantando um aplicativo na nuvem usando um modelo do ARM (modelo do Azure Resource Manager) 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. Um plano premium é necessário para implantar um aplicativo de contêiner do Windows. Confira a página de preços do Serviço de Aplicativo para obter detalhes de preços.

Observação

A partir da API arm versão 2024-11-01, os sites são criados com a autenticação básica desabilitada por padrão. Os usuários podem habilitá-lo manualmente , se necessário.

Ir para o final

Se estiver familiarizado com o uso de modelos do ARM, vá para o final selecionando o botão Botão para implantar o modelo do Resource Manager no Azure.. Esse botão abrirá o modelo do ARM no portal do Azure.

No portal do Azure, selecione Criar para criar um grupo de recursos e escolha o botão Revisar + criar para implantar o aplicativo.

Examinar o modelo

O modelo usado neste início rápido é proveniente dos 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 .NET Core, .NET Framework, PHP, Node.js e aplicativos HTML estáticos. Para Java, confira 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",
        "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'))]"
      ]
    }
  ]
}

Há dois recursos do Azure definidos no modelo:

Este modelo contém vários parâmetros predefinidos para sua conveniência. Confira a tabela para obter os padrões de parâmetro e as descrições deles:

Parâmetros Tipo Valor padrão Descrição
webAppName cadeia webApp-<uniqueString> Nome do aplicativo baseado em um valor de cadeia de caracteres exclusivo
appServicePlanName cadeia webAppPlan-<uniqueString> Nome do Plano do Serviço de Aplicativo baseado em um valor de cadeia de caracteres exclusivo
local cadeia [resourceGroup().___location] Região do aplicativo
sku cadeia F1 Tamanho da instância (F1 = Camada Gratuita)
linguagem cadeia .NET Pilha da linguagem de programação (.NET, php, node, html)
helloWorld booleano False True = Implantar aplicativo "Olá, Mundo"
repoUrl cadeia Repositório Git externo (opcional)

O modelo usado neste início rápido é proveniente dos 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 com suporte 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|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'))]"
      ]
    }
  ]
}

Há dois recursos do Azure definidos no modelo:

Este modelo contém vários parâmetros predefinidos para sua conveniência. Confira a tabela para obter os padrões de parâmetro e as descrições deles:

Parâmetros Tipo Valor padrão Descrição
webAppName cadeia webApp-<uniqueString> Nome do aplicativo baseado em um valor de cadeia de caracteres exclusivo
appServicePlanName cadeia webAppPlan-<uniqueString> Nome do Plano do Serviço de Aplicativo baseado em um valor de cadeia de caracteres exclusivo
local cadeia [resourceGroup().___location] Região do aplicativo
sku cadeia F1 Tamanho da instância (F1 = Camada Gratuita)
linuxFxVersion cadeia DOTNETCORE|9.0 "Pilha da linguagem de programação | Versão"
repoUrl cadeia Repositório Git externo (opcional)

O modelo usado neste início rápido é proveniente dos 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
      }
    }
  ]
}

Há dois recursos do Azure definidos no modelo:

Este modelo contém vários parâmetros predefinidos para sua conveniência. Confira a tabela para obter os padrões de parâmetro e as descrições deles:

Parâmetros Tipo Valor padrão Descrição
webAppName cadeia webApp-<uniqueString> Nome do aplicativo baseado em um valor de cadeia de caracteres exclusivo
appServicePlanName cadeia webAppPlan-<uniqueString> Nome do Plano do Serviço de Aplicativo baseado em um valor de cadeia de caracteres exclusivo
local cadeia [resourceGroup().___location] Região do aplicativo
skuTier cadeia P1v3 Tamanho da instância (ver SKUs disponíveis)
appSettings cadeia [{"name": "PORT","value": "8080"}] Porta de escuta do Serviço de Aplicativo. Precisa ser 8080.
kind cadeia windows Sistema operacional
hyperv cadeia true Modo de isolamento
windowsFxVersion cadeia DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Imagem do contêiner

Implantar 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 saber mais sobre outros métodos de implantação, confira 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 uma localização são definidos para você. Substitua <app-name> por um nome de aplicativo global exclusivo (os caracteres válidos são a-z, 0-9 e -).

Execute os comandos a seguir 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 linguagem diferente, atualize linuxFxVersion com os valores apropriados. As amostras são apresentadas 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
Linguagem Exemplo
.NET linuxFxVersion="DOTNETCORE|9.0"
Java linuxFxVersion="JAVA|21-java21 TOMCAT|11.0-java21 JBOSSEAP|8-java17"
Node.js linuxFxVersion="NODE|22-lts
Python linuxFxVersion="PYTHON|3.13"
PHP linuxFxVersion="PHP|8.4"

Execute os comandos a seguir 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"

Observação

Você pode encontrar mais exemplos de modelo do Serviço de Aplicativo do Azure aqui.

Validar a implantação

Navegue até http://<app_name>.azurewebsites.net/ e verifique se ela foi criada.

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

Captura de tela da experiência do Linux.

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

Limpar os recursos

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

Próximas etapas