Deployment
Se você tiver problemas ao implantar seu aplicativo usando a API Admin do App Engine, esta página listará as mensagens de erro que podem aparecer e fornece sugestões sobre como corrigir cada erro.
O autor da chamada não tem permissão para acessar o projeto
O seguinte erro ocorre ao implantar o app:
User EMAIL_ADDRESS does not have permission to access project PROJECT_ID (or it may not exist): The caller does not have permission
Esse erro ocorrerá se a conta usada para implantar o app não tiver permissão para implantar apps no projeto atual.
Para resolver esse problema,
conceda o
papel de Implantador do App Engine (roles/appengine.deployer
)
à conta. Para ver qual conta você usou para implantar, siga um destes
procedimentos:
- Se você usou a Google Cloud CLI para implantar, execute o comando
gcloud auth list
. - Se você implantou em um ambiente de desenvolvimento integrado, veja as configurações do plug-in do Cloud Tools.
Falha ao buscar metadados pelo registro
O seguinte erro ocorre ao implantar o app:
Failed to fetch metadata from the registry, with reason: generic::permission_denied
Esse erro ocorrerá se você usar o comando gcloud app deploy
de uma conta de serviço
que não tem o papel Administrador do Storage
(roles/storage.admin
).
Para resolver esse problema, conceda o papel Administrador do Storage à conta de serviço:
- Para ver qual conta você usou, execute o
comando
gcloud auth list
. - Para saber por que apenas atribuir o papel de Implantador do App Engine
(
roles/appengine.deployer
) pode não ser suficiente em alguns casos, consulte os Papéis do App Engine.
As contas de serviço precisam ter permissões na imagem.
O seguinte erro ocorre ao implantar o app:
The App Engine appspot and App Engine flexible environment service accounts must have permissions on the image IMAGE_NAME
Esse erro ocorre por um dos seguintes motivos:
A conta de serviço padrão do App Engine não tem o papel Leitor de objetos do Storage (
roles/storage.objectViewer
).- Para resolver esse problema, conceda o papel Leitor de objetos do Storage à conta de serviço.
O projeto tem um perímetro de serviço da VPC que limita o acesso à API Cloud Storage usando níveis de acesso.
- Para resolver esse problema, adicione a conta de serviço usada para implantar o aplicativo no perímetro de serviço VPC correspondente accessPolicies.
Falha ao criar o Cloud Build
O seguinte erro ocorre ao implantar o app:
Failed to create cloud build: Permission denied
Esse erro ocorrerá se você usar o comando gcloud app deploy
de uma conta que não
tem o papel Editor do Cloud Build (roles/cloudbuild.builds.editor
).
Para resolver esse problema, conceda o papel Editor do Cloud Build à conta de serviço que você está usando para implantar seu app.
Para ver qual conta você usou, execute o
comando
gcloud auth list
.
Ocorreu um erro de permissão ao buscar o aplicativo
O seguinte erro ocorre ao implantar o app:
Permissions error fetching application apps/app_name. Please make sure you are using the correct project ID and that you have permission to view applications on the project
Se você estiver executando a versão 328 ou outra mais recente da Google Cloud CLI, o seguinte erro ocorrerá quando seu aplicativo for implantado:
Permissions error fetching application apps/app_name. Please make sure that you have permission to view applications on the project and that SERVICE_ACCOUNT has the App Engine Deployer (roles/appengine.deployer) role.
Esse erro ocorrerá se a conta que você usou para implantar o
app não tiver o papel de Implantador do App Engine
(roles/appengine.deployer
).
Para resolver esse problema, verifique se você concedeu o papel de Implantador do App Engine à conta de serviço usada para implantar o app. Conceda o papel caso ela não tenha a conta de serviço. Para ver qual conta você usou para implantar, siga um destes procedimentos:
- Se você usou a Google Cloud CLI para implantar, execute o comando
gcloud auth list
. - Se você implantou em um ambiente de desenvolvimento integrado, veja as configurações do plug-in do Cloud Tools.
Tempo limite excedido para a infraestrutura do app se tornar íntegra
O seguinte erro ocorre ao implantar o app:
Timed out waiting for the app infrastructure to become healthy
Vários fatores podem causar esse erro, como permissões ausentes, erros de código, CPU ou memória insuficiente ou verificações de integridade com falha. O erro só ocorre no ambiente flexível do App Engine.
Para resolver esse problema, elimine as seguintes causas possíveis:
- Verifique se você concedeu o papel
Editor (
roles/editor
) à conta de serviço padrão do App Engine. Verifique se você concedeu os seguintes papéis à conta de serviço usada para executar o aplicativo (geralmente a conta de serviço padrão,
app-id@appspot.gserviceaccount.com
):Conceda os papéis caso a conta de serviço não os tenha.
Se você estiver implantando na configuração da VPC compartilhada e transmitir
instance_tag
emapp.yaml
, consulte esta seção para corrigir o problema.
Erro de permissões ao implantar um serviço com o Conector VPC sem servidor
O seguinte erro ocorre ao implantar o app:
Please ensure you have [compute.globalOperations.get] on the service project
Esse erro ocorre quando o usuário ou a conta de serviço que está tentando implantar o aplicativo com o conector de VPC sem servidor não tem as permissões necessárias.
Para resolver esse problema, verifique se o usuário ou a conta de serviço que faz a implantação tem os papéis Usuário de acesso VPC sem servidor e IAM do visualizador do Compute.
Erro de valor inválido ao implantar em uma configuração de VPC compartilhada
O seguinte erro é exibido no Cloud Logging para instâncias de VM do Flex quando você implanta o aplicativo:
Invalid value for field 'resource.tags.items[1]': 'aef-instance'. Duplicate tags are not allowed: aef-instance on compute.instances.insert
Esse erro ocorre devido a um problema atual em que a configuração de instance_tag resulta em erros durante a criação de instâncias.
Para resolver o problema, remova o campo instance_tag
de app.yaml
e reimplante.
Erros ao implantar apps com até três instâncias ou menos
Apps implantados com max_instances
definido como 3 ou menos podem apresentar erros ou inatividade inesperados. Para resolver o
problema, especifique pelo menos quatro instâncias máximas em app.yaml
e reimplante.
Erro ao exceder o limite de instâncias máximas
O seguinte erro ocorre ao implantar o app:
You may not have more than 'xx' total max instances in your project.
Há um limite para o número máximo de instâncias que podem ser criadas por projeto. As solicitações para criar instâncias extras falharão se você exceder esse limite.
Para resolver esse problema, defina o valor de max_instances
no seu arquivo app.yaml
como um valor abaixo desse limite ou
exclua alguns serviços ou versões para somar max_instances
dentro do limite.
Falha do build durante a implantação sem erros nos registros do build
O seguinte erro ocorre ao implantar o aplicativo:
ERROR: (gcloud.app.deploy) Cloud build failed. Check logs at https://console.cloud.google.com/cloud-build/builds/BUILD_ID?project=PROJECT_NUMBER Failure status: UNKNOWN: Error Response: [2] Build failed; check build logs for details
Seguir o link na mensagem de erro mostra que todas as etapas da criação foram bem-sucedidas. No entanto, não foi possível criar o aplicativo.
Esse problema ocorre se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) ou tiver configurado uma política de retenção de dados para seu bucket staging.PROJECT_ID.appspot.com
.
Para resolver esse problema, altere as seguintes configurações do bucket staging.PROJECT_ID.appspot.com
:
- Defina a criptografia como chaves de criptografia gerenciadas pelo Google.
- Remova a política de retenção.
A criação durante a implantação falha ao ser executada com NODE_ENV=development
Esse erro pode ocorrer quando você implanta um aplicativo Node.js. Por padrão, o ambiente de execução do Node.js vai executar npm run build
se um script build
for detectado no arquivo package.json
.
Isso pode causar comportamentos inesperados, como builds de longa duração ou erros de memória insuficiente.
Especifique NODE_ENV=development
no arquivo app.yaml
para garantir que a execução tenha todas as dependências necessárias.
Apesar do erro, é possível forçar a produção especificando NODE_ENV: 'production'
em
build-env-variables
no arquivo app.yaml
:
build_env_variables:
NODE_ENV: 'production'
Para mais informações, consulte Como executar etapas personalizadas de versão durante a implantação.
Disponibilização
As seções a seguir abordam os erros de inicialização e veiculação do aplicativo.
Erro de permissão ao criar um app com a conta de serviço padrão
Quando você cria um aplicativo depois de ativar a API App Engine pela primeira vez, ele falha com os seguintes erros:
CLI da gcloud:
An internal error occurred while calling service consumer manager for service account. Creating App Engine application in project [PROJECT__ID] and [REGION]....failed. DEBUG: (gcloud.app.create) Error Response: [13] an internal error has occurred
Solicitar registros:
Service account creation is not allowed on this project.
Console
Error while initialising App Engine.
Esse erro pode ocorrer devido à aplicação da restrição da política da organização constraints/iam.disableServiceAccountCreation
ao criar seu
app. Esta política impede o provisionamento da conta de serviço padrão do App Engine PROJECT_ID@appspot.gserviceaccount.com
. A conta
de serviço padrão é necessária para a criação do app e não pode ser ignorada. Isso também
se aplica quando você usa uma conta de serviço por versão.
Para resolver esse problema, remova temporariamente a restrição constraints/iam.disableServiceAccountCreation
da política da organização para permitir a
criação e a implantação da conta de serviço padrão do App Engine.
A conta de serviço padrão do App Engine pode ser excluída ou substituída
por uma conta de serviço criada após a implantação bem-sucedida.
Se você estiver usando uma conta de serviço criada, consulte a Visão geral de recomendações de papéis para entender como aplicar permissões de restrição, como fornecer um papel de criador de token na conta de serviço que você cria para o agente de serviço.
Erros de segurança ao usar serviços incluídos legados para Python
Se você usar uma API de serviços incluídos legados quando um app Python 3 estiver sendo iniciado, talvez você veja a seguinte mensagem de erro:
Attempted RPC call without active security ticket
Esse erro pode ocorrer em cenários como a leitura de determinados valores do Memcache quando o app está começando a configurar uma conexão de banco de dados ou uma variável global.
Para resolver esse problema, tente mover essa lógica para uma solicitação de aquecimento.