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:
No ficheiro de configuração de compilação, adicione a opção
defaultLogsBucketBehavior
e defina o respetivo valor comoREGIONAL_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" } }
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:
Crie um contentor e defina um valor para o campo Período de retenção.
Crie um destino para encaminhar os registos de compilação para o novo contentor:
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.
(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:
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.
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 nomemylogsbucket
: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" } }
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
-
Storage Object Viewer (
-
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
Abra a página do Cloud Build na Google Cloud consola.
Selecione o projeto e clique em Abrir.
No menu pendente Região, selecione a região para a sua compilação.
Na página Histórico de compilações, selecione uma compilação específica.
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.
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:
Navegue para o repositório associado ao seu acionador.
Navegue para a sua lista de commits.
Encontre a linha da confirmação cujos registos de compilação quer ver.
Clique no ícone de resultado na linha da confirmação.
É apresentada uma lista de verificações associadas à sua confirmação.
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?
- Saiba mais sobre os registos de auditoria criados pelo Cloud Build.
- Saiba como ver os resultados da compilação.
- Saiba mais sobre as autorizações de IAM do Cloud Build.