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.
Saiba como executar seu aplicativo localmente, implantá-lo e testá-lo no App Engine.
Como executar localmente
Para testar a funcionalidade do seu aplicativo antes de implantá-lo, execute-o no ambiente local com as ferramentas de desenvolvimento que você costuma usar.
Para mais detalhes, inclusive sobre comandos específicos que dependem do plug-in, consulte Testes locais para o ambiente de execução Java 8/Jetty 9 ou Testes locais para o ambiente de execução Java 8.Como implantar o aplicativo
Antes de começar
Antes de implantar o aplicativo:
O Proprietário do projeto do Google Cloud precisa ativar o App Engine.
Verifique se a conta de usuário inclui os privilégios exigidos.
Implantar um serviço
Use qualquer uma das ferramentas compatíveis para implantar seu aplicativo Java no
ambiente flexível do App Engine. Para implantação na linha de comando, use
gcloud app deploy
pela CLI gcloud ou
use os plug-ins do Maven ou do Gradle. Para implantar utilizando um ambiente de desenvolvimento integrado, use os plug-ins do IntelliJ ou do Eclipse. Para implantar os aplicativos de maneira programática, use a API Admin.
Como ignorar arquivos
É possível usar um arquivo .gcloudignore
para especificar arquivos e diretórios que não serão enviados ao Google Cloud
ao implantar seus serviços. Isso é útil para ignorar artefatos de versão e outros que não precisam ser enviados com a implantação.
Saiba mais sobre a sintaxe do arquivo .gcloudignore
na referência do gcloud
(em inglês).
Como criar manualmente um contêiner para implantação
Para criar imagens de contêiner fora do Google Cloud Platform, faça upload das imagens para um repositório de imagens de contêiner antes de implantá-las no App Engine com o comando gcloud app deploy
.
Por exemplo, ao criar localmente imagens de contêiner com o Docker, envie-as para o Google Container Registry e especifique o URL correspondente na sinalização --image-url
do comando:
gcloud app deploy src/main/appengine/app.yaml --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGE
Como usar canais de implantação contínua automatizada
Use o Cloud Build para automatizar implantações em pipelines de implantação contínua. Para mais informações, consulte Como implantar artefatos e Como automatizar versões com acionadores de versão na documentação do Cloud Build.
Imagens base do Docker para Java
Se você quiser criar do zero um aplicativo Java de ambiente de execução personalizado, use esta imagem de base em um Dockerfile:
Ambiente de execução | Comando do Docker |
---|---|
Java 8 | FROM gcr.io/google_appengine/openjdk |
Java 8/Jetty 9 | FROM gcr.io/google-appengine/jetty |
Como visualizar o aplicativo
Depois de implantar o aplicativo no App Engine, execute o comando a seguir
para iniciar o navegador e visualizá-lo em
https://PROJECT_ID.REGION_ID.r.appspot.com
:
gcloud app browse
Como fazer testes no App Engine
Antes de configurar uma nova versão para receber tráfego, teste-a no App Engine. Por exemplo, para testar uma nova versão do seu serviço default
, siga estas etapas:
Implante sua nova versão com o parâmetro
promote
definido comofalse
:- Com o Maven, defina o parâmetro
promote
no arquivopom.xml
. - Com o Gradle, defina o parâmetro
promote
no arquivogradle.build
.
- Com o Maven, defina o parâmetro
Acesse a nova versão no URL a seguir:
https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
Agora você pode testar sua nova versão no ambiente de execução do App Engine. Depure o aplicativo visualizando os registros no Visualizador de registros do console do Google Cloud. Para saber mais informações, consulte Como gravar registros de aplicativos.
As solicitações enviadas para
https://PROJECT_ID.REGION_ID.r.appspot.com
ainda serão encaminhadas para a versão configurada anteriormente para receber tráfego.Quando você quiser enviar tráfego para a nova versão, use o console do Google Cloud para migrá-lo:
Selecione a versão que você acabou de implantar e clique em Migrar tráfego.
Use o mesmo processo para testar novas versões de outros serviços substituindo default
no URL pelo nome do serviço:
Resolver problemas
Veja mensagens de erro comuns que você talvez encontre ao implantar aplicativos:
PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
- Se o projeto do Cloud não incluir o aplicativo
necessário do
App Engine, o
comando
gcloud app deploy
pode falhar ao tentar executar o comandogcloud app create
. Somente contas com o papel Proprietário têm as permissões necessárias para criar aplicativos do App Engine. 502 Bad Gateway
- O projeto do Cloud poderá falhar ao iniciar se o
app.yaml
estiver configurado incorretamente. Verifique os registros do aplicativo para ver mensagens de erro mais detalhadas. [13] An internal error occurred while creating a Cloud Storage bucket.
O App Engine cria um bucket multirregional padrão do Cloud Storage em seu nome, na mesma região em que o aplicativo é criado. Esse bucket é necessário para armazenar o conteúdo do aplicativo. Este erro é retornado quando o bucket não pode ser criado nos seguintes cenários:
O agente de serviço do ambiente flexível do App Engine padrão não está presente no projeto ou não tem o papel
App Engine flexible environment Service Agent
. É possível adicionar novamente a conta de serviço do agente ao projeto concedendo a ele as permissões corretas do IAM.A conta de serviço do App Engine não está presente no projeto. Se a conta de serviço do App Engine foi removida antes de 30 dias desde a exclusão, é possível restaurá-la.
O projeto está em uma organização que aplica a política
constraints/gcp.resourceLocations
e ela não permite a criação de recursos na mesma região em que o App Engine foi criado. Você precisará substituir a políticaconstraints/gcp.resourceLocations
aplicada ao projeto e permitir os locais multirregionais na mesma região em que o aplicativo do App Engine foi criado.
[13] An internal error occurred.
Esse erro poderá ocorrer se você implantar o serviço com uma configuração de rede usando uma configuração de VPC compartilhada. Verifique se o ambiente flexível do App Engine atende a todos os requisitos dessa configuração. Em seguida, verifique se as contas de serviço configuradas para essa configuração estão presentes no projeto. Caso contrário, você precisará restaurar as contas. A região da sub-rede no projeto host da VPC compartilhada precisa corresponder ao local em que o ambiente do App Engine foi criado.
Se o problema persistir depois de confirmar que a configuração
app.yaml
é válida, use o SDK do Google Cloud para reimplantar o serviço, adicionar a sinalização--verbosity=debug
e entrar em contato com Suporte do GCP fornecendo a saída do comando.IP space of {USER_SUBNETWORK_NAME} is exhausted and needs to be expanded.
Se a implantação falhar com essa mensagem de erro, isso significará que a rede configurada para o serviço do App Engine não tem endereços para alocar para as novas instâncias do serviço. Para resolver o problema, expanda os intervalos da VPC na sub-rede configurada para o serviço do ambiente flexível do App Engine.