Guia de início rápido sobre o uso do Python

Neste guia de início rápido, você verá como executar programas em Python para gravar, ler, excluir e exportar entradas de registro.

Antes de começar

Você precisa ter um projeto do Google Cloud Platform com o faturamento ativado para concluir este guia de início rápido. Caso você não tenha um projeto do GCP ou não tenha o faturamento ativado para o projeto, faça o seguinte:
  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. Selecione ou crie um projeto do GCP.

    Acessar a página Gerenciar recursos

  3. Verifique se o faturamento foi ativado para o projeto.

    Saiba como ativar o faturamento

Este guia de início rápido usa o Stackdriver Logging e o Cloud Storage. O uso desses recursos pode gerar um custo para você. Quando você concluir este guia de início rápido, poderá evitar o faturamento contínuo excluindo os recursos criados. Consulte Limpeza para mais detalhes.

Primeiros passos

Use o ambiente do Cloud Shell ou um ambiente Linux genérico para concluir este guia de início rápido.

Cloud Shell

  1. As versões 2.7 e 3.5 do Python são pré-instaladas no Cloud Shell. Você não precisa instalar ou configurar nenhum outro software.

  2. Abra o Cloud Shell e verifique a configuração do projeto:

    1. No Console do GCP, clique no botão Ativar o Cloud Shell no canto superior direito:

      Ativar o Cloud Shell

      O Cloud Shell é aberto em uma janela e exibe uma mensagem de boas-vindas:

      Bem-vindo ao Cloud Shell

    2. A mensagem de boas-vindas exibe o código do projeto configurado. Se esse não for o projeto que você quer usar, execute o seguinte comando depois de substituir [PROJECT_ID] pelo código do projeto:

       gcloud config set project [PROJECT_ID]
      

Linux

  1. Instale e configure o Python. É possível usar as versões 2 ou 3 do Python para este guia de início rápido. Consulte Como configurar um ambiente de desenvolvimento Python para ver mais detalhes.

  2. Configure as permissões do Cloud Identity and Access Management para seu projeto. Nas etapas a seguir, você criará uma conta de serviço para seu projeto, gerará e fará o download de um arquivo para sua estação de trabalho do Linux.

    1. No Console do GCP, acesse IAM e administrador > Contas de serviço:

      Acessar a página "Contas de serviço"

    2. Selecione seu projeto de início rápido e clique em Criar conta de serviço:

      • Insira um nome para a conta.
      • Digite uma descrição para a conta.
      • Clique em Criar
    3. No painel Permissões da conta de serviço (opcional), em Papel, selecione Administrador do Logging na lista suspensa. Clique em Continuar.

    4. Ignore a opção para conceder aos usuários acesso à conta de serviço.

    5. Crie um arquivo de chave e faça o download para sua estação de trabalho:

      • No painel Criar chave (opcional), clique em Criar chave.
      • No tipo de chave, selecione JSON e clique em Criar. Depois de um momento, uma janela pop-up mostra uma mensagem semelhante à mostrada abaixo:

        Chave privada salva

    6. Para concluir a criação da sua conta de serviço, clique em Concluído.

  3. Na sua estação de trabalho do Linux, forneça suas credenciais de autenticação ao app definindo a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS como o caminho para seu arquivo de chave. Exemplo:

     export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json"
    

    Essa variável de ambiente aplica-se apenas à sessão de shell atual. Portanto, se você abrir uma nova sessão, defina a variável novamente.

Clonar fonte

Clone o projeto do GitHub python-docs-samples:

git clone https://github.com/GoogleCloudPlatform/python-docs-samples

O diretório python-docs-samples/logging/cloud-client contém os dois programas usados neste guia de início rápido:

  • snippets.py permite gerenciar entradas em um registro.
  • export.py permite gerenciar exportações de registro.

Para acessar o diretório do programa, execute o seguinte comando:

cd python-docs-samples/logging/cloud-client

Gravar entradas de registro

O programa snippets.py usa as bibliotecas de cliente do Python para gravar entradas de registro no Logging. Quando a opção write é especificada na linha de comando, o programa grava as seguintes entradas de registro:

  • Uma entrada com dados não estruturados e nenhum nível de gravidade especificado.
  • Uma entrada com dados não estruturados e um nível de gravidade de ERROR.
  • Uma entrada com dados estruturados em JSON e nenhum nível de gravidade especificado.

Para gravar novas entradas de registro em my-log, execute o programa snippets.py com a opção write:

python snippets.py my-log write

Exibir entradas de registro

Para visualizar as entradas de registro no Cloud Shell, execute o programa snippets.py com a opção list:

python snippets.py my-log list

Após alguns instantes, o comando é concluído e o resultado é parecido com:

    Listing entries for logger my-log:
    * 2018-11-15T16:05:35.548471+00:00: Hello, world!
    * 2018-11-15T16:05:35.647190+00:00: Goodbye, world!
    * 2018-11-15T16:05:35.726315+00:00: {u'favorite_color': u'Blue', u'quest': u'Find the Holy Grail', u'name': u'King Arthur'}

Se o resultado não mostrar nenhuma entrada, tente novamente o comando. Demora alguns momentos para o Logging receber e processar entradas de registro.

Também é possível ver suas entradas de registro usando o visualizador de registros. Consulte Ver registros no visualizador de registros para mais detalhes.

Excluir entradas de registro

Para excluir todas as entradas de registro de my-list, execute o programa snippets.py com a opção delete:

python snippets.py my-log delete

Após alguns instantes, o comando é concluído com o resultado:

Deleted all logging entries for my-log.

Exportar registros

O Logging pode exportar entradas de registro para intervalos do Cloud Storage, conjuntos de dados do BigQuery e para o Cloud Pub/Sub. Para informações detalhadas sobre exportação, consulte Visão geral das exportações de registros.

Nesta seção, você realizará as seguintes ações:

  • Criar um intervalo do Cloud Storage como o destino dos seus dados.
  • Criar um coletor que copie novas entradas de registro para o destino.
  • Atualizar as permissões do seu intervalo do Cloud Storage.
  • Gravar entradas de registro no Logging.
  • Como opção, verificar o conteúdo do seu intervalo do Cloud Storage.

Criar destino

O destino de exportação para este guia de início rápido é um intervalo do Cloud Storage. Para criar um intervalo do Cloud Storage:

  1. No Console do GCP, acesse Storage > Navegador:

    Acessar o navegador

  2. Clique em Criar intervalo.

  3. Selecione um nome para seu intervalo.

  4. Selecione Regional e escolha a opção geográfica mais próxima para o Local.

  5. Selecione Definir permissões no nível do objeto e do intervalo para o Modelo de controle de acesso.

  6. Mantenha o valor padrão de todas as outras configurações. Clique em Criar

O nome de intervalo do Cloud Storage deste guia de início rápido é myloggingproject-1.

Criar coletor

Um coletor é uma regra que determina se o Logging exporta uma entrada de registro recém-chegada para um destino. Um coletor tem três atributos:

  • Nome
  • Destino
  • Filtro

Se uma entrada de registro recente atender às condições do filtro, ela será exportada para o destino.

O programa export.py usa as bibliotecas de cliente do Python para criar, listar, modificar e excluir coletores. Para criar o coletor mysink que exporta todas as entradas de registro com uma gravidade de pelo menos INFO para o intervalo do Cloud Storage myloggingproject-1, execute o seguinte comando:

python export.py create mysink myloggingproject-1 "severity>=INFO"

Para ver seus coletores, execute o programa export.py com a opção list:

python export.py list

O resultado parece com o mostrado a seguir:

    mysink: severity>=INFO -> storage.googleapis.com/myloggingproject-1

Atualizar permissões de destino

As permissões do destino, neste caso, o intervalo do Cloud Storage, não são modificadas quando você cria um coletor usando o programa export.py. Altere as configurações de permissão do seu intervalo do Cloud Storage para conceder permissão de gravação ao coletor.

Para atualizar as permissões no seu intervalo do Cloud Storage:

  1. Identifique a Identidade do gravador dos coletores:

    1. Acesse a página Visualizador de registros

      Acessar a página Visualizador de registros

    2. Selecione Exportações para ver um resumo dos seus coletores, incluindo a Identidade do gravador dos coletores.

  2. No Console do GCP, clique em Storage > Navegador.

    Acessar o navegador

  3. Para abrir a visualização detalhada, clique no nome do seu intervalo.

  4. Selecione Permissões e clique em Adicionar membros.

  5. Defina o Papel como Storage Object Creator e insira a identidade do gravador do coletor.

Consulte Permissões de destino para mais informações.

Validar o coletor

Para validar se seu coletor e o destino estão configurados corretamente:

  1. Grave novas entradas de registro no my-log:

    python snippets.py my-log write
    
  2. Visualize o conteúdo do intervalo do Cloud Storage:

    1. No Console do GCP, clique em Storage > Navegador.

      Acessar o navegador

    2. Para abrir a visualização detalhada, clique no nome do seu intervalo. A vista detalhada lista as pastas que contêm dados. Se não houver dados no seu intervalo, a seguinte mensagem será exibida:

      There are no live objects in this bucket.

      Conforme descrito em Disponibilidade de registros exportados, pode levar de 2 a 3 horas para que as primeiras entradas apareçam no destino ou antes de você ser notificado sobre um erro de configuração.

    3. Depois que o intervalo tiver recebidos dados, a visualização detalhada mostrará um resultado semelhante a este:

      Conteúdo do intervalo

    4. Os dados em cada pasta são organizados em uma série de pastas identificadas. A pasta do nível superior consiste no nome do registro, seguida pelo ano, mês e dia. Para exibir os dados que foram exportados pelo seu coletor, clique no nome da pasta my-logs e continue clicando nas subpastas "ano", "mês" e "dia" até chegar a um arquivo que termina com json:

      Conteúdo do intervalo

    5. O arquivo JSON contém as entradas de registro que foram exportadas para seu intervalo do Cloud Storage. Clique no nome do arquivo JSON para ver o conteúdo dele. O conteúdo é semelhante ao seguinte:

       {"insertId":"yf1cshfoivz48",
       "logName":"projects/loggingproject-222616/logs/my-log",
       "receiveTimestamp":"2018-11-15T23:06:14.738729911Z",
       "resource":{"labels":{"project_id":"loggingproject-222616"},"type":"global"},
       "severity":"ERROR",
       "textPayload":"Goodbye, world!",
       "timestamp":"2018-11-15T23:06:14.738729911Z"}
      

      Como o nível de gravidade de ERROR é maior que o nível de gravidade de INFO, a entrada de registro que contém a string "Goodbye, world!"é exportada para o destino do coletor. As outras entradas de registros gravadas não foram exportadas para o destino porque seu nível de gravidade foi configurado para o valor padrão, e o nível de gravidade padrão é menor que INFO.

Resolver problemas

Um intervalo do Cloud Storage pode estar vazio por vários motivos:

  • Você não esperou tempo suficiente para que os dados aparecessem no intervalo. Pode levar de 2 a 3 horas para que as primeiras entradas apareçam no destino ou antes de você ser notificado sobre um erro de configuração. Consulte a disponibilidade de registros exportados para ver mais detalhes.

  • Você tem um erro de configuração. Nesse caso, você receberá uma mensagem de e-mail parecida com a seguinte linha de assunto:

     [ACTION REQUIRED] Stackdriver Logging export config error in myloggingproject.

    O conteúdo do corpo do e-mail descreve o problema de configuração. Por exemplo, se você não atualizou as permissões de destino, o seguinte código de erro será listado:

     bucket_permission_denied

    Para corrigir essa condição específica, consulte Permissões de atualização.

  • Você não gravou entradas de registro depois de criar o coletor. O coletor é aplicado apenas a entradas de registro recentes. Para corrigir esta situação, grave novas entradas de registro:

     python snippets.py my-log write
    

Limpar

Para evitar cobranças na sua conta do GCP pelo uso de recursos neste guia de início rápido:

  1. (Opcional) Exclua as entradas de registro criadas. Se você não excluir as entradas de registro, elas expirarão e serão removidas. Consulte Política de cotas. Para excluir todas as entradas de registro no my-log, execute o seguinte comando:

     python snippets.py my-log delete
    
  2. Exclua seu projeto ou os recursos do guia de início rápido.

    • Para excluir seu projeto, no painel Informações do projeto do Console do GCP, clique em Acessar configurações do projeto e selecione Encerrar.

    • Para excluir os recursos do guia de início rápido:

      1. Execute o seguinte comando para excluir o coletor:

        python export.py delete mysink
        
      2. Exclua o intervalo do Cloud Storage. Acesse o Console do GCP e clique em Storage > Navegador. Marque a caixa ao lado do nome do intervalo e clique em Excluir.

Próximas etapas

  • Consulte Contas de serviço para ver uma discussão detalhada sobre contas de serviço, escopos de acesso e papéis do Cloud Identity and Access Management.
  • Consulte Visualizador de registros para ver uma discussão mais detalhada sobre ele.
  • Consulte Como exportar registros para saber como exportar as entradas de registro para o Cloud Storage, o BigQuery e o Cloud Pub/Sub.
  • Consulte o Agente do Logging para saber como coletar entradas de registro das instâncias de máquina virtual no Stackdriver Logging.
  • Consulte Registros de auditoria para saber as necessidades de auditoria e compliance.
  • Para saber como ler, gravar e configurar registros dos aplicativos, consulte API Stackdriver Logging.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Stackdriver Logging
Precisa de ajuda? Acesse nossa página de suporte.