Resolver erros de implantação

Nesta página, descrevemos:

Inspecionar detalhes e registros de implantação

É possível inspecionar detalhes e registros de implantações e revisões individuais.

Inspecionar o estado da implantação

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

Para encontrar erros, comece por verificar o estado de uma implantação.

Inspecionar o estado de uma revisão

Se uma implantação falhar com o código de erro REVISION_FAILED, você poderá verificar o estado de uma revisão.

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

O estado da revisão inclui as mesmas informações de uma implantação. Além disso, ele inclui o ID do build.

Inspecionar os registros do Cloud Build

Conferir o estado de uma revisão e receber o ID do build do Cloud Build usado pela revisão.

Use o ID do build para inspecionar os registros do Cloud Build. Consulte Conferir os resultados do build para saber mais sobre como inspecionar os resultados do build.

Erros comuns

Esta seção descreve erros comuns que podem ocorrer ao implantar uma configuração do Terraform com o Infra Manager.

Falha na implantação

Se o estado da implantação for FAILED, ela terá encontrado um erro inesperado.

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

Se uma implantação falhar com o código de erro REVISION_FAILED, você poderá inspecionar o estado da revisão.

Erros de configuração

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

Se o erro de implantação estiver relacionado à sua configuração, os campos tfErrors e errorLogs serão incluídos na saída do estado da implantação. Exemplos de erros de configuração incluem uma configuração inválida ou permissões ausentes.

Confira os erros do Terraform. Na saída do estado da implantaçã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 bucket de artefatos. Esse bucket 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 por humanos no campo errorDescription. Se o recurso falhar devido a um código de erro HTTP retornado de uma API do Google Cloud , o campo httpResponseCode também será preenchido. Todas as informações adicionais sobre falhas da API são registradas no campo de erro.

A conta de serviço não tem permissões para buscar a configuração

O seguinte erro aparece:

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

Esse erro aparece porque o Infra Manager não tem permissão para acessar a configuração do Terraform no bucket do Cloud Storage.

Para resolver o problema, conceda o papel storage.objectViewer à conta de serviço. Para mais detalhes sobre a concessão de permissões à conta de serviço, consulte Configurar a conta de serviço.

Local incorreto para buscar a configuração

O seguinte erro aparece:

  `blueprint fetch failed: invalid path`

Esse erro aparece quando um local inválido é especificado para buscar a configuração do Terraform. O Infra Manager usa o termo blueprint para se referir a uma configuração do Terraform.

Para resolver esse erro, verifique o local da configuração do Terraform e verifique se o local está formatado corretamente no comando.

Permissão incorreta para acionar recursos

Os erros geralmente estão em tfErrors com o código de resposta 403 para os recursos que não puderam ser implantados.

Esse erro aparece quando a conta de serviço não tem permissão suficiente para criar, ler, atualizar ou excluir recursos definidos na configuração do Terraform.

Para resolver esse erro, consulte Conceder permissões do IAM à conta de serviço.

Configuração com back-end

O seguinte erro aparece:

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

Esse erro aparece quando a configuração do Terraform tem um bloco de back-end. O Gerenciador de infraestrutura gerencia o back-end, portanto, um bloco de back-end não pode ser definido na configuração do Terraform.

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

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

Se o Infra Manager não conseguir acessar seu repositório do Git (usando um repositório do Git particular ou um fluxo de trabalho automatizado do Cloud Build), talvez seja necessário 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 particular, consulte Conectar-se a um repositório do GitHub.

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

Execute este comando usando a conta de serviço do Infra Manager para verificar se as permissõ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"

A seguir