ID da região
O REGION_ID é um código abreviado que o Google atribui
com base na região que você selecionou ao criar o aplicativo. O código não
corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes
aos códigos de país e estado geralmente usados. Para apps criados após
fevereiro de 2020, o REGION_ID.r está incluído nos
URLs do App Engine. Para apps existentes criados antes dessa data, o
ID da região é opcional no URL.
Saiba mais sobre IDs de região.
Para uma lista completa de problemas conhecidos ou para relatar um novo problema, consulte o rastreador de problemas.
Depois de implantar o aplicativo com
gcloud app deploy, talvez seja necessário aguardar de um a dois minutos para que o aplicativo comece a ser veiculado emhttps://PROJECT_ID.REGION_ID.r.appspot.com. Durante esse tempo, talvez apareçam erros HTTP503.O App Engine geralmente registra esses erros como
backend_timeoutoufailed_to_pick_backendnos registros do balanceador de carga de aplicativo externo global. O balanceador de carga de aplicativo externo global envia solicitações para um serviço no ambiente flexível do App Engine, independentemente da integridade das instâncias individuais. Depois de implantar uma nova versão, o balanceador de carga de aplicativo externo global leva um tempo para atualizar a configuração com as novas instâncias de back-end. Durante essa transição, a disponibilidade dos serviços de back-end é inconsistente. Ao migrar o tráfego para a nova versão, o balanceador de carga de aplicativo externo global pode tentar enviar tráfego para instâncias que não estão totalmente prontas para receber solicitações, resultando em erros503. Isso também pode resultar em erros502, principalmente ao usar um balanceador de carga de aplicativo clássico.Se houver uma política da organização no projeto que restrinja o acesso a IPs externos, não será possível implantar um aplicativo de ambiente flexível do App Engine com endereços IP externos. Por exemplo, a política da organização pode ter a seguinte aparência:
- A política vigente para
constraints/compute.vmExternalIpAccessé definida comoDENY_ALL. - A política efetiva para
constraints/compute.vmExternalIpAccessestá definida para permitir somente instâncias de VM específicas. - A política vigente para
constraints/compute.requireOsConfigestá desativada no projeto para evitar atualizações de metadados.
Essas restrições não são detectadas automaticamente e as implantações podem atingir o tempo limite e falhar. Para verificar a política da organização do seu projeto, execute o comando
gcloud beta resource-manager org-policies describe compute.vmExternalIpAccess --project=my-project --effective. Também é possível substituir a política organizacional de um projeto específico.No entanto, mesmo com essas políticas da organização definidas, é possível implantar um app particular do ambiente flexível do App Engine que use apenas o endereço IP interno dele.
- A política vigente para
Após a implantação de uma nova versão de um serviço atual no ambiente flexível do App Engine com
gcloud app deploy, a métrica "Contagem/segundo" mostrada no gráfico "Resumo" do painel do App Engine pode diminuir significativamente. A métrica retornará gradualmente à contagem de solicitações esperada nos próximos 5 a 10 minutos.Isso não significa que seu aplicativo está exibindo menos solicitações. Ao implantar uma nova versão do aplicativo, há um atraso entre o momento em que a nova versão fica pronta para atender às solicitações e o horário em que as métricas para novas instâncias ficam disponíveis.
Para garantir que essa métrica não seja afetada por uma nova implantação da versão:
- Implante sua nova versão com
gcloud app deploy --no-promote. - Aguarde 15 minutos após a conclusão da implantação.
- Migre o tráfego para a nova versão.
Se você implantar com
--no-promote, mas alocar qualquer quantidade de tráfego para a nova versão antes do período de 15 minutos após a conclusão da implantação, essa métrica poderá ser afetada.- Implante sua nova versão com
No ambiente flexível do App Engine, não é possível configurar
app.yamlpara que o aplicativo redirecione automaticamente as solicitações para sempre usar HTTPS. Isso é diferente do ambiente padrão do App Engine, em que é possível usar a configuraçãosecure.Como alternativa, é redirecionar dentro do código do aplicativo analisando o valor do cabeçalho
X-Forwarded-Proto. Também é possível incentivar os clientes a usar o cabeçalhoStrict-Transport-Security.Se você atribuir uma conta de serviço gerenciada pelo usuário a uma versão do ambiente flexível do App Engine, o projeto poderá ser cobrado por métricas com prefixo
agent.googleapis.com. Normalmente, essas métricas de agente não são cobradas no projeto. Recomendamos que você continue usando a conta de serviço padrão do App Engine até que esse problema seja resolvido.Não é possível estabelecer uma conexão SSH com uma instância de VM usando o IAP.
Redução inesperada no número de instâncias
Em casos raros, o aplicativo pode perceber uma redução inesperada no número de instâncias devido a falhas na zona ou se um grupo inteiro de instâncias parar de responder. Para evitar isso, o Google recomenda o provisionamento excessivo do aplicativo para que o sistema não fique abaixo do número mínimo de instâncias. É possível definir o tamanho min_num_instances do aplicativo do ambiente flexível do App Engine ao implantá-lo. Veja a seguir alguns eventos que podem afetar o número mínimo de instâncias do ambiente flexível do App Engine:
- Lançamento de atualizações para instâncias de ambiente flexível
- Falha zonal (problemas de falta de estoque, como quando sua região atinge a capacidade da CPU selecionada etc.)
O ambiente flexível do Google App Engine usa três zonas para distribuir suas instâncias e, em uma configuração como essa, recomendamos que você provisione 50% mais instâncias do que o necessário.
Métricas inconsistentes do Cloud Load Balancing
O painel do ambiente flexível do App Engine mostra todas as métricas apenas para solicitações roteadas
por um back-end gerenciado de ambiente flexível. Se você usar o ambiente flexível do App Engine com o Cloud Load Balancing, algumas métricas na tabela de métricas do App Engine serão informadas como métricas da tabela loadbalancing. Para mais informações, consulte
Geração de registros e monitoramento de balanceamento de carga HTTP(S).
InterruptedException em ambientes de execução usando JVM durante a falha na verificação de integridade
Quando uma verificação de integridade falha, a VM é encerrada. Como um sintoma de que o contêiner do app
está com problemas, a JVM responde com erros InterruptedException e
NullPointerException. Um manipulador pode responder ao sinal SIGTERM
enviado pelo contêiner durante o encerramento para realizar as ações de limpeza ou
depuração necessárias e evitar exceções.