Migrar de serviços agrupados legados

A maior parte da funcionalidade fornecida pelos serviços incluídos legados agora é fornecida pelas Bibliotecas de cliente do Cloud. Para mais informações, consulte as alternativas recomendadas listadas abaixo.

Se a migração para uma solução desagrupada não for uma opção para seu projeto, então talvez seja possível continuar usando serviços agrupados legados nos seus Java 11/17 apps como substitutos. Essa abordagem oferece flexibilidade para migrar para serviços desagrupados posteriormente no ciclo de migração.

Depois de migrar dos serviços incluídos legados, você pode continuar usando o App Engine ou migrar para o Cloud Run. O Cloud Run foi projetado para melhorar a experiência do App Engine e incorpora muitos dos melhores recursos do ambiente padrão e do ambiente flexível. Para comparar recursos e entender a migração, consulte o guia de comparação entre o App Engine e o Cloud Run.

Caminhos de migração para serviços incluídos no App Engine

Blobstore

Para armazenar e recuperar dados, use o Cloud Storage por meio das bibliotecas de cliente do Cloud. Para começar, consulte Como usar o Cloud Storage.

Datastore

É possível usar o Firestore no modo Datastore como uma alternativa à API Datastore. O Firestore é a versão mais recente do Datastore, e recomendamos o uso das Bibliotecas de cliente do Cloud para Datastore.

Imagens

Para migrar o serviço de imagens do App Engine, implante um serviço de transformação de imagens em contêiner no Cloud Run e encaminhe as chamadas de serviço de imagens do App Engine para ele. Para hospedar e veicular imagens, armazene-as em um bucket do Cloud Storage ou distribua-as usando o Cloud CDN. Para mais informações, consulte Migrar o serviço de imagens.

Logging

Recomendamos que você atualize o aplicativo para usar o Cloud Logging, que é compatível com recursos como ver registros no explorador, fazer o download de registros, filtrar mensagens por nível de gravidade e correlacionar mensagens de apps com solicitações específicas. Como alternativa, se preferir a simplicidade em vez da precisão dos dados, você pode gravar registros estruturados em stdout ou stderr. Para mais informações, consulte Como gravar e visualizar registros.

E-mail

Para melhorar a segurança do e-mail e garantir a entrega confiável de e-mails em grande volume, recomendamos que você migre da API Mail legada para um serviço de e-mail baseado em SMTP service, como SendGrid, Mailgun ou Mailjet.

Memcache

Para armazenar os dados do aplicativo em cache, use o Memorystore para Redis.

Módulos

Para mais informações e para saber como modificar os serviços em execução do aplicativo, use uma combinação de variáveis de ambiente e a API App Engine Admin:

Informações de serviços Como acessar
ID do aplicativo atual Por meio da variável de ambiente GAE_APPLICATION.
ID do projeto atual Por meio da variável de ambiente GOOGLE_CLOUD_PROJECT.
Nome do serviço atual Por meio da variável de ambiente GAE_SERVICE.
Versão do serviço atual Por meio da variável de ambiente GAE_VERSION.
ID da instância atual Por meio da variável de ambiente GAE_INSTANCE.
Nome do host padrão Método apps.get da API Admin
Lista de serviços Método apps.services.list da API Admin
Lista de versões de um serviço Método apps.services.versions.list da API Admin
Versão padrão de um serviço, incluindo qualquer divisão de tráfego Método apps.services.get da API Admin
Lista de instâncias em execução de uma versão Método apps.services.versions.instances.list da API Admin

Para mais informações sobre os dados disponíveis sobre os serviços em execução do seu aplicativo, consulte o ambiente de execução do Java 11/17 .

Namespaces

A API Namespaces permite que os aplicativos multilocatários particionem dados por locatários simplesmente especificando uma string de namespace exclusiva para cada locatário.

Embora o Datastore ofereça suporte à multilocação diretamente, outros Google Cloud serviços não. Se o aplicativo multilocatário usa outros Google Cloud serviços, você precisa processar a multilocação manualmente. Para ter instâncias de serviços completamente isoladas, crie projetos novos de maneira programática usando a API Cloud Resource Manager e acesse os recursos em todos os projetos.

OAuth

Em vez de usar o serviço OAuth do App Engine para verificar os tokens do OAuth 2.0, use o método oauth2.tokeninfo da API OAuth 2.0.

Hospede qualquer banco de dados de pesquisa de texto completo, como o ElasticSearch no Compute Engine, e acesse-o a partir do serviço.

Fila de tarefas

Enfileirar tarefas para executar códigos assíncronos usando a API REST do Cloud Tasks, a API RPC ou as bibliotecas de cliente do Cloud, e use um serviço padrão do Java 11/17 App Engine como um destino push. Para mais informações, consulte Migrar do Task Queues para o Cloud Tasks.

Para o Java 11/17, consulte o programa de exemplo a seguir que interage com a API Cloud Tasks.

Quando for necessário usar filas pull, como no enfileiramento de tarefas ou mensagens a serem extraídas e processadas por workers separados, o Pub/Sub é uma boa alternativa. Ele oferece uma funcionalidade semelhante e garantias de entrega.

Autenticação do usuário

Como alternativa, use um dos mecanismos de autenticação baseados em HTTP descritos na página Autenticação de usuários.