Migrar de serviços agrupados legados

A maior parte da funcionalidade fornecida pelos serviços incluídos do App Engine agora é fornecida pelas Bibliotecas de cliente do Cloud para Java. 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 o projeto, talvez seja possível continuar usando serviços incluídos legados nos aplicativos Java 11/17 como substitutos. Essa abordagem oferece flexibilidade para migrar para serviços desagrupados posteriormente no ciclo de migração.

Blobstore

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

Datastore

É possível usar o Firestore no modo Datastore como uma alternativa à API do Datastore que está incluída no ambiente de execução do Java 8. Firestore é a versão mais recente do Datastore e recomendamos que você use o modo Datastore em bancos de dados que serão usados principalmente por aplicativos do App Engine.

Imagens

É possível veicular imagens a partir do Cloud Storage, veiculá-las diretamente ou usar uma rede de fornecimento de conteúdo (CDN) terceirizada.

Para redimensionar, converter e manipular imagens, use uma biblioteca de processamento de imagens, como ImageJ2, imgscalr ou thumbnailator. Use uma destas bibliotecas de terceiros, adicione a biblioteca como uma dependência e atualize o código para chamar as APIs da biblioteca.

O serviço de imagens do App Engine também oferece funcionalidades para evitar solicitações dinâmicas ao seu aplicativo. Para isso, ele realiza o redimensionamento de imagens por meio de um URL de exibição. Se você quiser uma funcionalidade semelhante, será possível gerar as imagens redimensionadas com antecedência e enviá-las ao Cloud Storage para exibição. Como alternativa, é possível é usar um serviço de rede de fornecimento de conteúdo (CDN) de terceiros que ofereça redimensionamento 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, ative esses recursos gravando mensagens de registro que contenham dados específicos estruturados em um objeto JSON. Saiba mais em Gravar e visualizar registros.

E-mail

Para enviar e-mails, use um provedor de e-mail terceirizado, como SendGrid, Mailgun ou Mailjet (todos em inglês). Todos esses serviços oferecem APIs para enviar e-mails a partir de aplicativos.

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 Admin do App Engine:

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

Namespaces

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

O Datastore é compatível com multilocação diretamente, mas o mesmo não ocorre com outros serviços do Google Cloud. Se o aplicativo multilocatário usar outros serviços do Google Cloud, você precisará 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

Coloque as tarefas em fila para execução de código assíncrono usando a API REST Cloud Tasks, a API RPC ou a biblioteca de cliente do Google Cloud e use um serviço padrão do Java 11/17 do App Engine como destino de envio. Para mais informações, consulte Migrar do Task Queues para o 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 pode ser uma boa alternativa. Ele oferece uma funcionalidade semelhante e garantias de entrega.

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

autenticação de usuário;

Como alternativa, use qualquer mecanismo de autenticação com base em HTTP em vez da API Users, como: