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, talvez seja possível continuar usando serviços agrupados legados nos apps Java 11/17 como substitutos. Essa abordagem oferece flexibilidade para migrar para serviços desagrupados posteriormente no ciclo de migração.
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
É 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
Para usar uma dessas bibliotecas de terceiros, adicione a biblioteca como uma dependência e atualize seu 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.
Geração de registros
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.
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. No momento, não há uma alternativa recomendada de mensagens de terceiros.
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 |
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.
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.
Pesquisa
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 doJava 17/11 do 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.