ID da região
O REGION_ID
é um código que o Google atribui com base na região selecionada ao criar o aplicativo. A inclusão de REGION_ID.r
nos URLs do App Engine é opcional para aplicativos atuais e em breve será obrigatória para todos os aplicativos novos.
Para garantir uma transição tranquila, estamos atualizando lentamente o App Engine para usar códigos da região. Se ainda não tivermos atualizado seu projeto do Google Cloud, você não verá um ID da região para o aplicativo. Como o ID é opcional para os aplicativos atuais, não é necessário atualizar os URLs ou fazer outras alterações quando o ID da região está disponível para os aplicativos já existentes.
Saiba mais sobre IDs da região.
Saiba como executar seu aplicativo localmente, implantá-lo e testá-lo no App Engine.
Como executar localmente
Para testar a funcionalidade do aplicativo antes de implantá-lo, execute-o no ambiente local com as ferramentas de desenvolvimento que você costuma usar.
Por exemplo, o comandogo run
.
Implantar o aplicativo
Implante o aplicativo no App Engine usando o comando gcloud app deploy
, que montará corretamente as dependências do aplicativo da mesma maneira que a ferramenta go
faz.
Ele cria automaticamente uma imagem do contêiner usando o serviço Cloud Build e a implanta no ambiente flexível do App Engine. O contêiner inclui quaisquer modificações locais realizadas na imagem do ambiente de execução.
Para implantar os aplicativos de maneira programática, use a API Admin.
Antes de começar
Antes de implantar seu 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.
Garantir uma implantação bem-sucedida
Ao ativar as verificações de integridade atualizadas, as implantações são revertidas se o aplicativo não tiver o status "íntegro".
Quando você implanta seu primeiro aplicativo no ambiente flexível, pode ocorrer um atraso conforme a máquina virtual (VM) e outras infraestruturas são configuradas.
Após a configuração inicial, as verificações de integridade garantem que a instância esteja íntegra e pronta para receber tráfego. Se o aplicativo não atingir o status pronto em um período especificado, indicado pelo campo initial_delay_sec
na seção liveness_check
do arquivo app.yaml, a implantação falhará e será revertida.
É provável que o aplicativo demore um pouco mais para ficar pronto. Por exemplo, você pode inicializar o aplicativo fazendo o download de arquivos grandes ou carregando caches com antecedência. Com o uso de verificações de integridade atualizadas, é possível aumentar o tempo modificando a configuração app_start_timeout_sec
na seção readiness_check
do arquivo app.yaml
.
Se a implantação falhar, verifique se a API Cloud Build está ativada no projeto. O App Engine ativa essa API automaticamente na primeira vez que você implanta um aplicativo, mas se alguém tiver desativado a API, as implantações falharão.
Implantar um serviço
Implante o aplicativo no App Engine implantando as versões dos serviços dele e os respectivos arquivos de configuração.
Para implantar um versão do serviço do seu aplicativo, execute o comando a seguir no diretório em que o arquivo app.yaml
do serviço está localizado:
gcloud app deploy
Se você não especificar algum arquivo com o comando, somente o arquivo app.yaml
será implantado no diretório atual. Por padrão, o comando deploy
gera um código exclusivo para a versão a ser implantada, implanta a versão no projeto do Cloud que você configurou para uso da ferramenta gcloud
e roteia todo o tráfego para a nova versão.
É possível alterar o comportamento padrão do comando. Basta apontar arquivos específicos ou incluir outros parâmetros:
Para implantar os outros arquivos de configuração do serviço, é necessário segmentar e implantar cada um deles separadamente. Por exemplo:
gcloud app deploy cron.yaml gcloud app deploy dispatch.yaml gcloud app deploy index.yaml
Para especificar um ID de versão personalizado, use a sinalização
--version
.Para impedir que o tráfego seja roteado automaticamente para a nova versão, use a sinalização
--no-promote
.Para implantar em um projeto específico do Cloud, use a sinalização
--project
.
Por exemplo, para implantar o serviço definido por app.yaml
em um projeto específico do Cloud, atribua a ele um código de versão personalizado e impeça que o tráfego seja roteado para a nova versão:
gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote
Para mais informações sobre esse comando, consulte as referências do gcloud app deploy
.
Como implantar vários serviços
Use o mesmo comando para implantar ou atualizar os diversos serviços que compõem seu aplicativo.
Para implantar vários serviços, implemente separadamente o arquivo app.yaml
de cada serviço. Por exemplo:
gcloud app deploy service1/app.yaml
gcloud app deploy service2/app.yaml
Especifique vários arquivos com um único comando de implantação:
gcloud app deploy service1/app.yaml service2/app.yaml
Requisitos para implantar vários serviços
Primeiro é preciso implantar uma versão do seu aplicativo no serviço
default
para depois criar e implantar os serviços posteriores.O ID de cada serviço precisa ser especificado nos arquivos de configuração
app.yaml
correspondentes. Para isso especificar o ID do serviço, inclua a definição do elementoservice
em cada arquivo de configuração. Por padrão, a exclusão dessa definição de elemento do arquivo de configuração faz com que a versão seja implantada no serviçodefault
default.
Como ignorar arquivos
É possível usar um arquivo .gcloudignore
para especificar os arquivos e diretórios que não serão enviados ao Google Cloud na implantação dos 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 --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGEPara mais informações sobre como criar sua própria imagem de contêiner, consulte a seção Como estender o ambiente de execução.
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.
Ver o aplicativo
Após a implantação do aplicativo no App Engine, execute o comando abaixo 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 e inclua a sinalização
--no-promote
:gcloud app deploy --no-promote
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. É possível depurar o aplicativo visualizando os registros dele no visualizador de registros do Console do Google Cloud. Para saber mais informações, consulte Como gravar registros de aplicativos.
As solicitações enviadas a
https://PROJECT_ID.REGION_ID.r.appspot.com
serão encaminhadas para a versão configurada anteriormente para receber tráfego.Quando quiser enviar tráfego para a nova versão, use o Console do Google Cloud:
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:
Solução de problemas
Esta é uma mensagem de erro comum que você pode encontrar ao implantar apps:
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
poderá falhar quando 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.