Antes de fazer upgrade para a versão mais recente do SDK de serviços do App Engine, consulte a visão geral da migração.
É possível migrar para o Cloud Tasks automaticamente atualizando o SDK de serviços do App Engine para a versão mais recente. Depois do upgrade, o SDK redireciona automaticamente as chamadas PushQueue para as APIs de front-end do Cloud Tasks. O Cloud Tasks mantém as filas e tarefas atuais, então nenhuma migração adicional é necessária.
Nos bastidores, o SDK atualizado usa as APIs do Cloud Tasks para manter a paridade de recursos com as filas de tarefas. O SDK oferece suporte a:
- Criação de tarefas em lote: o SDK usa APIs em lote para oferecer suporte à adição de até 100 tarefas em uma única chamada.
- Novas tentativas no nível da tarefa: o SDK oferece suporte a configurações de novas tentativas específicas da tarefa.
- Tarefas transacionais: o SDK enfileira tarefas em transações do Datastore. Para manter a confiabilidade, crie ou modifique o arquivo
cron.yaml.
Preços e cotas
Migrar suas filas push para o Cloud Tasks pode afetar os preços e as cotas do seu aplicativo.
Preços
Consulte os preços do Cloud Tasks para estimar o custo mensal antes da migração.
Assim como nas filas de tarefas, o envio de solicitações para o aplicativo do App Engine com um destino push do Cloud Tasks é sem custo financeiro. No entanto, ao contrário das filas de tarefas, o Cloud Tasks cobra pela operação realizada, como criar, excluir ou gerenciar tarefas. Isso pode levar a um custo mensal geral mais alto em comparação com a fila de tarefas complementar do App Engine.
Cotas
As solicitações do Cloud Tasks também são contabilizadas nas cotas de solicitações do App Engine.
Assim como as filas de tarefas, o Cloud Tasks tem cotas específicas do serviço. A migração para o Cloud Tasks provavelmente vai mudar suas cotas.
Antes de começar
As seções a seguir discutem as considerações de custo e cota antes de migrar as filas push para o Cloud Tasks.
Verifique se você tem acesso ao código-fonte do App Engine.
Ative as APIs Cloud Tasks e Cloud Scheduler:
Para garantir que a conta de serviço do App Engine tenha as permissões necessárias para permitir que o SDK envie tarefas para a API Cloud Tasks, peça ao administrador para conceder o papel do IAM de Enfileirador do Cloud Tasks (
roles/cloudtasks.enqueuer) no projeto.
Atualizar o SDK de serviços do App Engine
Verifique se o aplicativo usa a versão mais recente do SDK de serviços do App Engine.
Atualize a dependência
google-appengine-apipara a versãov3.1.0b0ou mais recente. Exemplo:Flask==3.0.0 appengine-python-standard>=v3.1.0b0 google-cloud-tasks
Ativar o roteamento do Cloud Tasks
runtime: 3.14 service: my-service-b env_variables: APPENGINE_USE_CLOUDTASK_PUSH_QUEUE: "true"Implante o aplicativo:
gcloud app deployVerifique as filas push no Cloud Tasks para confirmar se o aplicativo está usando o Cloud Tasks.
Configurar tarefas transacionais (opcional)
Se o aplicativo enfileirar tarefas em transações do Datastore, o SDK vai depender de um cron job interno para garantir que as tarefas que não forem enfileiradas durante o commit do Datastore sejam processadas.
Para processar tarefas transacionais da fila push, crie ou atualize o arquivo cron.yaml para chamar o processador interno periodicamente. Exemplo:
cron:
- description: "Process push queue transactional tasks"
url: /_ah/cloudtask/sweep
schedule: every 30 minutes # Change this based on the usage pattern
A seguir
- Documentação do Cloud Tasks
- Biblioteca de cliente do Cloud Tasks
- Visão geral da Referência REST do Cloud Tasks
- Visão geral da referência de RPC do Cloud Tasks
- Para acessar um tutorial, consulte Push de migração da fila de tarefas do App Engine filas para Codelab do Cloud Tasks.