Resolva problemas de erros de implementação

Esta página descreve:

Inspecione os detalhes e os registos da implementação

Pode inspecionar os detalhes e os registos da implementação e das revisões individuais.

Inspeccione o estado da implementação

Cada implementação tem informações sobre o respetivo estado atual, código de erro e detalhes sobre as causas da falha.

Para quaisquer erros, comece por ver o estado de uma implementação.

Inspeccione o estado de uma revisão

Se uma implementação falhar com o código de erro REVISION_FAILED, pode ver o estado de uma revisão.

Na saída do estado da revisão, consulte os campos stateDetail e errorCode.

O estado da revisão inclui as mesmas informações que uma implementação. Além disso, inclui o ID da compilação.

Inspecione os registos do Cloud Build

Veja o estado de uma revisão e obtenha o ID da compilação do Cloud Build usado pela revisão.

Use o ID da compilação para inspecionar os registos do Cloud Build. Consulte o artigo Ver resultados da compilação para ver detalhes sobre como inspecionar os resultados da compilação.

Erros comuns

Esta secção descreve os erros comuns que pode ver quando implementa uma configuração do Terraform com o Infra Manager.

Falha na implementação

Se o estado de implementação for FAILED, a implementação encontrou um erro inesperado.

Veja o estado da implementação e inspecione os campos stateDetail e errorCode para mais informações.

Se uma implementação falhar com o código de erro REVISION_FAILED, pode inspecionar o estado da revisão.

Erros de configuração

Se o estado da implementação for FAILED, pode ter falhado devido a erros de configuração com a configuração do Terraform.

Se o erro de implementação estiver relacionado com a sua configuração, os campos tfErrors e errorLogs são incluídos no resultado do estado da implementação. Os exemplos de erros de configuração incluem uma configuração inválida ou autorizações em falta.

Veja os erros do Terraform. No resultado do estado da implementação:

  • tfErrors é um resumo dos erros encontrados pelo Terraform (limitado pelo Infra Manager a 10 erros nesta lista).
  • errorLogs apontam para um objeto do Cloud Storage no seu contentor de artefactos. Este contentor contém todos os tfErrors no formato JSON delimitado por nova linha.

Cada tfError tem um endereço de recurso e uma descrição de erro legível no campo errorDescription. Se o recurso falhar devido a um código de erro HTTP devolvido por uma Google Cloud API, o campo httpResponseCode também é preenchido. Todas as informações adicionais sobre falhas da API são registadas no campo de erro.

A conta de serviço não tem autorizações para obter a configuração

É apresentado o seguinte erro:

  error downloading 'GCS_LOCATION': googleapi: Error 403: SA_EMAIL does
  not have storage.objects.list access to the Google Cloud Storage bucket.

Este erro é apresentado porque o Infra Manager não tem autorização para obter a configuração do Terraform do contentor do Cloud Storage.

Para resolver o problema, atribua a função storage.objectViewer à conta de serviço. Para ver detalhes sobre como conceder autorizações à conta de serviço, consulte o artigo Configure a conta de serviço.

Localização incorreta para obter a configuração

É apresentado o seguinte erro:

  `blueprint fetch failed: invalid path`

Este erro é apresentado quando é especificada uma localização inválida para obter a configuração do Terraform. O Infra Manager usa o termo projeto para se referir a uma configuração do Terraform.

Para resolver este erro, verifique a localização da configuração do Terraform e certifique-se de que a localização está formatada corretamente no comando.

Autorização incorreta para acionar recursos

Normalmente, os erros estão abaixo de tfErrors com o código de resposta 403 para os recursos que não foi possível implementar.

Este erro é apresentado quando a conta de serviço não tem autorização suficiente para criar, ler, atualizar ou eliminar recursos definidos na configuração do Terraform.

Para resolver este erro, consulte o artigo Conceda autorizações de IAM à conta de serviço.

Configuração com o back-end

É apresentado o seguinte erro:

  `blueprint invalid: found backend config in file.tf`

Este erro é apresentado quando a configuração do Terraform tem um bloco de back-end. O Infrastructure Manager gere o back-end, pelo que não é possível definir um bloco de back-end na configuração do Terraform.

Para resolver este erro, remova o bloco de back-end da configuração.

Valide a configuração do repositório do Cloud Build

Se o Infra Manager não conseguir aceder ao seu repositório Git (através de um repositório Git privado ou de um fluxo de trabalho automatizado do Cloud Build), pode ter de validar se o repositório do Cloud Build foi configurado corretamente.

Para validar se o repositório do Cloud Build foi configurado para fornecer acesso ao repositório privado, consulte o artigo Estabeleça ligação a um repositório do GitHub.

O Infra Manager usa a primeira associação em que o URL do repositório do Cloud Build corresponde à configuração do Terraform (referenciada em --git-source-repo) e em que consegue gerar um token só de leitura. A associação do repositório é validada diretamente por uma chamada à API accessReadToken no repositório do Cloud Build selecionado.

Execute este comando com a conta de serviço do Infra Manager para verificar se as autorizações estão corretas:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token \
--impersonate-service-account=SERVICE_ACCOUNT)" \
"https://cloudbuild.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/connections/CB_CONNECTION/repositories/CB_REPO:accessReadToken"

O que se segue?