Como fazer upgrade para a última versão do ambiente flexível do App Engine

Esta página é destinada a desenvolvedores que usam o ambiente flexível com a configuração vm:true no app.yaml e querem fazer upgrade para a versão mais recente, o que requer alterações na configuração do app.

Esta página não se refere ao upgrade do ambiente padrão do App Engine, abordado em Migrar serviços do ambiente padrão para o ambiente flexível.

Fazer upgrade para o ambiente flexível

Para fazer upgrade para o ambiente flexível do ambiente de VMs gerenciadas, siga estas etapas:

  1. No arquivo de configuração app.yaml, substitua a entrada vm: true obsoleta por env: flex. Exemplo:
    runtime: go
    env: flex
  2. Consulte a lista de alterações importantes para determinar se é necessária mais alguma alteração no app.yaml.
  3. Durante o upgrade, pense em fazer alterações para usar novos recursos.
  4. Depois de fazer as alterações necessárias, implante a nova versão do app no App Engine.

    Por exemplo, no diretório raiz do aplicativo em que o arquivo app.yaml está localizado, execute o comando:

    gcloud app deploy

Tipos de máquina com núcleo compartilhado

Os tipos de máquina com núcleo compartilhado que tenham menos de uma vCPU não são compatíveis com o ambiente flexível do App Engine. Se você estiver usando máquinas com núcleo compartilhado, ao migrar para env:flex, faça upgrade das máquinas para ter pelo menos um núcleo. Você também pode migrar o app para o ambiente padrão do App Engine.

Solicitações de aquecimento

As solicitações /_ah/warmup não são compatíveis com o ambiente flexível do App Engine.

Para inicializar seu aplicativo, implemente um gerenciador de verificação de integridade que retorne apenas um status "pronto" quando o aplicativo é inicializado.

Por exemplo, é possível criar uma verificação de preparo que retorne um status "pronto" depois de inicializar o cache. Dessa forma, o app não receberá tráfego até estar pronto.

Arquivos estáticos

Se você definir arquivos estáticos na seção handlers: do app.yaml, eles serão exibidos diretamente pelas instâncias do App Engine e não de outra infraestrutura do App Engine. A interface e o comportamento são idênticos, mas um pequeno valor de CPU e outros recursos são consumidos em instâncias do App Engine quando um arquivo é disponibilizado.

Recursos ocultos

Os recursos de base das implantações de ambientes flexíveis (inclusive o Cloud Load Balancing, as instâncias do Compute Engine e os grupos de instâncias gerenciadas) estão ocultos no Console do Google Cloud Platform para fornecer uma abstração mais completa de um aplicativo do App Engine e das instâncias. As instâncias individuais podem ser visualizadas e controladas no Console do GCP, na página Instâncias.

As instâncias ainda podem ser desbloqueadas e alcançadas via SSH para fins de depuração. Em vez de usar o comando gcloud compute instances, use gcloud app instances. Também é possível iniciar conexões SSH na página Instâncias do Console do GCP.

Alterações importantes

O upgrade para o ambiente flexível do App Engine requer algumas alterações nos arquivos de código e configuração. Esta seção inclui suspensões de uso e alterações importantes com que você precisa lidar antes de implantar o app com a configuração env: flex.

Bibliotecas obsoletas

As bibliotecas e os serviços relacionados a seguir se tornaram obsoletos em 15 de novembro de 2016 e não são compatíveis com o ambiente flexível:

Alterações feitas em app.yaml

Substitua a configuração obsoleta vm:true no arquivo app.yaml pela configuração de ambiente flexível env:flex.

Alterações feitas na autenticação

Também é necessário atualizar o arquivo app.yaml para remover ou substituir outras configurações obsoletas:

  • Gerenciadores seguros
    A configuração secure em handlers se tornou obsoleta para o ambiente flexível do App Engine. Se você precisar de redirecionamento SSL, atualize o código do aplicativo e use o cabeçalho X-Forwarded-Proto para redirecionar o tráfego http. Também é possível usar o cabeçalho de resposta de HTTP Strict Transport Security.
  • Gerenciadores de login
    A configuração login em handlers se tornou obsoleta para o ambiente flexível do App Engine. Siga as orientações da Migração do serviço Usuários.

Alterações nas variáveis de ambiente

As seguintes variáveis de ambiente foram removidas ou renomeadas. Quando disponível, a variável de substituição será listada:

Variável de ambiente obsoleta Nova variável (quando aplicável)
APPENGINE_LOADBALANCER
APPENGINE_LOADBALANCER_IP
GAE_AFFINITY
GAE_APPENGINE_HOSTNAME
GAE_MINOR_VERSION
GAE_LONG_APP_ID GOOGLE_CLOUD_PROJECT
GAE_MODULE_INSTANCE GAE_INSTANCE
GAE_MODULE_NAME GAE_SERVICE
GAE_MODULE_VERSION GAE_VERSION
GAE_PARTITION
GAE_VM
HOSTNAME
MEMCACHE_ENV_DEBIAN_FRONTEND
MEMCACHE_ENV_PORT
MEMCACHE_NAME
MEMCACHE_PORT
MEMCACHE_PORT_11211_TCP
MEMCACHE_PORT_11211_TCP_ADDR
MEMCACHE_PORT_11211_TCP_PORT
MEMCACHE_PORT_11211_TCP_PROTO
MODULE_YAML_PATH
SERVER_SOFTWARE
USE_MVM_AGENT

Alterações nos cabeçalhos de solicitação

Os seguintes cabeçalhos de solicitação HTTP foram alterados:

  • Removidos de todas as solicitações:

    • X-GOOGLE-REAL-IP
    • X-APPENGINE-API-TICKET
    • X-APPENGINE-AUTH-DOMAIN
    • X-APPENGINE-DATACENTER
    • X-APPENGINE-DEFAULT-VERSION-HOSTNAME
    • X-APPENGINE-HTTPS
    • X-APPENGINE-REQUEST-ID-HASH
    • X-APPENGINE-REQUEST-LOG-ID
    • X-APPENGINE-USER-IS-ADMIN
    • X-APPENGINE-USER-IP
  • Agora incluídos em todas as solicitações:

    • X-FORWARDED-FOR
    • X-CLOUD-TRACE-CONTEXT
    • X-FORWARDED-PROTO

Serviço Memcache

Para criar um cache de aplicativo, crie uma instância do Cloud Memorystore e conecte-a ao aplicativo usando o acesso sem servidor VPC.

Filas de tarefas

Para usar o serviço push de fila de tarefas fora do ambiente padrão de primeira geração, use a API Cloud Tasks.

O Cloud Pub/Sub pode ser uma ótima alternativa para muitos casos em que você usa filas pull, como enfileiramento de tarefas ou mensagens que são extraídas e processadas por trabalhos separados. Ele oferece funcionalidades e garantias de entrega similares.

Alterações no roteamento de URL

Não é mais possível encaminhar o tráfego para instâncias específicas em apps executados no ambiente flexível. Por exemplo, não é possível direcionar solicitações para o instanceID da instância:

https://instanceID-dot-versionID-dot-serviceID-dot-app-id.appspot.com

Novos recursos a considerar no upgrade

Veja as seguintes melhorias que você pode aproveitar ao fazer upgrade do app:

Alterações nos preços

A versão do ambiente flexível do App Engine apresenta um novo modelo de preços. Os clientes que usam vm:true pagarão os preços brutos do Compute Engine por um ano. Para ver os novos preços do ambiente flexível, consulte os Custos das instâncias de ambientes flexíveis.

Dica: os limites de gasto não são aceitos no ambiente flexível. Considere criar orçamentos e definir alertas.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para Go