Início Rápido: Criar um aplicativo Python no Serviço de Aplicativo do Azure no LinuxQuickstart: Create a Python app in 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. Você usa a CLI (interface de linha de comando) local do Azure em um computador Mac, Linux ou Windows.You use the local Azure command-line interface (CLI) on a Mac, Linux, or Windows computer. 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.

Se preferir implantar aplicativos por meio de um IDE, confira Implantar aplicativos Python no Serviço de Aplicativo por meio do Visual Studio Code.If you prefer to deploy apps through an IDE, see Deploy Python apps to App Service from Visual Studio Code.

Pré-requisitosPrerequisites

Baixar o exemploDownload the sample

Em uma janela de terminal, execute o comando a seguir para clonar o aplicativo de exemplo para o computador local.In a terminal window, run the following command to clone the sample application to your local computer.

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

Em seguida, acesse esta pasta:Then go into that folder:

cd python-docs-hello-world

O repositório contém um arquivo application.py, que diz ao Serviço de Aplicativo que o código contém um aplicativo Flask.The repository contains an application.py file, which tells App Service that the code contains a Flask app. Para obter mais informações, consulte Personalizações e o processo de inicialização do contêiner.For more information, see Container startup process and customizations.

Execute o exemploRun the sample

Em uma janela do terminal, use os comandos abaixo (conforme apropriado para seu sistema operacional) para instalar as dependências necessárias e iniciar o servidor de desenvolvimento interno.In a terminal window, use the commands below (as appropriate for your operating system) to install the required dependencies and launch the built-in development server.

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
FLASK_APP=application.py
flask run

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

Na janela do terminal, pressione Ctrl+C para sair do servidor Web.In your terminal window, press Ctrl+C to exit the web server.

Entrar no AzureSign in to Azure

A CLI do Azure fornece muitos comandos úteis que você usa em um terminal local para provisionar e gerenciar recursos do Azure por meio da linha de comando.The Azure CLI provides you with many convenient commands that you use from a local terminal to provision and manage Azure resources from the command line. Você pode usar comandos para concluir as mesmas tarefas que realizaria por meio do portal do Azure em um navegador.You can use commands to complete the same tasks that you would through the Azure portal in a browser. Você também pode usar comandos da CLI em scripts para automatizar processos de gerenciamento.You can also use CLI commands in scripts to automate management processes.

Para executar comandos do Azure na CLI do Azure, primeiro você precisa entrar usando o comando az login.To run Azure commands in the Azure CLI, you must first sign in using the az login command. Esse comando abre um navegador para coletar suas credenciais.This command opens a browser to gather your credentials.

az login

Implantar o exemploDeploy the sample

O comando az webapp up cria o aplicativo Web no Serviço de Aplicativo e implanta seu código.The az webapp up command creates the web app on App Service and deploys your code.

Na pasta python-docs-hello-world que contém o código de exemplo, execute o comando az webapp up a seguir.In the python-docs-hello-world folder that contains the sample code, run the following az webapp up command. Substitua <app-name> por um nome de aplicativo global exclusivo (os caracteres válidos são a-z, 0-9 e - ).Replace <app-name> with a globally unique app name (valid characters are a-z, 0-9, and -). Também substitua <location-name> por uma região do Azure, assim como centralus, eastasia, westeurope, koreasouth, brazilsouth, centralindia e assim por diante.Also replace <location-name> with an Azure region such as centralus, eastasia, westeurope, koreasouth, brazilsouth, centralindia, and so on. (Você pode recuperar uma lista de regiões permitidas para sua conta do Azure executando o comando az account locations-list.)(You can retrieve a list of allowable regions for your Azure account by running the az account locations-list command.)

az webapp up --sku F1 -n <app-name> -l <location-name>

A execução desse comando pode demorar um pouco até ser concluída.This command may take a few minutes complete run. Na execução, ele exibe informações semelhantes ao seguinte exemplo:While running, it displays information similar to the following example:

The behavior of this command has been altered by the following extension: webapp
Creating Resource group 'appsvc_rg_Linux_centralus' ...
Resource group creation complete
Creating App service plan 'appsvc_asp_Linux_centralus' ...
App service plan creation complete
Creating app '<app-name>' ....
Webapp creation complete
Creating zip with contents of dir /home/username/quickstart/python-docs-hello-world ...
Preparing to deploy contents to app.
All done.
{
  "app_url": "https:/<app-name>.azurewebsites.net",
  "location": "Central US",
  "name": "<app-name>",
  "os": "Linux",
  "resourcegroup": "appsvc_rg_Linux_centralus ",
  "serverfarm": "appsvc_asp_Linux_centralus",
  "sku": "BASIC",
  "src_path": "/home/username/quickstart/python-docs-hello-world ",
  "version_detected": "-",
  "version_to_create": "python|3.7"
}

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.

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 no Linux.You've deployed your Python app to App Service on Linux.

Reimplantar atualizaçõesRedeploy updates

Em seu editor de código favorito, abra application.py e altere a instrução return na última linha para corresponder ao código a seguir.In your favorite code editor, open application.py and change the return statement on the last line to match the following code. A instrução print foi incluída aqui para gerar o log de saída com o qual você trabalha na próxima seção.The print statement is included here to generate logging output that you work with in the next section.

print("Handling request to home page.")
return "Hello Azure!"

Salve suas alterações e saia do editor.Save your changes and exit the editor.

Reimplante o aplicativo usando o seguinte comando az webapp up, usando o mesmo comando usado para implantar o aplicativo pela primeira vez, substituindo <app-name> e <location-name> pelos mesmos nomes que você usou antes.Redeploy the app using the following az webapp up command, using the same command you used to deploy the app the first time, replacing <app-name> and <location-name> with the same names you used before.

az webapp up --sku F1 -n <app-name> -l <location-name>

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

Executar um aplicativo Python de exemplo atualizado no Azure

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.

Primeiro, ative o log de contêiner executando o seguinte comando em um terminal, substituindo <app-name> pelo nome do seu aplicativo e <resource-group-name> pelo nome do grupo de recursos mostrado na saída do comando az webapp up que você usou (como "appsvc_rg_Linux_centralus"):First, turn on container logging by running the following command in a terminal, replacing <app-name> with the name of your app and <resource-group-name> with the name of the resource group shown in the output of the az webapp up command you used (such as "appsvc_rg_Linux_centralus"):

az webapp log config --name <app-name> --resource-group <resource-group-name> --docker-container-logging filesystem

Depois que o log do contêiner estiver ativado, execute o seguinte comando para exibir o fluxo de log:Once container logging is turned on, run the following command to show the log stream:

az webapp log tail --name <app-name> --resource-group <resource-group-name>

Atualize o aplicativo no navegador para gerar logs de console, que devem incluir linhas semelhantes ao texto a seguir.Refresh the app in the browser to generate console logs, which should include lines similar to the following text. Se você não vir a saída imediatamente, tente novamente em 30 segundos.If you don't see output immediately, try again in 30 seconds.

2019-10-23T12:40:03.815574424Z Handling request to home page.
2019-10-23T12:40:03.815602424Z 172.16.0.1 - - [23/Oct/2019:12:40:03 +0000] "GET / HTTP/1.1" 200 12 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.63 Safari/537.36 Edg/78.0.276.19"

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, digite Ctrl+C.To stop log streaming at any time, type Ctrl+C.

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

Você verá a página Visão geral do aplicativo.You see your app's Overview page. Aqui você pode executar tarefas básicas de gerenciamento como procurar, parar, iniciar, reiniciar e excluir.Here, 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.

Limpar 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 um SKU do Serviço de Aplicativo diferente da camada F1 gratuita, esses recursos incorrerão em custos contínuos.If you use an App Service SKU other than the free F1 tier, these resources will incur ongoing costs.

Se você não espera precisar desses recursos no futuro, exclua o grupo de recursos pela execução do comando a seguir, substituindo <resource-group-name> pelo grupo de recursos mostrado na saída do comando az webapp up, por exemplo, "appsvc_rg_Linux_centralus".If you don't expect to need these resources in the future, delete the resource group by running the following command, replacing <resource-group-name> with the resource group shown in the output of the az webapp up command, such as "appsvc_rg_Linux_centralus". O comando pode demorar um minuto para ser concluído.The command may take a minute to complete.

az group delete -n <resource-group-name>

Próximas etapasNext steps