Jump Start Solution: pipeline de análise de registros

Last reviewed 2023-04-10 UTC

Neste guia, você vai entender, implantar e usar a solução Jump Start do pipeline de análise de registros, que demonstra como um fluxo de dados do aplicativo é capturado de várias origens e disponibilizado para análise.

Você pode implantar a solução para extrair e analisar os registros da Web de um aplicativo, o que pode ajudar você a fazer o seguinte:

  • Rastrear o acesso aos recursos do aplicativo.
  • Identificar e reagir aos padrões de uso no seu aplicativo.
  • Analisar e resolver problemas de desempenho.

Para mais informações sobre a implementação e práticas recomendadas de geração de registros, consulte Como monitorar e gerar registros de recursos.

Este documento é destinado a desenvolvedores com alguma experiência em processamento e análise de dados de registro de aplicativos. Ele pressupõe que você está familiarizado com os conceitos básicos da nuvem, mas não necessariamente o Google Cloud. Ter experiência com o Terraform é útil.

Objetivos

Este guia de solução ajuda você com estes tópicos:

  • Saiba como os dados fluem em uma programação de fontes na nuvem e no local para várias opções do Cloud Storage e, por fim, para seu fluxo de trabalho de análise.
  • Implante um pipeline de exemplo que captura, armazena e processa amostras de registros da Web de um aplicativo em execução no Cloud Run.
  • Analise as informações de registro consultando dados armazenados nas tabelas do BigQuery e visualizando dados em relatórios do Looker Studio.

Arquitetura

Essa solução inclui exemplos de registros da Web que capturam as interações dos usuários com um aplicativo da Web, incluindo logins, solicitações e modificações de dados. Veja no diagrama a seguir a arquitetura da solução:

Diagrama de solução de início do pipeline do análise de registros.

Fluxo da solicitação

Veja a seguir o fluxo de processamento de solicitação do pipeline de análise de registro que esta solução implanta. As etapas no fluxo são numeradas conforme mostrado no diagrama de arquitetura anterior.

  1. Um servidor da Web implantado no Cloud Run gera registros da Web quando um usuário visita um site implantado no servidor. Os registros da Web são enviados automaticamente para o Cloud Logging.

  2. O Cloud Logging roteia registros da Web para uma tabela designada no BigQuery, com base em uma programação na configuração do coletor do Cloud Logging.

  3. Os aplicativos em execução em outras nuvens ou no local fazem o upload de arquivos de registros da Web para um bucket do Cloud Storage. Essa implantação inclui um arquivo de texto que contém um arquivo de registros da Web de amostra no formato JSON.

  4. O serviço de transferência de dados do BigQuery transfere periodicamente os arquivos de registros da Web para uma tabela designada no BigQuery com base na configuração de transferência do serviço.

  5. Você executa consultas nos registros da Web na tabela ou usa o Looker Studio para visualizar os registros da Web.

Componentes e configuração

A arquitetura inclui os seguintes componentes:

Componente Descrição do produto Finalidade nesta solução
Cloud Run Um serviço totalmente gerenciado que permite criar e implantar aplicativos conteinerizados sem servidor. O Google Cloud lida com o escalonamento e outras tarefas de infraestrutura para que você possa se concentrar na lógica de negócios do seu código. Hospeda seu aplicativo e permite que ele execute e gere registros da Web.
Cloud Logging Um serviço que permite armazenar, pesquisar, analisar, monitorar e criar alertas sobre os registros de dados e eventos do Google Cloud e de outras nuvens. Encaminha registros da Web de aplicativos hospedados no Cloud Run para o data warehouse de maneira programada.
BigQuery Data warehouse altamente gerenciado e altamente escalonável com recursos integrados de machine learning. Armazena os registros gerados pelo aplicativo e fornece ferramentas para analisar os dados.
Serviço de transferência de dados do BigQuery Um serviço que transfere dados de fontes locais ou na nuvem para o data warehouse com segurança e a baixo custo. Move periodicamente os arquivos de registros gerados (por aplicativos executados em outras nuvens e no local) do Cloud Storage para o data warehouse do BigQuery.
Cloud Storage Um serviço pronto para empresas que oferece armazenamento de objetos de baixo custo e sem limite para diversos tipos de dados. Os dados podem ser acessados de dentro e de fora do Google Cloud e são replicados geograficamente de modo redundante. Funciona como um data lake, em que os aplicativos executados em outras nuvens e no local fazem upload dos arquivos de registro da Web. Esses arquivos são transferidos para o data warehouse do BigQuery. Um exemplo de arquivo de registro da Web está incluído nesta implantação.
Looker Studio Uma plataforma de Business Intelligence de autoatendimento que ajuda você a criar e compartilhar insights de dados. Oferece uma maneira de criar visualizações com base em informações de registros da Web.

Custo

Para uma estimativa dos custos dos recursos do Google Cloud usados pela solução de pipeline de Análise de Registros, consulte a estimativa pré-calculada na Calculadora de preços do Google Cloud.

Use a estimativa como um ponto de partida para calcular o custo da implantação. É possível modificar a estimativa para refletir as alterações de configuração planejadas para os recursos usados na solução.

A estimativa pré-calculada tem como base suposições específicas, incluindo o seguinte:

  • Os locais do Google Cloud em que os recursos são implantados.
  • A quantidade de tempo em que os recursos são usados.

  • A quantidade de dados armazenados e analisados com o BigQuery.

implantar a solução

Esta seção orienta você no processo de implantação da solução.

Criar ou escolher um projeto do Google Cloud

Ao implantar a solução, escolha o projeto do Google Cloud em que os recursos serão implantados. Ao decidir entre usar um projeto existente ou criar um, considere os seguintes fatores:

  • Se você criar um projeto para a solução, quando não precisar mais da implantação, será possível excluir o projeto e evitar o faturamento contínuo. Se você usar um projeto existente, será preciso excluir a implantação quando não precisar mais dela.
  • Usar um novo projeto pode ajudar a evitar conflitos com recursos provisionados anteriormente, como recursos usados em cargas de trabalho de produção.

Se você quiser implantar a solução em um novo projeto, crie o projeto antes de iniciar a implantação.

Para criar um projeto, siga estas etapas:

  1. No console do Google Cloud, acesse a página do seletor de projetos.

    Acessar o seletor de projetos

  2. Para começar a criar um projeto do Google Cloud, clique em Criar projeto.

  3. Escolha o nome do projeto. Anote o código do projeto gerado.

  4. Edite os outros campos conforme necessário.

  5. Para criar o projeto, clique em Criar.

Receber as permissões de IAM necessárias

Para iniciar o processo de implantação, você precisa das permissões do Identity and Access Management (IAM) listadas na tabela a seguir. Se você tem o papel básico roles/owner no projeto em que planeja implantar a solução, você já tem todas as permissões necessárias. Se você não tiver o papel roles/owner, peça ao administrador para conceder essas permissões (ou as que incluem essas permissões) a você.

Permissão do IAM necessária Papel predefinido que inclui as permissões necessárias

serviceusage.services.enable

Administrador do Service Usage
(roles/serviceusage.serviceUsageAdmin)

iam.serviceAccounts.create

Administrador da conta de serviço
(roles/iam.serviceAccountAdmin)

resourcemanager.projects.setIamPolicy

Administrador de projetos do IAM
(roles/resourcemanager.projectIamAdmin)
config.deployments.create
config.deployments.list
Administrador do Cloud Config Manager
(roles/config.admin)

Conta de serviço criada para a solução

Quando você inicia o processo de implantação, uma conta de serviço é criada para implantar a solução em seu nome (e para excluí-la depois, se você quiser). Essa conta de serviço recebe determinadas permissões do IAM temporariamente, ou seja, as permissões são revogadas automaticamente após a conclusão das operações de implantação e exclusão da solução. O Google recomenda que, após a exclusão da implantação, você exclua a conta de serviço, conforme descrito mais adiante neste guia.

Ver os papéis atribuídos à conta de serviço

Esses papéis estão listados aqui caso o administrador precise dessas informações.

  • roles/bigquery.admin
  • roles/iam.serviceAccountAdmin
  • roles/iam.serviceAccountUser
  • roles/logging.configWriter
  • roles/resourcemanager.projectIamAdmin
  • roles/run.admin
  • roles/serviceusage.serviceUsageAdmin
  • roles/storage.admin

Escolher um método de implantação

É possível implantar essa solução usando os seguintes métodos:

  • No console: use esse método para testar a solução ver como ela funciona. O Cloud Build implanta todos os recursos necessários para a solução. Quando você não precisar mais da solução implantada, será possível excluí-la usando o console. Todos os recursos criados depois da implantação da solução talvez precisem ser excluídos separadamente.

    Para usar esse método de implantação, siga as instruções em Implantar a partir do console.

  • Com o Terraform: use esse método se quiser personalizar a solução ou automatizar o provisionamento e o gerenciamento dos recursos usando a abordagem de infraestrutura como código (IaC). Faça o download da configuração do Terraform no GitHub, personalize o código conforme necessário e implante a solução usando o Terraform. Depois de implantar a solução, é possível continuar a usar o Terraform para gerenciá-la.

    Para usar esse método de implantação, siga as instruções em Implantar usando o Terraform.

Implantar do console

Conclua as etapas a seguir para implantar a solução pré-configurada como está.

  1. No catálogo do Google Cloud Jump Start Solutions, acesse a página Pipeline de análise de registro.

  2. Revise as informações fornecidas na página, como o custo estimado da solução e o tempo de implantação.

  3. Quando estiver tudo pronto para começar a implantar a solução, clique em Implantar.

    Veja um guia interativo passo a passo.

  4. Conclua estas etapas no guia interativo:

    1. Selecione um projeto em que você quer criar recursos implantados pela solução e clique em Continuar.

    2. No campo Nome da implantação, digite um nome que não foi usado anteriormente neste projeto.

    3. Se quiser, adicione um rótulo de identificação à implantação. Os identificadores de solução e rótulos de nome da implantação são adicionados automaticamente. É possível usar rótulos para organizar recursos por critérios como centro de custo, ambiente ou estado.

      Para mais informações sobre rótulos, consulte Como criar e gerenciar rótulos

    4. Na lista Região, selecione a região em que os recursos serão criados.

      Para saber mais sobre regiões, consulte Geografia e regiões

  5. Após especificar as opções, clique em Implantar.

    A página Implantações da solução é exibida. O campo Status nesta página mostra Implantação.

  6. Aguarde a solução ser implantada.

    Se a implantação falhar, o campo Status vai mostrar Falha. Use o registro do Cloud Build para diagnosticar os erros. Para mais informações, consulte Erros ao implantar no console

    Depois que a implantação for concluída, o campo Status mudará para Implantado.

  7. Para ver os recursos do Google Cloud implantados e as configurações deles, faça um tour interativo.

    Iniciar o tour

Usar a solução

Quando a implantação da solução for concluída, será possível interagir com ela para garantir que o contêiner esteja em execução e iniciar a análise. Conclua as etapas a seguir para usar a solução.

  1. Na página Implantações da solução, clique no menu Ações .

  2. Para ver o site de demonstração da imagem de contêiner do Cloud Run, clique em Ver site de demonstração.

    O site de demonstração contém informações básicas e o status de execução da imagem do contêiner.

  3. Aguarde até 15 minutos para que a transferência de dados inicial seja concluída.

  4. Para visualizar as informações de registro, volte para a página Implantações da solução, clique no menu Ações e em Visualizar relatório do Looker Studio.

    O relatório do Looker Studio ajuda a visualizar informações de host e status dos registros gerados de amostra. Para mais informações sobre como interagir com os dados, consulte Analisar dados com o Looker Studio do BI Engine.

  5. Para ver informações detalhadas do registro, volte para a página Implantações da solução, clique no menu Ações e faça o seguinte:

    1. Clique em Ver registros no BigQuery. A página Explorer é aberta e exibe informações sobre o conjunto de dados logsink que você está usando para esta implantação.

    2. No painel Explorer, expanda o recurso "logsink".

    3. Clique na tabela transferred_logs.

    4. No painel transferred_logs, clique na guia Preview. Todos os dados de registro na tabela são exibidos.

    Para mais informações sobre como analisar dados nas tabelas do BigQuery, consulte Visão geral da análise do BigQuery

Você implantou a solução de exemplo, interagiu com um relatório de amostra e visualizou informações de registro no data warehouse. Para saber mais sobre as recomendações de design para atender às necessidades específicas de análise de registros da sua organização, consulte Recomendações de design.

Quando você não precisar mais da solução, exclua a implantação para evitar o faturamento contínuo dos recursos do Google Cloud. Para mais informações, consulte Excluir a implantação.

Implantar com o Terraform

Nesta seção, descrevemos como personalizar a solução ou automatizar o provisionamento e o gerenciamento dela usando o Terraform. As soluções que você implanta usando o código do Terraform não são exibidas na página Implantações da solução no console do Google Cloud.

Configurar o cliente do Terraform

É possível executar o Terraform no Cloud Shell ou no seu host local. Neste guia, descrevemos como executar o Terraform no Cloud Shell, que tem o Terraform pré-instalado e configurado para autenticação com o Google Cloud.

O código do Terraform para esta solução está disponível em um repositório do GitHub.

  1. Clone o repositório do GitHub no Cloud Shell.

    Abrir no Cloud Shell

    Você verá um prompt para confirmar o download do repositório do GitHub para o Cloud Shell.

  2. Clique em Confirmar.

    O Cloud Shell é iniciado em uma guia separada do navegador, e o código do Terraform é transferido por download para o diretório $HOME/cloudshell_open do seu ambiente do Cloud Shell.

  3. No Cloud Shell, verifique se o diretório de trabalho atual é $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Esse é o diretório que contém os arquivos de configuração do Terraform para a solução. Se você precisar mudar para esse diretório, execute o seguinte comando:

    cd $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example
    
  4. Inicialize o Terraform executando o seguinte comando:

    terraform init
    

    Aguarde até ver a seguinte mensagem:

    Terraform has been successfully initialized!
    

Configurar as variáveis do Terraform

O código do Terraform que você salvou inclui variáveis que podem ser usadas para personalizar a implantação com base nos seus requisitos. Por exemplo, é possível especificar o projeto do Google Cloud e a região em que você quer que a solução seja implantada.

  1. Verifique se o diretório de trabalho atual é $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Se não estiver, acesse esse diretório.

  2. No mesmo diretório, crie um arquivo de texto chamado terraform.tfvars.

  3. No arquivo terraform.tfvars, copie o snippet de código a seguir e defina valores para as variáveis necessárias.

    • Siga as instruções fornecidas como comentários no snippet de código.
    • Esse snippet de código inclui apenas as variáveis para as quais você precisa definir valores. A configuração do Terraform inclui outras variáveis que têm valores padrão. Para revisar todas as variáveis e os valores padrão, consulte o arquivo variables.tf disponível no diretório $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example.
    • Verifique se cada valor definido no arquivo terraform.tfvars corresponde ao tipo da variável, conforme declarado no arquivo variables.tf. Por exemplo, se o tipo definido para uma variável no arquivo variables.tf for bool, especifique true ou false como o valor dessa variável no arquivo terraform.tfvars.
      # This is an example of the terraform.tfvars file.
      # The values that you set in this file must match the variable types, as declared in variables.tf.
      # The values in this file override any defaults in variables.tf.
    
      # The project to provision resources to (required)
      project_id = "PROJECT_ID"
    
      # Google Cloud region where you want to deploy the solution (optional)
      # Example: us-central1
      region = "REGION"
    
      # The name used when resources are provisioned (optional)
      # Example: log-analysis
      deployment_name = project_id = "DEPLOYMENT_NAME"
    
      # A set of key/value label pairs to assign to the resources deployed by this solution (optional)
      # Example: {"team"="monitoring", "environment"="test"}
      labels = {"KEY1"="VALUE1",..."KEYn"="VALUEn"}
    
      # Whether to enable underlying APIs (optional)
      # Example: true
      enable_apis = "ENABLE_APIS"
    
      # Whether to delete all BigQuery resources when the solution is deleted (optional)
      # Example: false
      delete_content_on_destroy = "DELETE_CONTENT_ON_DESTROY"
    

Para informações sobre os valores que podem ser atribuídos às variáveis obrigatórias, consulte:

  • project_id é obrigatório. Para detalhes sobre esse valor, consulte Identificar projetos.

  • As outras variáveis têm valores padrão. É possível mudar alguns deles (por exemplo, deployment_name e labels).

Validar e revisar a configuração do Terraform

  1. Verifique se o diretório de trabalho atual é $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Se não estiver, acesse esse diretório.

  2. Verifique se a configuração do Terraform não tem erros:

    terraform validate
    

    Se o comando retornar algum erro, faça as correções necessárias na configuração e execute o comando terraform validate novamente. Repita essa etapa até o comando retornar a seguinte mensagem:

    Success! The configuration is valid.
    
  3. Analise os recursos definidos na configuração:

    terraform plan
    
  4. Se você não tiver criado o arquivo terraform.tfvars conforme descrito anteriormente, o Terraform solicitará que você insira valores das variáveis que não têm valores padrão. Insira os valores obrigatórios.

    A saída do comando terraform plan é uma lista dos recursos provisionados pelo Terraform quando você aplica a configuração.

    Se você quiser fazer alterações, edite a configuração e execute os comandos terraform validate e terraform plan novamente.

Provisionar os recursos

Quando nenhuma outra alteração for necessária na configuração, implante os recursos:

  1. Verifique se o diretório de trabalho atual é $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Se não estiver, acesse esse diretório.

  2. Aplique a configuração do Terraform:

    terraform apply
    
  3. Se você não tiver criado o arquivo terraform.tfvars conforme descrito anteriormente, o Terraform solicitará que você insira valores das variáveis que não têm valores padrão. Insira os valores obrigatórios.

    O Terraform exibe uma lista dos recursos que serão criados.

  4. Quando for solicitado que você execute as ações, digite yes.

    O Terraform exibe mensagens mostrando o progresso da implantação.

    Se não for possível concluir a implantação, o Terraform exibirá os erros que causaram a falha. Analise as mensagens de erro e atualize a configuração para corrigi-los. Em seguida, execute o comando terraform apply novamente. Para receber ajuda com a solução de problemas do Terraform, consulte Erros ao implantar a solução usando o Terraform.

    Depois que todos os recursos forem criados, o Terraform exibirá a seguinte mensagem:

    Apply complete!
    

    Depois que todos os recursos forem criados, o Terraform exibirá uma mensagem semelhante à seguinte (alguns valores serão diferentes na sua implantação):

      bigquery_dataset_name = "<DEPLOYMENT_NAME>_logsink"
      bigquery_dataset_url = "https://console.cloud.google.com/bigquery?project=<PROJECT_ID>&ws=!1m4!1m3!3m2!1sPROJECT_ID!2s<DEPLOYMENT_NAME_logsink"
      bigquery_table_name = "transferred_logs"
      bucket_name = "<DEPLOYMENT_NAME>-ingest-cce5ab38"
      cloud_run_url="<VALUE>"
      lookerstudio_report_url = "https://lookerstudio.google.com/reporting/create?c.mode=edit&ds.connector=BIG_QUERY&ds.type=TABLE&ds.projectId=<PROJECT_ID>&ds.datasetId=<DEPLOYMENT_NAME>_logsink&ds.tableId=transferred_logs"
    

    Estes detalhes são exibidos:

    • Nome do conjunto de dados do BigQuery: o conjunto de dados em que os registros da Web são armazenados.
    • URL do conjunto de dados do BigQuery: um link para os detalhes do conjunto de dados no console do Google Cloud.
    • Nome da tabela do BigQuery: a tabela em que os dados são armazenados no conjunto de dados.
    • Nome do bucket: o bucket de armazenamento que armazena arquivos de registro da Web de aplicativos executados em outras nuvens e no local.
    • URL do relatório do Looker Studio: um link para um relatório em que é possível visualizar os registros da Web.

Usar a solução

Quando a implantação da solução for concluída, será possível interagir com ela para garantir que o contêiner esteja em execução e iniciar a análise. Conclua as etapas a seguir para usar a solução.

  1. Faça cópias dos valores de bigquery_dataset_url e lookerstudio_report_url para poder usá-los mais tarde.

  2. Aguarde até 15 minutos para que a transferência de dados inicial seja concluída.

  3. Para visualizar as informações do registro, cole o URL do Looker Studio no navegador.

    O relatório do Looker Studio ajuda a visualizar informações de host e status sobre os registros da Web de amostra. Para mais informações sobre como interagir com os dados, consulte Analisar dados com o Looker Studio do BI Engine.

  4. Para ver informações detalhadas do registro, faça o seguinte:

    1. Cole o nome do conjunto de dados do BigQuery no seu navegador. A página Explorer é aberta e exibe informações sobre o conjunto de dados que você está usando para esta implantação.

    2. No painel Explorer, expanda o recurso "logsink".

    3. Clique na tabela transferred_logs.

    4. No painel à direita, clique em Visualizar. Todos os dados de registro na tabela são exibidos.

    Para mais informações sobre como analisar dados nas tabelas do BigQuery, consulte Visão geral da análise do BigQuery

  5. Para ver os recursos do Google Cloud implantados e as configurações deles, faça um tour interativo.

    Iniciar o tour

Personalizar a solução

Nesta seção, fornecemos informações que os desenvolvedores do Terraform podem usar para modificar a solução de pipeline de análise de registro para atender aos próprios requisitos técnicos e comerciais. As orientações nesta seção são relevantes apenas se você implantar a solução usando o Terraform.

Os recursos do Google Cloud provisionados por esta solução têm parâmetros pré-configurados. Para demonstrar o fluxo de trabalho para a modificação de parâmetros, este procedimento ajuda a modificar o parâmetro de programação do serviço de transferência de dados do BigQuery, que pode ser modificado para se alinhar ao intervalo de atualização de dados esperado.

Para personalizar a solução, conclua as seguintes etapas no Cloud Shell:

  1. Verifique se o diretório de trabalho atual é $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Se não estiver, acesse esse diretório:

    cd $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example
    
  2. Abra o arquivo main.tf e faça as mudanças necessárias, conforme mostrado na tabela a seguir:

    Parâmetro Argumento do Terraform em main.tf
    Programação do job do serviço de transferência de dados do BigQuery Argumento no arquivo main.tf: schedule

    Snippet de código

    
    resource "google_bigquery_data_transfer_config" "log_transfer" {
          ... template { ...
                  
            schedule = "SCHEDULE" ... } }
  3. Valide e revise a configuração do Terraform.

  4. Provisione os recursos.

(Opcional) Adicionar seus próprios arquivos de registros da Web à implantação

A implantação da solução inclui exemplos de registros da Web que você pode consultar ou visualizar em relatórios. Se você quiser substituir os dados da amostra pelos dados do registro da Web, faça o seguinte:

  1. Verifique se os registros da Web estão no formato JSON.

  2. Crie um arquivo de esquema de dados com base nos seus registros da Web, no formato JSON.

  3. Implante a solução usando o Terraform e substitua o conteúdo dos arquivos a seguir pelas suas próprias informações de esquema e dados:

    • Dados de registros da Web: sample_access_log.json
    • Esquema de dados: sample_access_log_schema.json

Recomendações de projeto

Nesta seção, fornecemos recomendações sobre o uso da solução de pipeline de análise de registro para desenvolver uma arquitetura que atenda aos requisitos de segurança, confiabilidade, custo e desempenho.

Alternativas do produto

Se você quiser modificar a solução para atender aos seus requisitos exclusivos, considere as seguintes alternativas aos produtos usados no exemplo de implantação:

  • A solução atende ao seu aplicativo de um contêiner do Cloud Run. No seu ambiente, considere outros produtos para atender ao aplicativo, com base nas suas necessidades únicas. Para mais informações sobre as opções de computação disponíveis, consulte Hospedagem de aplicativos no Google Cloud.

  • A solução contém um bucket de armazenamento em que é possível fazer upload de arquivos de registros de outras plataformas na nuvem ou no local. Se você armazenar dados de registro em um banco de dados gerenciado, considere transmitir dados desse banco de dados para o BigQuery. Para mais informações, consulte Visão geral do Datastream

Segurança

Implemente as recomendações nos guias a seguir para aumentar a segurança da arquitetura:

Confiabilidade

Use as seguintes diretrizes para melhorar a confiabilidade dos produtos nesta solução:

Desempenho

Ajude a otimizar a performance seguindo estas práticas recomendadas:

Custo

Use os princípios de design a seguir para otimizar o custo dos fluxos de trabalho:

Observações:

  • Antes de fazer qualquer mudança no design, avalie o impacto no custo e considere possíveis vantagens e desvantagens com outros recursos. É possível avaliar o impacto de mudanças no design usando a calculadora de preços do Google Cloud.
  • Para implementar mudanças de design na solução, você precisa de experiência em programação com Terraform e conhecimento avançado dos serviços do Google Cloud usados na solução.
  • Se você modificar a configuração do Terraform fornecida pelo Google e se encontrar erros, crie problemas no GitHub. Os problemas do GitHub são analisados com base no melhor esforço e não se destinam a perguntas gerais de uso.
  • Para mais informações sobre como criar e configurar ambientes de nível de produção no Google Cloud, consulte Design da zona de destino no Google Cloud e Lista de verificação de configuração do Google Cloud.

Excluir a implantação

Quando você não precisar mais da solução, exclua todos os recursos para evitar o faturamento contínuo dos recursos criados nesta solução.

Excluir usando o console

Use este procedimento se você tiver implantado a solução pelo console.

  1. No console do Google Cloud, acesse a página Implantações da solução.

    Acessar implantações de solução

  2. Selecione o projeto que contém a implantação que você quer excluir.

  3. Localize a implantação que você quer excluir.

  4. Clique em Ações e selecione Excluir.

  5. Digite o nome da implantação e clique em Confirmar.

    O campo Status mostra Excluindo.

    Se a exclusão falhar, consulte as orientações de solução de problemas em Erro ao excluir uma implantação.

Quando você não precisar mais do projeto do Google Cloud usado na solução, exclua-o. Para mais informações, consulte Opcional: excluir o projeto.

Excluir usando o Terraform

Use este procedimento se você tiver implantado a solução com o Terraform.

  1. No Cloud Shell, verifique se o diretório de trabalho atual é $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Se não estiver, acesse esse diretório.

  2. Remova os recursos provisionados pelo Terraform:

    terraform destroy
    

    O Terraform exibe uma lista dos recursos que serão destruídos.

  3. Quando for solicitado que você execute as ações, digite yes.

    O Terraform exibe as mensagens que mostram o progresso. Depois que todos os recursos forem excluídos, o Terraform exibirá a seguinte mensagem:

    Destroy complete!
    

    Se a exclusão falhar, consulte as orientações de solução de problemas em Erro ao excluir uma implantação.

Quando você não precisar mais do projeto do Google Cloud usado na solução, exclua-o. Para mais informações, consulte Opcional: excluir o projeto.

Excluir o projeto

Se você tiver implantado a solução em um novo projeto do Google Cloud e não for mais usar o projeto, exclua-o seguindo estas etapas:

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. No prompt, digite o ID do projeto e clique em Encerrar.

Se você decidir manter o projeto, exclua a conta de serviço criada para essa solução, conforme descrito na próxima seção.

Opcional: excluir a conta de serviço

Se você excluiu o projeto usado para a solução, pule esta seção.

Como mencionado anteriormente neste guia, quando você implantou a solução, uma conta de serviço foi criada em seu nome. A conta de serviço recebeu determinadas permissões do IAM temporariamente, ou seja, as permissões foram revogadas automaticamente após a conclusão das operações de implantação e exclusão da solução, mas a conta de serviço não foi excluída. O Google recomenda que você exclua essa conta de serviço.

  • Se você implantou a solução no console do Google Cloud, acesse a página Implantações da solução. Se você já estiver nessa página, atualize o navegador. Um processo é acionado em segundo plano para excluir a conta de serviço. Nenhuma outra ação é necessária.

  • Se você tiver implantado a solução usando o Terraform, siga estas etapas:

    1. No Console do Google Cloud, acesse a página Contas de serviço.

      Acessar Contas de serviço

    2. Selecione o projeto usado para a solução.

    3. Selecione a conta de serviço que você quer excluir.

      O ID de e-mail da conta de serviço que foi criada para a solução está no seguinte formato:

      goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
      

      O ID de e-mail contém os seguintes valores:

      • DEPLOYMENT_NAME: o nome da implantação.
      • NNN: um número aleatório de três dígitos.
      • PROJECT_ID é o ID do projeto em que você implantou a solução.
    4. Clique em Excluir.

Solucionar erros

As ações que podem ser realizadas para diagnosticar e resolver erros dependem do método de implantação e da complexidade dele.

Erros de implantação no console

Se a implantação falhar quando você usar o console, faça o seguinte:

  1. Acesse a página Implantações da solução.

    Se a implantação falhou, o campo Status mostra Falha.

  2. Para ver os detalhes dos erros que causaram a falha, faça o seguinte:

    1. Clique em Ações.

    2. Selecione Ver registros do Cloud Build.

  3. Analise o registro do Cloud Build e tome as medidas apropriadas para resolver o problema que causou a falha.

Erros de implantação usando o Terraform

Se a implantação falhar quando você usar o Terraform, a saída do comando terraform apply incluirá mensagens de erro que podem ser analisadas para diagnosticar o problema.

Os exemplos nas seções a seguir mostram erros de implantação que podem ser encontrados ao usar o Terraform.

Erro de API não ativada

Se você criar um projeto e tentar implantar imediatamente a solução no novo projeto, a implantação poderá falhar e apresentar um erro como este:

Error: Error creating Network: googleapi: Error 403: Compute Engine API has not
been used in project PROJECT_ID before or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=PROJECT_ID
then retry. If you enabled this API recently, wait a few minutes for the action
to propagate to our systems and retry.

Se esse erro ocorrer, aguarde alguns minutos e execute o comando terraform apply novamente.

Erros ao excluir a implantação

Depois de implantar a solução, se você adicionar ou alterar qualquer recurso provisionado pela solução e, em seguida, tentar excluir a implantação, a exclusão poderá falhar.

Por exemplo, depois de implantar a solução, se você adicionar uma sub-rede à rede VPC criada pela solução e tentar excluir a solução, a exclusão falhará. Se você implantou a solução no console, o campo Status na página Implantações da solução mostra Falha, e o registro do Cloud Build mostra um erro como o seguinte:

Error: running tf destroy: terraform destroy failed: running terraform failed: exit status 1
Step #0 - "Destroy blueprint": running tf destroy: terraform destroy failed: running terraform failed: exit status 1
Step #0 - "Destroy blueprint":
Step #0 - "Destroy blueprint": Error: Error waiting for Deleting Network: The network resource 'projects/mysolutionsproject/global/networks/tiered-web-app-private-network' is already being used by 'projects/mysolutionsproject/regions/asia-east1/subnetworks/mysubnet'

Se esse erro ocorrer, exclua os recursos adicionados após a implantação da solução e tente excluí-la novamente.

Erros ao excluir recursos do BigQuery

Se a destruição falhar ao usar o Terraform, a saída do comando terraform destroy incluirá mensagens de erro que podem ser analisadas para diagnosticar o problema.

Por exemplo, você pode ver a seguinte mensagem de erro:

Error: cannot destroy instance without setting deletion_protection=false and running `terraform apply`.

Se esse erro ocorrer, os recursos do BigQuery criados pela solução não serão destruídos. Se quiser destruir recursos do BigQuery, é possível excluí-los no console.

Erros ao transferir dados

Podem ocorrer erros ao transferir dados do Cloud Storage para o BigQuery ou entre seu aplicativo e o BigQuery. Para solucionar erros de transferência de dados, consulte a seguinte documentação:

Erro ao excluir uma implantação

Em alguns casos, as tentativas de excluir uma implantação podem falhar:

  • Depois de implantar uma solução no console, se você alterar qualquer recurso provisionado por ela e tentar excluir a implantação, a exclusão poderá falhar. O campo Status na página Implantações da solução mostra Com falha e o registro do Cloud Build mostra a causa do erro.
  • Depois de implantar uma solução usando o Terraform, se você alterar qualquer recurso usando uma interface diferente do Terraform (por exemplo, o console) e, em seguida, tentar excluir a implantação, a exclusão poderá falhar. As mensagens na saída do comando terraform destroy mostram a causa do erro.

Revise os registros de erro e as mensagens, identifique e exclua os recursos que causaram o erro e tente excluir a implantação novamente.

Se uma implantação baseada em console não for excluída e não for possível diagnosticar o erro usando o registro do Cloud Build, será possível excluir a implantação usando o Terraform, conforme descrito na próxima seção.

Excluir uma implantação baseada em console usando o Terraform

Nesta seção, descrevemos como excluir uma implantação baseada em console em caso de erros ao tentar excluí-la no console. Nesta abordagem, faça o download da configuração do Terraform para a implantação que você quer excluir e use o Terraform para excluir a implantação.

  1. Identifique a região em que o código, os registros e outros dados do Terraform da implantação são armazenados. Essa região pode ser diferente da região selecionada durante a implantação da solução.

    1. No console do Google Cloud, acesse a página Implantações de soluções.

      Acessar implantações de solução

    2. Selecione o projeto que contém a implantação que você quer excluir.

    3. Na lista de implantações, identifique a linha da implantação que você quer excluir.

    4. Clique em Consultar todo o conteúdo da linha.

    5. Na coluna Local, observe o segundo local, conforme destacado no exemplo a seguir:

      Localização do código de implantação, registros e outros artefatos.

  2. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  3. Crie variáveis de ambiente para o ID do projeto, a região e o nome da implantação que você quer excluir:

    export REGION="REGION"
    export PROJECT_ID="PROJECT_ID"
    export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
    

    Nesses comandos, substitua o seguinte:

    • REGION: o local que você anotou anteriormente neste procedimento.
    • PROJECT_ID: o ID do projeto em que você implantou a solução.
    • DEPLOYMENT_NAME: o nome da implantação que você quer excluir.
  4. Encontre o ID da revisão mais recente da implantação que você quer excluir:

    export REVISION_ID=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .latestRevision -r)
        echo $REVISION_ID
    

    O resultado será assim:

    projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
    
  5. Encontre o local do Cloud Storage na configuração do Terraform para a implantação:

    export CONTENT_PATH=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \
        | jq .applyResults.content -r)
        echo $CONTENT_PATH
    

    Veja a seguir um exemplo da saída desse comando:

    gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
    
  6. Faça o download da configuração do Terraform do Cloud Storage para o Cloud Shell:

    gsutil cp -r $CONTENT_PATH $HOME
    cd $HOME/content/examples/simple_example
    

    Aguarde até que a mensagem Operation completed seja exibida, conforme mostrado no exemplo a seguir:

    Operation completed over 45 objects/268.5 KiB
    
  7. Inicialize o Terraform:

    terraform init
    

    Aguarde até ver a seguinte mensagem:

    Terraform has been successfully initialized!
    
  8. Remova os recursos implantados:

    terraform destroy
    

    O Terraform exibe uma lista dos recursos que serão destruídos.

    Se forem exibidos avisos sobre variáveis não declaradas, ignore-os.

  9. Quando for solicitado que você execute as ações, digite yes.

    O Terraform exibe as mensagens que mostram o progresso. Depois que todos os recursos forem excluídos, o Terraform exibirá a seguinte mensagem:

    Destroy complete!
    
  10. Exclua o artefato de implantação:

    curl -X DELETE \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
    
  11. Aguarde alguns segundos e verifique se o artefato de implantação foi excluído:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .error.message
    

    Se a saída mostrar null, aguarde alguns segundos e execute o comando novamente.

    Depois que o artefato de implantação for excluído, uma mensagem, como mostrado no exemplo a seguir, será exibida:

    Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
    

Enviar feedback

As soluções Jump Start são apenas para fins informativos e não são produtos oficialmente compatíveis. O Google pode alterar ou remover soluções sem aviso prévio.

Para resolver erros, analise os registros do Cloud Build e a saída do Terraform.

Para enviar feedback, faça o seguinte:

  • Para ver a documentação, os tutoriais no console ou a solução, use o botão Enviar feedback na página.
  • Para código não modificado do Terraform, crie problemas no repositório do GitHub. Os problemas do GitHub são analisados com base no melhor esforço e não se destinam a perguntas gerais de uso.

A seguir

Consulte a documentação a seguir para saber mais sobre as práticas recomendadas de arquitetura e operação para os produtos usados nesta solução: