Início rápido: implantar um aplicativo Web Python (Django ou Flask) no Serviço de Aplicativo do Azure
Observação
A partir de 1º de junho de 2024, todos os aplicativos do Serviço de Aplicativo recém-criados terão a opção de criar um nome de host padrão exclusivo com uma convenção de nomenclatura <app-name>
-<random-hash>
.<region>
.azurewebsites.net
. Os nomes dos aplicativos existentes não serão alterados.
Exemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para obter mais informações, consulte Nome de Host Padrão Exclusivo para o Recurso do Serviço de Aplicativo.
Neste guia de início rápido, você implantará um aplicativo Web Python (Django ou Flask) no Serviço de Aplicativo do Azure. O Serviço de Aplicativo do Azure é um serviço de hospedagem na Web totalmente gerenciado que dá suporte a aplicativos Python hospedados em um ambiente de servidor Linux.
Para concluir este início rápido, você precisa de:
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Python 3.9 ou superior instalado localmente.
Observação
Este artigo contém instruções atuais de como implantar um aplicativo Web Python usando o Serviço de Aplicativo do Azure. Não há mais suporte para Python no Windows.
1 – Aplicativo de exemplo
Este guia de início rápido pode ser concluído usando Flask ou Django. Um aplicativo de exemplo em cada estrutura é fornecido para ajudá-lo a acompanhar este guia de início rápido. Baixe ou clone o aplicativo de exemplo em sua estação de trabalho local.
Para executar o aplicativo localmente:
Acesse a pasta do aplicativo:
cd msdocs-python-flask-webapp-quickstart
Crie um ambiente virtual para o aplicativo:
py -m venv .venv .venv\scripts\activate
Instalar as dependências:
pip install -r requirements.txt
Executar o aplicativo:
flask run
Navegue até o aplicativo de exemplo em
http://localhost:5000
um navegador da Web.
Está enfrentando problemas? Fale conosco.
2 – Criar um aplicativo Web no Azure
Para hospedar seu aplicativo no Azure, você precisa criar um aplicativo Web do Serviço de Aplicativo do Azure no Azure. Você pode criar um aplicativo web usando a CLI do Azure, o VS Code, o pacote de extensão de ferramentas do Azure ou o portal do Azure.
Comandos da CLI do Azure podem ser executados em um computador com a CLI do Azure instalada.
A CLI do Azure tem um comando az webapp up
que criará os recursos necessários e implantará seu aplicativo em uma só etapa.
Se necessário, faça logon no Azure usando az login.
az login
Crie o aplicativo Web e outros recursos e implante seu código no Azure usando az webapp up.
az webapp up --runtime PYTHON:3.9 --sku B1 --logs
- O parâmetro
--runtime
especifica a versão do Python que o aplicativo está executando. Este exemplo usa Python 3.9. Para listar todos os runtimes disponíveis, use o comandoaz webapp list-runtimes --os linux --output table
. - O parâmetro
--sku
define o tamanho (CPU, memória) e o custo do plano do Serviço de Aplicativo. Este exemplo usa o plano de serviço B1 (Básico), que gerará um pequeno custo em sua assinatura do Azure. Para obter uma lista completa dos planos do Serviço de Aplicativo, exiba a página de Preço do Serviço de Aplicativo. - O sinalizador
--logs
configura o log padrão necessário para habilitar a exibição do fluxo de log imediatamente após a inicialização do aplicativo Web. - Opcionalmente, você pode especificar um nome com o argumento
--name <app-name>
. Se você não fornecer um, um nome será gerado automaticamente. - Opcionalmente, você pode incluir o argumento
--location <location-name>
, em que<location_name>
é uma região do Azure disponível. Você pode recuperar uma lista de regiões permitidas para sua conta do Azure executando o comandoaz account list-locations
.
O comando pode demorar um pouco para ser concluído. Durante a execução do comando, ele envia mensagens sobre como criar o grupo de recursos, o plano do Serviço de Aplicativo, o recurso de aplicativo, como configurar o log e como fazer a implantação de zip. 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.
The webapp '<app-name>' doesn't exist Creating Resource group '<group-name>' ... Resource group creation complete Creating AppServicePlan '<app-service-plan-name>' ... Creating webapp '<app-name>' ... Configuring default logging for the app, if not already enabled Creating zip with contents of dir /home/cephas/myExpressApp ... Getting scm site credentials for zip deployment Starting zip deployment. This operation can take a while to complete ... Deployment endpoint responded with status code 202 You can launch the app at http://<app-name>.azurewebsites.net { "URL": "http://<app-name>.azurewebsites.net", "appserviceplan": "<app-service-plan-name>", "location": "centralus", "name": "<app-name>", "os": "<os-type>", "resourcegroup": "<group-name>", "runtime_version": "python|3.9", "runtime_version_detected": "0.0", "sku": "FREE", "src_path": "<your-folder-location>" }
Observação
O comando az webapp up
realiza as seguintes ações:
Criar um grupo de recursos padrão.
Criar um plano do Serviço de Aplicativo padrão.
Criar um aplicativo com o nome especificado.
Faça a implantação de zip de todos os arquivos do diretório de trabalho atual, com a automação de build habilitada.
Armazene em cache os parâmetros localmente no arquivo .azure/config para que você não precise especificá-los novamente na implantação posterior com
az webapp up
ou outros comandosaz webapp
da pasta do projeto. Os valores armazenados em cache são usados automaticamente por padrão.
Está enfrentando problemas? Fale conosco.
3 – Implantar o código do aplicativo no Azure
O Serviço de Aplicativo do Azure dá suporte a vários métodos para implantar o código do aplicativo no Azure, incluindo suporte para o GitHub Actions e todas as principais ferramentas de CI/CD. Este artigo se concentra em como implantar o código de sua estação de trabalho local no Azure.
- Implantar usando a CLI do Azure
- Implantar usando VS Code
- Implantar usando Git local
- Implantar usando um arquivo ZIP
Como o comando az webapp up
criou os recursos necessários e implantou o aplicativo em uma única etapa, você pode progredir para 4 – Navegar até o aplicativo.
Está com problemas? Confira primeiro o Guia de solução de problemas. Caso contrário, fale conosco.
4 – Navegar até o aplicativo
Navegue até o aplicativo implantado no navegador da Web na URL http://<app-name>.azurewebsites.net
. Se você vir uma página de aplicativo padrão, aguarde um minuto e atualize o navegador.
O código de exemplo Python está executando um contêiner Linux no Serviço de Aplicativo usando uma imagem interna.
Parabéns! Você implantou seu aplicativo Python no Serviço de Aplicativo.
Está enfrentando problemas? Confira primeiro o Guia de solução de problemas. Caso contrário, fale conosco.
5 – Transmitir logs
O Serviço de Aplicativo do Azure captura todas as mensagens geradas no console para ajudar você a diagnosticar problemas com seu aplicativo. Os aplicativos de exemplo incluem instruções print()
para demonstrar essa funcionalidade.
@app.route('/')
def index():
print('Request for index page received')
return render_template('index.html')
@app.route('/favicon.ico')
def favicon():
return send_from_directory(os.path.join(app.root_path, 'static'),
'favicon.ico', mimetype='image/vnd.microsoft.icon')
@app.route('/hello', methods=['POST'])
def hello():
name = request.form.get('name')
if name:
print('Request for hello page received with name=%s' % name)
return render_template('hello.html', name = name)
else:
print('Request for hello page received with no name or blank name -- redirecting')
return redirect(url_for('index'))
O conteúdo dos logs de diagnóstico do Serviço de Aplicativo pode ser revisado usando a CLI do Azure, o VS Code ou o portal do Azure.
Primeiro, você precisa configurar o Serviço de Aplicativo do Azure para gerar logs para o sistema de arquivos do Serviço de Aplicativo usando o comando az webapp log config.
az webapp log config \
--web-server-logging filesystem \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Para transmitir logs, use o comando az webapp log tail.
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Atualize a home page no aplicativo ou tente outras solicitações para gerar algumas mensagens de log. A saída deve ser semelhante ao seguinte.
Starting Live Log Stream ---
2021-12-23T02:15:52.740703322Z Request for index page received
2021-12-23T02:15:52.740740222Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET / HTTP/1.1" 200 1360 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.841043070Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.884541951Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:53.043211176Z 169.254.130.1 - - [23/Dec/2021:02:15:53 +0000] "GET /favicon.ico HTTP/1.1" 404 232 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.304306845Z Request for hello page received with name=David
2021-12-23T02:16:01.304335945Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "POST /hello HTTP/1.1" 200 695 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.398399251Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.430740060Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
Está enfrentando problemas? Confira primeiro o Guia de solução de problemas. Caso contrário, fale conosco.
Limpar os recursos
Ao terminar o aplicativo de exemplo, você poderá remover todos os recursos do aplicativo do Azure. Isso não incorrerá em encargos adicionais e manterá sua assinatura do Azure organizada. Remover o grupo de recursos também remove todos os recursos do grupo de recursos e é a maneira mais rápida de remover todos os recursos do Azure para seu aplicativo.
Exclua o grupo de recursos usando o comando az group delete.
az group delete \
--name msdocs-python-webapp-quickstart \
--no-wait
O argumento --no-wait
permite que o comando seja retornado antes que a operação seja concluída.
Está enfrentando problemas? Fale conosco.
Próximas etapas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de