Neste tutorial, você aprende a relatar e rastrear exceções não detectadas no tutorial Como começar a usar o Python usando o console doGoogle Cloud .
O Error Reporting fornece um painel centralizado que mostra contagens de cada erro exclusivo, rastreamentos de pilha e um histórico de ocorrências. Também é possível configurar um alerta para quando ocorrerem erros.
Esta página faz parte de um tutorial com várias páginas. Para começar do início e ver as instruções de configuração, consulte o artigo Aplicativo Bookshelf em Python.
Definir configurações
Esta seção usa código no diretório 5-logging. Edite os arquivos e execute os comandos nesse diretório.
-
Abra o arquivo
config.pypara edição e substitua os valores a seguir: -
Defina o valor de
[PROJECT_ID]como o ID do projeto, que fica visível no console Google Cloud . -
Defina o valor de
[DATA_BACKEND]como o mesmo valor usado na etapa Como usar dados estruturados deste tutorial. -
Se você estiver usando o Cloud SQL ou o MongoDB, defina os valores na
seção
Cloud SQLouMongocomo os mesmos valores usados na etapa Como usar dados estruturados. -
Defina o valor de
[CLOUD_STORAGE_BUCKET]como o nome do bucket do Cloud Storage. -
Na seção
OAuth2 configuration, defina os valores de[GOOGLE_OAUTH2_CLIENT_ID]e[GOOGLE_OAUTH2_CLIENT_SECRET]como o ID do cliente do aplicativo e a chave secreta que você criou anteriormente. -
Salve e feche o arquivo
config.py.
Se estiver usando o Cloud SQL:
-
Abra o arquivo
app.yamlpara edição. -
Defina o valor de
cloudsql-instancecomo o mesmo valor usado em[CLOUDSQL_CONNECTION_NAME]no arquivoconfig.py. Use o formatoproject:region:cloudsql-instance. Remova todo o comentário dessa linha. -
Salve e feche o arquivo
app.yaml.
Instalar dependências
Para criar um ambiente virtual e instalar dependências, use os comandos a seguir:
Linux/macOS
virtualenv -p python3 env
source env/bin/activate
pip install -r requirements.txt
Windows
virtualenv -p python3 env
env\scripts\activate
pip install -r requirements.txt
Execução do app na máquina local
Inicie um servidor da Web local:
python main.pyNo navegador, digite o seguinte endereço:
http://localhost:8080
Pressione Control+C para sair do worker e depois do servidor da Web local.
Como implantar o app no ambiente flexível do App Engine
Implante o app de amostra:
gcloud app deployNo navegador, digite o seguinte URL:
https://PROJECT_ID.REGION_ID.r.appspot.comSubstitua:
PROJECT_ID: o ID do projeto do Google CloudREGION_ID: um código que o App Engine atribui ao seu app
Se você atualizar o app, implante a versão atualizada inserindo o mesmo comando usado para implantá-lo. A implantação cria uma nova versão do app e a define como padrão. As versões anteriores do app são mantidas, assim como as instâncias de máquina virtual (VM, na sigla em inglês) associadas. Todas essas versões de app e instâncias de VM são recursos faturáveis. Para reduzir custos, exclua as versões não padrão do seu app.
Para excluir uma versão do app:
- In the Google Cloud console, go to the Versions page for App Engine.
- Select the checkbox for the non-default app version that you want to delete.
- Para excluir a versão do app, clique em Excluir.
Para mais informações sobre como limpar recursos faturáveis, consulte a seção Como fazer limpeza na etapa final deste tutorial.
Simular um erro
Para ver o Error Reporting em ação, insira um erro intencionalmente no código e procure a exceção na página do Error Reporting do console Google Cloud .
Em
bookshelf/crud.py, adicione uma operação que acesse uma variável indefinida e gere umReferenceErrorna visualização do índice.@crud.route("/") def list(): x[3]
Implante o aplicativo.
gcloud app deploy
Acesse a página de índice.
gcloud app browse
Veja a mensagem
An internal error occurred.-
No console Google Cloud , acesse a página Error Reporting:
Também é possível encontrar essa página usando a barra de pesquisa.
O erro será listado.
Clique no erro para ver informações sobre quando ele foi visto pela última vez, o número de vezes que ele ocorreu, um histograma de ocorrências e o rastreamento de pilha.
Noções básicas sobre o código
Para relatar exceções não identificadas, o código primeiro usa o decorador errorhandler do Flask.
Depois, relata a exceção para o Error Reporting usando
as
bibliotecas de cliente do Cloud para Python.
O cliente adiciona as informações de rastreamento automaticamente e usa uma função auxiliar para
extrair os detalhes relevantes da solicitação do Flask, que preenche o
Error Reporting com os rastreamentos de pilha e contextos HTTP relevantes para qualquer
exceção InternalServerError HTTP 500 não detectada no app.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
O jeito mais fácil de evitar o faturamentos é excluindo o projeto criado para este tutorial.
Para excluir o projeto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.