Nesta página, fornecemos estratégias de solução de problemas, bem como soluções para algumas mensagens de erro comuns que podem ser exibidas ao executar uma versão.
Sua build é aprovada localmente?
Ao solucionar erros do Cloud Build, a primeira etapa será sempre confirmar se é possível compilar localmente. Se sua versão não funciona localmente, a causa do problema não é proveniente do Cloud Build. É necessário diagnosticar e corrigir o problema localmente primeiro.
Você analisou os registros de compilação?
Use os registros de versão do Logging ou do Cloud Storage para ver mais informações sobre o erro de versão. Os registros gravados em stdout
ou stderr
são exibidos automaticamente no Console do Cloud.
As compilações manuais falham porque o usuário não tem acesso aos registros da versão
Você verá o seguinte erro ao tentar executar uma compilação manualmente:
AccessDeniedAccess denied. [EMAIL_ADDRESS] does not have storage.objects.get access to the Google Cloud Storage object.
Você vê esse erro porque o Cloud Build requer que os usuários executem versões manuais e usem obucket de registros padrão do Cloud Storage têm o papel de IAM de visualizador do projeto, além do papel de editor do Cloud Build. Para resolver esse erro, siga um destes procedimentos:
Use o bucket de registros padrão e conceda o papel Visualizador do projeto e o papel Editor do Cloud Build ao usuário que está criando a versão. Para instruções sobre como conceder essa permissão, consulte Configurar o acesso aos recursos do Cloud Build.
Crie seu próprio bucket do Cloud Storage para armazenar registros. Para instruções, consulte Como armazenar registros da versão em um bucket criado pelo usuário.
As criações falham devido à ausência de permissões da conta de serviço
O Cloud Build usa uma conta de serviço especial para executar builds em seu nome. Se a conta de serviço do Cloud Build não tiver a permissão necessária para executar uma tarefa, você verá o seguinte erro:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Para resolver esse erro, conceda a permissão à conta de serviço. Use as informações nas seguintes páginas para determinar a permissão a ser concedida à conta de serviço do Cloud Build:
- Conta de serviço do Cloud Build
- Noções básicas sobre papéis do IAM
- Como conceder permissões à sua conta de serviço do Cloud Build
As falhas de versão devido a permissões ausentes para a conta de serviço geralmente ocorrem ao tentar implantar usando o Cloud Build.
Erro de permissão negada na implantação no Cloud Functions
Você verá o seguinte erro ao tentar usar o Cloud Functions:
ResponseError: status=[403], code=[Ok], message=[Permission 'cloudfunctions.functions.get' denied
Para solucionar esse erro, conceda o papel do desenvolvedor do Cloud Functions à conta de serviço do Cloud Build.
Erro de permissão ausente na implantação no Cloud Functions
Você verá o seguinte erro ao tentar implantar no Cloud Functions:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Para resolver esse erro, conceda o papel de usuário da conta de serviço à conta de serviço do Cloud Build.
Erro ao implantar no App Engine
Você verá o seguinte erro ao tentar implantar no App Engine:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Para solucionar esse erro, conceda o papel Administrador do App Engine à conta de serviço do Cloud Build.
Erro ao implantar no GKE
Você verá o seguinte erro ao tentar implantar no GKE:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Para solucionar esse erro, conceda o papel de desenvolvedor do GKE à conta de serviço do Cloud Build.
Erro ao implantar no Cloud Run
Você verá o seguinte erro ao tentar implantar no Cloud Run:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Esse erro aparece porque a conta de serviço do Cloud Build não tem as permissões de IAM necessárias para a implantação no Cloud Run. Para mais informações sobre como conceder as permissões necessárias, consulte Como implantar no Cloud Run.
Erro ao armazenar imagens no Container Registry
Você vê o seguinte erro quando sua versão tenta armazenar imagens criadas no Container Registry:
[EMAIL_ADDRESS] does not have storage.buckets.create access to project [PROJECT_NAME]
Você vê esse erro porque a conta de serviço do Cloud Build não tem o papel de administrador de armazenamento necessário para armazenar imagens de contêiner no Container Registry.
As criações falham devido a uma autorização ssh inválida
Você verá o seguinte erro ao executar uma compilação:
Could not parse ssh: [default]: invalid empty ssh-agent socket, make sure SSH_AUTH_SOCK is set
Esse erro indica um problema com a autorização SSH. Um exemplo comum é o erro de autorização SSH que ocorre ao acessar repositórios particulares do GitHub com o Cloud Build. Para instruções sobre como configurar o SSH para o GitHub, consulte Como acessar repositórios particulares do GitHub.
Os builds falham devido a um erro No route to host
Você verá o seguinte erro ou semelhante ao executar um build em um pool particular:
Unable to connect to the server: dial tcp 192.168.10.XX:<port>: connect: no route to host
O Cloud Build executa seus Cloud builders na máquina virtual do projeto gerenciado pelo Google
usando os contêineres do Docker. A interface de ponte do Docker (e, consequentemente, os
contêineres conectados a essa interface) recebe um intervalo de IP de
192.168.10.0/24
, o que impossibilita a comunicação com os hosts externos
na mesma sub-rede. Ao alocar intervalos de IP para recursos nos seus projetos durante a configuração do pool particular, recomendamos selecionar um intervalo fora de 192.168.10.0/24. Para instruções, consulte Como configurar o ambiente para pools particulares.
O gatilho de compilação falha devido à permissão cloudbuild.builds.create
ausente
Você verá o seguinte erro ao executar um gatilho de compilação:
Failed to trigger build: Permission 'cloudbuild.builds.create' denied on resource 'projects/xxxxxxxx' (or it may not exist)
Os gatilhos de compilação usam a conta de serviço do Cloud Build para criar um
build. O erro acima indica que a conta de serviço do Cloud Build
não tem a permissão do IAM cloudbuild.builds.create
, que é
necessária para que a conta de serviço execute um gatilho de compilação. Você pode resolver esse erro
concedendo o papel Cloud Build Service Account
do IAM a
[PROJECT_NUMBER]@cloudbuild.gserviceaccount.com
. Para instruções sobre como conceder
esse papel, consulte
Como configurar o acesso à conta de serviço do Cloud Build.
Erro de tempo limite de E/S
Você verá o seguinte erro ao executar uma compilação:
Timeout - last error: dial tcp IP_ADDRESS: i/o timeout
Esse erro geralmente ocorre quando sua versão tenta acessar recursos em uma rede privada. As versões executadas pelo Cloud Build podem acessar recursos particulares na Internet pública, como recursos em um repositório ou um registro. No entanto, as versões não podem acessar recursos em uma rede privada.
4xx (erros de cliente)
Esse grupo de erros indica que a solicitação de versão não foi bem-sucedida devido a falha do usuário que enviou a solicitação. Veja abaixo alguns exemplos de erros de cliente 4xx:
**Error**: 404 : Requested entity was not found
**Error**: 404 : Trigger not found
**Error**: 400 : Failed Precondition
**Error**: 403 : Permission denied
Caso você veja um erro de cliente 4xx, analise os registros da versão para ver se ela contém mais informações sobre o motivo do erro. Veja algumas causas comuns dos erros do cliente:
- O local de origem especificado não tem nada novo para confirmar, e a árvore de trabalho é limpa. Nesse caso, verifique a localização do código-fonte e tente compilar novamente.
- Seu repositório não contém um arquivo de configuração de build. Se esse for o caso, faça upload de um arquivo de configuração da versão para seu repositório e execute a compilação novamente.
- Você especificou um código de gatilho incorreto.
- Recentemente, você adicionou um novo repositório depois de instalar o aplicativo GitHub. O Cloud Build não tem permissões para acessá-lo. Se esse for o caso, conecte seu novo repositório ao Cloud Build.
- Você precisa conceder outra permissão à conta de serviço.
A seguir
- Saiba como criar e depurar localmente.
- Saiba como gerenciar registros de criação.