Início Rápido: Criar um aplicativo Python no Serviço de Aplicativo do Azure no LinuxQuickstart: Create a Python app using Azure App Service on Linux

Neste Início Rápido, você implantará um aplicativo Web Python no Serviço de Aplicativo no Linux, um serviço de hospedagem Web do Azure que é altamente escalonável e conta com aplicação automática de patch.In this quickstart, you deploy a Python web app to App Service on Linux, Azure's highly scalable, self-patching web hosting service. Use a CLI (interface de linha de comando) do Azure local em um computador Mac, Linux ou Windows para implantar um exemplo com as estruturas Flask ou Django.You use the local Azure command-line interface (CLI) on a Mac, Linux, or Windows computer to deploy a sample with either the Flask or Django frameworks. O aplicativo Web que você configura usa uma camada de Serviço de Aplicativo gratuita, portanto, os procedimentos neste artigo não resultam em custos para você.The web app you configure uses a free App Service tier, so you incur no costs in the course of this article.

Para obter definições de termos comuns, confira Resumo da terminologia do Azure.For definitions of common terms, see Azure Terminology In Brief.

Dica

Se preferir usar o Visual Studio Code, siga nosso guia de início rápido do Serviço de Aplicativo do Visual Studio Code .If you prefer using Visual Studio Code instead, follow our Visual Studio Code App Service quickstart.

Configurar o seu ambiente inicialSet up your initial environment

  1. Tenha uma conta do Azure com uma assinatura ativa.Have an Azure account with an active subscription. Crie uma conta gratuitamente.Create an account for free.
  2. Instale o Python 3.6 ou mais recente.Install Python 3.6 or higher.
  3. Instale a CLI do Azure 2.0.80 ou superior, com a qual você executa comandos em qualquer shell para provisionar e configurar os recursos do Azure.Install the Azure CLI 2.0.80 or higher, with which you run commands in any shell to provision and configure Azure resources.

Abra uma janela de terminal e verifique se sua versão do Python é 3.6 ou superior:Open a terminal window and check your Python version is 3.6 or higher:

python3 --version

Verifique se a sua versão da CLI do Azure é 2.0.80 ou superior:Check that your Azure CLI version is 2.0.80 or higher:

az --version

Em seguida, entre no Azure por meio da CLI:Then sign in to Azure through the CLI:

az login

Esse comando abre um navegador para coletar suas credenciais.This command opens a browser to gather your credentials. Quando o comando for concluído, ele mostrará a saída JSON que contém informações sobre as suas assinaturas.When the command finishes, it shows JSON output containing information about your subscriptions.

Depois de conectado, você poderá executar os comandos do Azure com a CLI do Azure para trabalhar com recursos na sua assinatura.Once signed in, you can run Azure commands with the Azure CLI to work with resources in your subscription.

Está com problemas?Having issues? Fale conosco.Let us know.

Clonar o exemploClone the sample

Clone o repositório de exemplo usando o comando a seguir e navegue até a pasta do exemplo.Clone the sample repository using the following command and navigate into the sample folder. (Instale o Git se você ainda não o tiver.)(Install git if you don't have git already.)

git clone https://github.com/Azure-Samples/python-docs-hello-world
git clone https://github.com/Azure-Samples/python-docs-hello-django

O exemplo contém o código específico da estrutura que o Serviço de Aplicativo do Azure reconhece ao iniciar o aplicativo.The sample contains framework-specific code that Azure App Service recognizes when starting the app. Para obter mais informações, confira Processo de inicialização do contêiner.For more information, see Container startup process.

Está enfrentando problemas?Having issues? Fale conosco.Let us know.

Execute o exemploRun the sample

  1. Navegue até a pasta python-docs-hello-world:Navigate into in the python-docs-hello-world folder:

    cd python-docs-hello-world
    
  2. Crie um ambiente virtual e instale as dependências:Create a virtual environment and install dependencies:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    

    Se encontrar o erro "[Errno 2] Esse arquivo ou diretório não existe: 'requirements.txt'.", verifique se você está na pasta python-docs-hello-world.If you encounter "[Errno 2] No such file or directory: 'requirements.txt'.", make sure you're in the python-docs-hello-world folder.

  3. Execute o Development Server.Run the development server.

    flask run
    

    Por padrão, o servidor presume que o módulo de entrada do aplicativo esteja em app.py, conforme usado no exemplo.By default, the server assumes that the app's entry module is in app.py, as used in the sample.

    Se usar outro nome de módulo, defina a variável de ambiente FLASK_APP com esse nome.If you use a different module name, set the FLASK_APP environment variable to that name.

    Se encontrar o erro "Não foi possível localizar um aplicativo Flask.If you encounter the error, "Could not locate a Flask application. Você não forneceu a variável de ambiente 'FLASK_APP' e um módulo 'wsgi.py' ou 'app.py' não foi encontrado no diretório atual.", verifique se você está na pasta python-docs-hello-world que contém o exemplo.You did not provide the 'FLASK_APP' environment variable, and a 'wsgi.py' or 'app.py' module was not found in the current directory.", make sure you're in the python-docs-hello-world folder that contains the sample.

  4. Abra um navegador da Web e vá até o aplicativo de exemplo em http://localhost:5000/.Open a web browser and go to the sample app at http://localhost:5000/. O aplicativo exibe a mensagem Olá, Mundo! .The app displays the message Hello, World!.

    Executar um aplicativo Python de exemplo localmente

  5. Na janela do terminal, pressione Ctrl+C para sair do Development Server.In your terminal window, press Ctrl+C to exit the development server.

  1. Navegue até a pasta python-docs-hello-django:Navigate into the python-docs-hello-django folder:

    cd python-docs-hello-django
    
  2. Crie um ambiente virtual e instale as dependências:Create a virtual environment and install dependencies:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    

    Se encontrar o erro "[Errno 2] Esse arquivo ou diretório não existe: 'requirements.txt'.", verifique se você está na pasta python-docs-hello-django.If you encounter "[Errno 2] No such file or directory: 'requirements.txt'.", make sure you're in the python-docs-hello-django folder.

  3. Execute o Development Server.Run the development server.

    python manage.py runserver
    
  4. Abra um navegador da Web e vá até o aplicativo de exemplo em http://localhost:8000/.Open a web browser and go to the sample app at http://localhost:8000/. O aplicativo exibe a mensagem Olá, Mundo! .The app displays the message Hello, World!.

    Executar um aplicativo Python de exemplo localmente

  5. Na janela do terminal, pressione Ctrl+C para sair do Development Server.In your terminal window, press Ctrl+C to exit the development server.

Está enfrentando problemas?Having issues? Fale conosco.Let us know.

Implantar o exemploDeploy the sample

Implante o código em sua pasta local (python-docs-hello-world) usando o comando az webapp up:Deploy the code in your local folder (python-docs-hello-world) using the az webapp up command:

az webapp up --sku F1 --name <app-name>
  • Se o comando az não for reconhecido, verifique se você tem a CLI do Azure instalada, conforme descrito em Configurar seu ambiente inicial.If the az command isn't recognized, be sure you have the Azure CLI installed as described in Set up your initial environment.
  • Se o comando webapp não for reconhecido, sua versão da CLI do Azure será a 2.0.80 ou superior.If the webapp command isn't recognized, because that your Azure CLI version is 2.0.80 or higher. Caso contrário, instale a versão mais recente.If not, install the latest version.
  • Substitua <app_name> por um nome que seja exclusivo em todo o Azure (os caracteres válidos são a-z, 0-9 e - ).Replace <app_name> with a name that's unique across all of Azure (valid characters are a-z, 0-9, and -). Um bom padrão é usar uma combinação do nome da empresa e um identificador de aplicativo.A good pattern is to use a combination of your company name and an app identifier.
  • O argumento --sku F1 cria o aplicativo Web no tipo de preço Gratuito.The --sku F1 argument creates the web app on the Free pricing tier. Omita esse argumento para usar um nível Premium mais rápido, o que incorre em um custo por hora.Omit this argument to use a faster premium tier, which incurs an hourly cost.
  • Opcionalmente, você pode incluir o argumento --location <location-name>, em que <location_name> é uma região do Azure disponível.You can optionally include the argument --location <location-name> where <location_name> is an available Azure region. Você pode recuperar uma lista de regiões permitidas para sua conta do Azure executando o comando az account list-locations.You can retrieve a list of allowable regions for your Azure account by running the az account list-locations command.
  • Caso veja o erro "Não foi possível detectar automaticamente a pilha de runtime do seu aplicativo", verifique se você está executando o comando na pasta python-docs-hello-world (Flask) ou na pasta python-docs-hello-django (Django), que contém o arquivo requirements.txt.If you see the error, "Could not auto-detect the runtime stack of your app," make sure you're running the command in the python-docs-hello-world folder (Flask) or the python-docs-hello-django folder (Django) that contains the requirements.txt file. (Confira Solução de problemas na detecção automática com az webapp up (GitHub).)(See Troubleshooting auto-detect issues with az webapp up (GitHub).)

O comando pode demorar um pouco para ser concluído.The command may take a few minutes to complete. Durante a execução, ele fornece mensagens sobre como criar o grupo de recursos, o plano do Serviço de Aplicativo e o aplicativo de hospedagem, configurar o registro em log e executar a implantação ZIP.While running, it provides messages about creating the resource group, the App Service plan and hosting app, configuring logging, then performing ZIP deployment. Em seguida, ele fornece a mensagem "Você pode iniciar o aplicativo em http://<nome-do-aplicativo>.azurewebsites.net", que é a URL do aplicativo no Azure.It then gives the message, "You can launch the app at http://<app-name>.azurewebsites.net", which is the app's URL on Azure.

Exemplo de saída do comando az webapp up

Está enfrentando problemas?Having issues? Confira primeiro o Guia de solução de problemas. Caso contrário, fale conosco.Refer first to the Troubleshooting guide, otherwise, let us know.

Observação

O comando az webapp up realiza as seguintes ações:The az webapp up command does the following actions:

Navegar até o aplicativoBrowse to the app

Navegue até o aplicativo implantado no navegador da Web na URL http://<app-name>.azurewebsites.net.Browse to the deployed application in your web browser at the URL http://<app-name>.azurewebsites.net. Pode levar um ou dois minutos para que o aplicativo seja iniciado, portanto, se você vir uma página de aplicativo padrão, aguarde um minuto e atualize o navegador.It can take a minute or two for the the app to start, so if you see a default app page, wait a minute and refresh the browser.

O código de exemplo Python está executando um contêiner Linux no Serviço de Aplicativo usando uma imagem interna.The Python sample code is running a Linux container in App Service using a built-in image.

Executar um aplicativo Python de exemplo no Azure

Parabéns!Congratulations! Você implantou seu aplicativo Python no Serviço de Aplicativo.You've deployed your Python app to App Service.

Está enfrentando problemas?Having issues? Confira primeiro o Guia de solução de problemas. Caso contrário, fale conosco.Refer first to the Troubleshooting guide, otherwise, let us know.

Reimplantar atualizaçõesRedeploy updates

Nesta seção, você faz uma pequena alteração de código e reimplanta o código no Azure.In this section, you make a small code change and then redeploy the code to Azure. Essa alteração de código adiciona uma instrução print para gerar a saída de log com a qual você trabalha na próxima seção.The code change includes a print statement to generate logging output that you work with in the next section.

Abra app.py em um editor e atualize a função hello para que corresponda ao código a seguir.Open app.py in an editor and update the hello function to match the following code.

def hello():
    print("Handling request to home page.")
    return "Hello, Azure!"

Abra hello/views.py em um editor e atualize a função hello de maneira a corresponder ao código a seguir.Open hello/views.py in an editor and update the hello function to match the following code.

def hello(request):
    print("Handling request to home page.")
    return HttpResponse("Hello, Azure!")

Salve suas alterações e reimplante o aplicativo usando o comando az webapp up novamente:Save your changes, then redeploy the app using the az webapp up command again:

az webapp up

Esse comando usa valores armazenados em cache localmente no arquivo .azure/config, incluindo o nome do aplicativo, o grupo de recursos e o plano do Serviço de Aplicativo.This command uses values that are cached locally in the .azure/config file, including the app name, resource group, and App Service plan.

Depois que a implantação for concluída, volte para a janela do navegador aberta em http://<app-name>.azurewebsites.net.Once deployment is complete, switch back to the browser window open to http://<app-name>.azurewebsites.net. Atualize a página, que deve exibir a mensagem modificada:Refresh the page, which should display the modified message:

Executar um aplicativo Python de exemplo atualizado no Azure

Está enfrentando problemas?Having issues? Confira primeiro o Guia de solução de problemas. Caso contrário, fale conosco.Refer first to the Troubleshooting guide, otherwise, let us know.

Dica

O Visual Studio Code fornece extensões poderosas para o Python e o Serviço de Aplicativo do Azure, que simplificam o processo de implantação de aplicativos Web do Python no Serviço de Aplicativo.Visual Studio Code provides powerful extensions for Python and Azure App Service, which simplify the process of deploying Python web apps to App Service. Para obter mais informações, confira Implantar aplicativos Python no Serviço de Aplicativo por meio do Visual Studio Code.For more information, see Deploy Python apps to App Service from Visual Studio Code.

Transmitir logsStream logs

Você pode acessar os logs do console gerados de dentro do aplicativo e do contêiner no qual ele é executado.You can access the console logs generated from inside the app and the container in which it runs. Os logs incluem todas as saídas geradas usando instruções print.Logs include any output generated using print statements.

Para transmitir logs, execute o comando az webapp log tail:To stream logs, run the az webapp log tail command:

az webapp log tail

Você também pode incluir o parâmetro --logs com o comando az webapp up para abrir automaticamente o fluxo de log na implantação.You can also include the --logs parameter with then az webapp up command to automatically open the log stream on deployment.

Atualize o aplicativo no navegador para gerar logs de console, que incluem mensagens que descrevem solicitações HTTP para o aplicativo.Refresh the app in the browser to generate console logs, which include messages describing HTTP requests to the app. Se nenhuma saída for exibida imediatamente, tente novamente em 30 segundos.If no output appears immediately, try again in 30 seconds.

Você também pode inspecionar os arquivos de log do navegador em https://<app-name>.scm.azurewebsites.net/api/logs/docker.You can also inspect the log files from the browser at https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Para interromper o streaming de log a qualquer momento, pressione CTRL+C no terminal.To stop log streaming at any time, press Ctrl+C in the terminal.

Está enfrentando problemas?Having issues? Fale conosco.Let us know.

Gerenciar o aplicativo do AzureManage the Azure app

Acesse o portal do Azure para gerenciar o aplicativo que você criou.Go to the Azure portal to manage the app you created. Pesquise e selecione Serviços de Aplicativos.Search for and select App Services.

Navegar para os Serviços de Aplicativos no portal do Azure

Selecione o nome do seu aplicativo do Azure.Select the name of your Azure app.

Navegue até o aplicativo Python nos Serviços de Aplicativos no portal do Azure

A seleção do aplicativo abre a página Visão geral dele, em que você pode executar tarefas básicas de gerenciamento como procurar, parar, iniciar, reiniciar e excluir.Selecting the app opens its Overview page, where you can perform basic management tasks like browse, stop, start, restart, and delete.

Gerencie seu aplicativo Python na página Visão geral no portal do Azure

O menu de Serviço de Aplicativo fornece páginas diferentes para configurar seu aplicativo.The App Service menu provides different pages for configuring your app.

Está enfrentando problemas?Having issues? Veja primeiro o Guia de solução de problemas. Caso contrário, fale conosco.Refer first to the Troubleshooting guide, otherwise, let us know.

Limpar os recursosClean up resources

Nas etapas anteriores, você criou os recursos do Azure em um grupo de recursos.In the preceding steps, you created Azure resources in a resource group. O grupo de recursos tem um nome como "appsvc_rg_Linux_CentralUS", dependendo da sua localização.The resource group has a name like "appsvc_rg_Linux_CentralUS" depending on your location. Se você usar uma SKU do Serviço de Aplicativo diferente do nível F1 gratuito, esses recursos incorrerão em custos contínuos (confira Preço do Serviço de Aplicativo).If you use an App Service SKU other than the free F1 tier, these resources incur ongoing costs (see App Service pricing).

Se você achar que não precisará desses recursos no futuro, exclua o grupo de recursos executando o seguinte comando:If you don't expect to need these resources in the future, delete the resource group by running the following command:

az group delete --no-wait

O comando usa o nome do grupo de recursos armazenado em cache no arquivo .azure/config.The command uses the resource group name cached in the .azure/config file.

O argumento --no-wait permite que o comando seja retornado antes que a operação seja concluída.The --no-wait argument allows the command to return before the operation is complete.

Está enfrentando problemas?Having issues? Fale conosco.Let us know.

Próximas etapasNext steps