Armazene e veja registos de compilação

Quando executa compilações, o Cloud Build recolhe e armazena os registos de compilação. Esta página explica como armazenar, ver e eliminar registos de compilação.

Escolha para onde enviar os registos de compilação

Pode configurar o Cloud Build para enviar registos de compilação para um contentor no Cloud Storage, um contentor no Cloud Logging ou ambos.

  • Se quiser controlar o período de retenção dos registos de compilação armazenados, envie-os para o Cloud Logging. O Cloud Logging também oferece mais opções para pesquisar um contentor de registos de compilação específicos.

  • Em alguns casos, existe um atraso entre o momento em que um registo de compilação é gerado e o momento em que o Logging o recebe. O envio dos registos de compilação para um contentor no Cloud Storage pode reduzir essa latência.

O Cloud Storage e o Logging permitem-lhe armazenar registos num contentor predefinido criado pela Google ou num contentor personalizado criado pelo utilizador. Os contentores predefinidos permitem-lhe ver os registos armazenados no contentor, mas não permitem alterar nada no contentor. Se precisar de controlo total sobre o contentor que usa para o armazenamento de registos de compilação, envie os seus registos para um contentor criado pelo utilizador.

Armazene registos de compilação em contentores predefinidos

O Cloud Logging e o Cloud Storage têm contentores predefinidos onde pode armazenar os registos de compilação. Estes contentores são criados e detidos pela Google e podem receber registos de várias regiões. Para enviar os registos de compilação para um destes contentores, configure o LoggingMode do ficheiro de configuração de compilação com um dos seguintes valores:

  • GCS_ONLY: os registos são armazenados no contentor do Cloud Storage predefinido.

  • CLOUD_LOGGING_ONLY: os registos são armazenados no contentor de registo predefinido.

  • LEGACY: os registos são armazenados nos dois contentores predefinidos.

O contentor de registos predefinido tem uma política de retenção de 30 dias para os registos armazenados. Para definir uma política de retenção personalizada para registos de compilação armazenados no Logging, armazene os registos de compilação num contentor personalizado.

O contentor do Cloud Storage predefinido não tem uma política de retenção.

Armazene registos de compilação num contentor do Cloud Storage pertencente ao utilizador e específico da região

Se enviar registos de compilação para o contentor do Cloud Storage predefinido, o Cloud Build armazena-os numa região especificada pela Google que pode ser diferente da localização onde executa uma compilação. No entanto, também pode configurar a sua compilação para que o Cloud Build envie registos de compilação para um contentor do Cloud Storage pertencente ao utilizador na mesma região em que executa a compilação. Esta configuração dá-lhe mais controlo sobre a localização dos dados do registo de compilação, o que pode ajudar a agir em conformidade com os requisitos de residência dos dados.

Conceda autorizações de IAM:

Se o contentor do Cloud Storage e o Cloud Build estiverem no mesmo Google Cloud projeto e estiver a usar a conta de serviço antiga do Cloud Build, essa conta de serviço tem as autorizações do IAM necessárias por predefinição. Não tem de conceder autorizações adicionais. Caso contrário, faça o seguinte:

Para receber as autorizações de que precisa para armazenar registos de compilação num contentor específico da região pertencente ao utilizador, peça ao seu administrador para lhe conceder a função do IAM Administrador de armazenamento (roles/storage.admin) na conta de serviço usada para a sua compilação. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Configure o contentor do Cloud Storage específico da região:

  1. No ficheiro de configuração de compilação, adicione a opção defaultLogsBucketBehavior e defina o respetivo valor como REGIONAL_USER_OWNED_BUCKET:

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/myproject/myrepo/myimage', '.' ]
    options:
      defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
    

    JSON

    {
      "steps": [
        {
          "name": "gcr.io/cloud-builders/docker",
          "args": [
            "build",
            "-t",
            "us-central1-docker.pkg.dev/myproject/myrepo/myimage",
            "."
          ]
        }
        ],
        "options": {
          "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET"
        }
    }
    
  2. Use o ficheiro de configuração de compilação para iniciar uma compilação usando a linha de comandos, a API ou acionadores.

    Quando executa a compilação, o Cloud Build cria o novo contentor na região onde está a executar a compilação e, em seguida, armazena os registos de compilação neste contentor. As compilações adicionais no mesmo projeto e região usam o contentor existente, desde que a opção REGIONAL_USER_OWNED_BUCKET esteja ativa. Este contentor é propriedade do utilizador, pelo que pode configurá-lo como se fosse um contentor criado pelo utilizador.

Se definir a opção REGIONAL_USER_OWNED_BUCKET e, em seguida, criar compilações em várias regiões, o Cloud Build cria vários contentores para os registos de compilação.

Os contentores do Cloud Storage predefinidos específicos da região não têm uma política de retenção. No entanto, pode automatizar a eliminação dos registos de compilação do seu contentor configurando uma regra do ciclo de vida do objeto.

Armazene registos de compilação em contentores criados pelo utilizador

Os contentores criados pelo utilizador dão-lhe maior controlo sobre a gestão e a configuração dos seus contentores de registos.

Armazene registos de compilação num contentor do Cloud Logging criado pelo utilizador

Os contentores de registos criados pelo utilizador permitem-lhe ajustar o período de retenção dos registos de compilação armazenados. Para armazenar os registos de compilação num contentor criado pelo utilizador no Logging, faça o seguinte:

Conceda autorizações de IAM:

Para receber as autorizações de que precisa para armazenar registos de compilação num contentor do Cloud Logging criado pelo utilizador, peça ao seu administrador para lhe conceder a função de IAM Escritor de configuração de registos (roles/logging.configWriter) no seu projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Configure o contentor de registo:

  1. Crie um contentor e defina um valor para o campo Período de retenção.

  2. Crie um destino para encaminhar os registos de compilação para o novo contentor:

    1. Introduza o seguinte para o filtro de inclusão de compilação do seu destino:

      logName = "projects/PROJECT_ID/logs/cloudbuild"
      

      Substitua PROJECT-ID pelo ID do seu Google Cloud projeto.

    2. (Opcional) Para impedir que os seus registos sejam enviados para o contentor de registos predefinido, siga o exemplo em Pare de armazenar entradas de registo em contentores de registos.

Armazene registos de compilação num contentor do Cloud Storage criado pelo utilizador

Para armazenar os registos de compilação num contentor do Cloud Storage criado pelo utilizador, faça o seguinte:

Conceda autorizações de IAM:

Se o contentor do Cloud Storage e o Cloud Build estiverem no mesmo Google Cloud projeto e estiver a usar a conta de serviço antiga, a conta de serviço antiga do Cloud Build tem as autorizações do IAM necessárias por predefinição. Não tem de conceder autorizações adicionais. Caso contrário, faça o seguinte:

Para receber as autorizações de que precisa para armazenar registos de compilação num contentor do Cloud Storage criado pelo utilizador, peça ao seu administrador para lhe conceder a função de IAM Administrador de armazenamento (roles/storage.admin) na conta de serviço usada para a sua compilação. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Configure o contentor do Cloud Storage:

  1. No seu Google Cloud projeto, crie um contentor do Cloud Storage sem uma política de retenção definida para armazenar os registos de compilação.

  2. No ficheiro de configuração de compilação, adicione um campo logsBucket que aponte para o contentor do Cloud Storage que criou para armazenar registos de compilação. O ficheiro de configuração de compilação do exemplo seguinte contém instruções para compilar uma imagem de contentor e armazenar os registos de compilação num contentor com o nome mylogsbucket:

    YAML

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          args: [ 'build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.' ]
        logsBucket: 'gs://mylogsbucket'
        options:
          logging: GCS_ONLY
    

    JSON

        {
          "steps": [
           {
             "name": "gcr.io/cloud-builders/docker",
             "args": [
               "build",
               "-t",
               "us-east1-docker.pkg.dev/myproject/myimage",
               "."
             ]
           }
           ],
           "logsBucket": "gs://mylogsbucket",
           "options": {
             "logging": "GCS_ONLY"
           }
        }
    
  3. Use o ficheiro de configuração de compilação para iniciar uma compilação usando a linha de comandos, a API ou acionadores.

Quando a compilação estiver concluída, o Cloud Build armazena os registos no contentor do Cloud Storage que especificou no ficheiro de configuração da compilação.

Precedência entre as definições de registos

Se definir um contentor do Cloud Storage criado pelo utilizador em logsBucket, o Cloud Build envia os registos de compilação para o contentor criado pelo utilizador em vez do contentor do Cloud Storage predefinido.

Se estiver a adicionar a opção defaultLogsBucketBehavior a um ficheiro de configuração de compilação existente e tiver configurado anteriormente as opções logging ou logsBucket, recomendamos que elimine essas definições para evitar conflitos entre as definições. Especificamente, o defaultLogsBucketBehavior não funciona se tiver configurado:

  • logging: CLOUD_LOGGING_ONLY para armazenar os registos de compilação no Cloud Logging.
  • logging: NONE para desativar o registo.

Quando executa uma compilação sem opções de registo definidas no ficheiro de configuração da compilação, o Cloud Build define logging: LEGACY e armazena os registos de compilação no contentor do Cloud Storage predefinido. A definição de defaultLogsBucketBehavior como REGIONAL_USER_OWNED_BUCKET substitui logging: LEGACY.

Veja os registos de compilação

Para ver os registos de compilação, faça o seguinte:

Conceda autorizações de IAM:

Para receber as autorizações de que precisa para ver os registos de compilação no Cloud Storage ou no Logging, peça ao seu administrador que lhe conceda as seguintes funções do IAM na conta de serviço usada para a sua compilação:

  • Ver registos de compilação num contentor do Cloud Storage criado ou pertencente ao utilizador:
    • Storage Object Viewer (roles/storage.objectViewer): os responsáveis que querem ver os registos de compilação
    • Aceder à vista de registos (roles/logging.viewAccessor): os responsáveis que querem ver os registos de compilação
  • Veja os registos de compilação no contentor do Cloud Storage predefinido: Leitor (roles/viewer) – o projeto onde a compilação está configurada
  • Ver registos de compilação no Logging: Visualizador de registos (roles/logging.viewer) – os responsáveis que querem ver registos de compilação

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Ver registos de compilação no Google Cloud:

Consola

  1. Abra a página do Cloud Build na Google Cloud consola.

    Abra a página do Cloud Build

  2. Selecione o projeto e clique em Abrir.

  3. No menu pendente Região, selecione a região para a sua compilação.

  4. Na página Histórico de compilações, selecione uma compilação específica.

  5. Na página Detalhes da compilação, em Passos, clique em Resumo da compilação para ver os registos de compilação de toda a compilação ou selecione um passo de compilação para ver os registos de compilação desse passo.

  6. Se os seus registos estiverem armazenados no Logging, no painel Registo de compilação, clique no ícone para ver os registos no Explorador de registos.

gcloud

Execute o comando gcloud builds log onde build-id é o ID da compilação para a qual quer obter registos de compilação. O ID da compilação é apresentado no final do processo de envio da compilação quando executa gcloud builds submit ou na coluna ID quando executa gcloud builds list.

gcloud builds log build-id

Ver registos de compilação no GitHub e GitHub Enterprise:

Se criar um acionador do GitHub ou do GitHub Enterprise com a CLI gcloud ou a API Cloud Build e tiver especificado --include-logs-with-status como uma opção, então pode ver os registos de compilação no GitHub e no GitHub Enterprise.

Para ver os registos de compilação no GitHub e no GitHub Enterprise, faça o seguinte:

  1. Navegue para o repositório associado ao seu acionador.

  2. Navegue para a sua lista de commits.

  3. Encontre a linha da confirmação cujos registos de compilação quer ver.

  4. Clique no ícone de resultado na linha da confirmação.

    É apresentada uma lista de verificações associadas à sua confirmação.

  5. Clique em Detalhes na linha cujos registos de compilação quer ver.

    É apresentada a página Resumo associada à confirmação. Se criou um acionador com a flag --include-logs-with-status, os registos de compilação são apresentados na secção Detalhes da página.

Elimine registos de compilação e contentores

Para receber as autorizações de que precisa para eliminar registos de compilação e contentores no Cloud Storage, peça ao administrador para lhe conceder as seguintes funções de IAM na conta de serviço usada para a sua compilação:

  • Elimine registos de compilação num contentor do Cloud Storage criado ou pertencente ao utilizador: Administrador de armazenamento (roles/storage.admin): o utilizador ou a conta de serviço que elimina os registos de compilação
  • Elimine um contentor do Cloud Storage criado ou detido por um utilizador: Administrador de armazenamento (roles/storage.admin): o utilizador ou a conta de serviço que elimina contentores
  • Elimine um contentor de registo criado pelo utilizador: Logs Configuration Writer (roles/logging.configWriter) – o seu projeto

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Para eliminar registos de compilação num contentor do Cloud Storage criado ou pertencente ao utilizador, siga as instruções em Eliminar objetos na documentação do Cloud Storage.

Para eliminar um contentor do Cloud Storage criado ou detido pelo utilizador, siga as instruções em Eliminar contentores na documentação do Cloud Storage.

Para eliminar um contentor de registo criado pelo utilizador, siga as instruções em Elimine um contentor na documentação de registo.

O que se segue?