Adicionar uma tarefa a uma fila do Cloud Tasks
Neste guia de início rápido, é possível testar operações básicas usando as filas do Cloud Tasks pela API Cloud Tasks.
As amostras neste guia de início rápido visam gerenciadores do App Engine, portanto, você precisa implantar um aplicativo do App Engine. Se você não estiver usando o App Engine como destino, não será preciso implantar um aplicativo do App Engine e será possível desativar qualquer aplicativo atual do App Engine.
Por exemplo, se você estiver usando um gerenciador de destino HTTP exclusivamente, um aplicativo do App Engine não será necessário. No caso de destinos HTTP genéricos, o serviço do Cloud Tasks encaminha a solicitação de tarefa ao worker, localizado em qualquer endpoint HTTP genérico, com base na configuração da tarefa. Para mais informações sobre o uso de destinos HTTP, consulte Criar tarefas de destino HTTP.
Antes de começar
Para configurar o ambiente do Cloud neste guia de início rápido, crie um projeto do Google Cloud e adicione um aplicativo do App Engine com o faturamento ativado. Se você tiver uma conta de faturamento ao criar seu projeto do Google Cloud, o faturamento será ativado automaticamente.Saiba mais sobre como gerenciar projetos do Google Cloud, aplicativos do App Engine e o faturamento em geral.
- Crie ou selecione um projeto do Google Cloud:
Acessar a página do App Engine - Use os botões no canto superior direito para selecionar um nome de projeto existente ou criar um novo.
- Anote o ID do projeto na caixa suspensa no canto superior esquerdo. Ele servirá como um parâmetro para suas solicitações do Cloud Tasks.
- Adicione um aplicativo do App Engine ao seu projeto:
- Na página Bem-vindo ao App Engine, clique em Criar aplicativo.
- Selecione uma região para o aplicativo.
Anote esse local, ele atuará como o parâmetro LOCATION_ID das solicitações do Cloud Tasks. Observe que dois locais, chamados
europe-west
eus-central
nos comandos do App Engine, são chamados, respectivamente,europe-west1
eus-central1
nos comandos do Cloud Tasks. - Na página Primeiros passos, clique em Avançar. Você cuidará disso mais tarde. Se este for um projeto novo, o ambiente de execução será criado.
- Se o pop-up Ativar faturamento for exibido, selecione sua conta de faturamento. Se você não tiver uma conta de faturamento, clique em Criar conta de faturamento e siga o assistente.
- Na página Próximos passos, clique em Farei isso mais tarde. Você vai acessar as amostras e fazer o download do SDK mais tarde.
- Ative a API Cloud Tasks.
Acessar a página "API Cloud Tasks" - Configure a autenticação na API.
- Siga as instruções para criar uma conta de serviço. Faça o download do arquivo com a chave JSON associada à conta e armazene-o localmente. A chave da conta de serviço autoriza o código local a acessar o Google Cloud de maneira programática.
- As amostras usam as bibliotecas de cliente do Google Cloud para interagir com o App Engine. Portanto, você precisa definir uma variável de ambiente para apontar para a chave salva acima, que a biblioteca usa para autenticar e autorizar suas solicitações. É possível criar suas solicitações sem usar as bibliotecas de cliente, mas elas ajudam a gerenciar detalhes de comunicação de baixo nível com o servidor, incluindo a autenticação.
- Instale e configure a CLI gcloud. Isso dá acesso à ferramenta
gcloud
.
Configurar a amostra
Nestas amostras, há um framework para tentar adicionar tarefas às filas do Cloud Tasks pela API Cloud Tasks .
C#
A amostra C# consiste em dois aplicativos, um (CreateAppEngineTask
) executado localmente como uma ferramenta de linha de comando para criar e adicionar tarefas à fila e outro (CloudTasks
) implantado no App Engine flex como um worker para "processar" a tarefa.
Para fazer o download e instalar a amostra:
Verifique se o SDK do .NET Core, versão 2.0 ou mais recente, está instalado.
Verifique se a ferramenta
gcloud
foi inicializada e configurada para usar o projeto do Google Cloud criado acima.Clone o repositório de aplicativos de amostra na máquina local:
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
Navegue até o diretório que contém o código de amostra de
CreateTask
:cd dotnet-docs-samples/cloudtasks/api/TasksSample/
Instale todas as dependências:
dotnet restore
Navegue até o diretório (
dotnet-docs-samples/cloudtasks/appengine/
) que contém o código de amostra paraCloudTasks
e instale todas as dependências:dotnet restore
Compile o aplicativo e prepare-o para implantação:
dotnet publish
Implante o serviço do worker (
CloudTasks
) no ambiente flexível do App Engine:gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml
Verifique se a página de índice é exibida:
gcloud app browse
Seu navegador abre
https://{YOUR_PROJECT_ID}.appspot.com/
e exibeHello, World!
.
Python
O aplicativo de amostra do Python consiste em dois arquivos, um (create_app_engine_queue_tasks.py
) executado localmente como uma ferramenta de linha de comando para criar e adicionar tarefas à fila e outro (main.py
) implantado no App Engine como um worker para "processar" a tarefa.
Para fazer o download e instalar a amostra:
Clone o repositório de aplicativos de amostra na máquina local:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Navegue até o diretório que contém o código de exemplo:
cd python-docs-samples/appengine/flexible/tasks/
Instale todas as dependências:
pip install -r requirements.txt
Verifique se você inicializou a ferramenta
gcloud
e a configurou para usar o projeto criado acima.Implante o serviço do worker (
main.py
) no App Engine:gcloud app deploy
Verifique se a página de índice é exibida:
gcloud app browse
Seu navegador abre
https://{YOUR_PROJECT_ID}.appspot.com/
e exibeHello, World!
.
Java
O aplicativo de amostra Java 8 consiste em dois arquivos, um (CreateTask.java
) executado localmente como uma ferramenta de linha de comando para criar e adicionar tarefas à fila e outro (TaskServlet.java
) implantado no App Engine como um worker para "processar" a tarefa. Para executar o exemplo usando Java 11, consulte Como executar código Java 11 de forma assíncrona.
Observação: para usar o aplicativo de amostra do Java, é preciso ter estes outros componentes:
- Maven
- O componente app-engine-java para a CLI gcloud
- O plug-in Maven do App Engine, que já foi especificado no arquivo
pom.xml
fornecido para a amostra
Para mais informações sobre esses componentes, consulte Como usar o Apache Maven e o plug-in do App Engine e Metas e parâmetros do plug-in do Maven.
Para fazer o download e instalar a amostra:
Clone o repositório de aplicativos de amostra na máquina local:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Navegue até o diretório de nível superior da amostra do Tasks:
cd java-docs-samples/appengine-java8/tasks/quickstart/
Verifique se você inicializou a ferramenta
gcloud
e a configurou para usar o projeto criado acima.Crie e execute a ferramenta de linha de comando local (
CreateTask.java
):mvn appengine:run
Implante o serviço do worker (
TaskServlet.java
) no App Engine:mvn appengine:deploy
PHP
A amostra PHP consiste em dois arquivos, um (/snippets/src/create_task.php
) executado localmente como uma ferramenta de linha de comando para criar e adicionar tarefas à fila e outro (/apps/handler/index.php
) implantado no App Engine como um worker para "processar" a tarefa.
Para fazer o download e instalar a amostra:
Clone o repositório de aplicativos de amostra na máquina local:
git clone https://github.com/GoogleCloudPlatform/php-docs-samples
Navegue até o diretório de nível superior da amostra do Tasks:
cd php-docs-samples/appengine/standard/tasks
No diretório
tasks
, você verá dois subdiretórios:apps/handler
: contém o código do serviço do worker a ser implantado no App Enginesnippets
: contém o código da ferramenta de linha de comando local
Verifique se o Composer está instalado. Se você quiser usá-lo localmente, verifique se
composer.phar
está localizado nos dois subdiretórios. Consulte informações sobre a execução no local ou global nos documentos do Composer.No diretório
snippets
, instale todas as dependências:composer install
ou apenas no local:php composer.phar install
No diretório
apps/handler
, instale todas as dependências:composer install
ou apenas no local:php composer.phar install
Verifique se a ferramenta
gcloud
foi inicializada e configurada para usar o projeto do Google Cloud criado acima.No diretório
apps/handler
, implante o serviço do worker no App Engine usando o comandogcloud app deploy
:gcloud app deploy
Verifique se o aplicativo que contém o serviço está sendo executado:
gcloud app browse
Seu navegador abre
https://{YOUR_PROJECT_ID}.appspot.com/
e exibeHello, World!
.
Go
A amostra Golang consiste em dois arquivos, um (tasks/create_task/create_task.go
) executado localmente como uma ferramenta de linha de comando para criar e adicionar tarefas à fila e outro (tasks/handle_task/handle_task.go
) implantado no App Engine como um worker para "processar" a tarefa.
Para fazer o download e instalar a amostra:
Verifique se você instalou o componente Go do App Engine
gcloud
:gcloud components install app-engine-go
Verifique se você inicializou a ferramenta
gcloud
e a configurou para usar o projeto criado acima.Clone o repositório de aplicativos de amostra em sua máquina local:
go get github.com/GoogleCloudPlatform/golang-samples/appengine/go11x/tasks/...
Acesse o diretório
tasks/handle_task
do código de amostra do worker.cd golang-samples/appengine/go11x/tasks/handle_task
Observe o arquivo
app.yaml
, que contém as informações de configuração necessárias.Implante o serviço do worker (
handle_task.go
) no App Engine:gcloud app deploy
Verifique se o aplicativo que contém o serviço está sendo executado:
gcloud app browse
Seu navegador abre
https://{YOUR_PROJECT_ID}.appspot.com/
e exibeHello, World!
.
Node.js
A amostra Node.js consiste em dois arquivos, um (createTask.js
) executado localmente como uma ferramenta de linha de comando para criar e adicionar tarefas à fila e outro (server.js
) implantado no App Engine como um worker para "processar" a tarefa.
Para fazer o download e instalar a amostra:
Clone o repositório de aplicativos de amostra na máquina local:
git clone https://github.com/googleapis/nodejs-tasks.git
Navegue até o diretório que contém o código de exemplo:
cd nodejs-tasks/samples
Instale todas as dependências.
Você pode usar npm:
npm install
Ou yarn:yarn install
Verifique se você inicializou a ferramenta
gcloud
e a configurou para usar o projeto criado acima.Implante o serviço do worker (
server.js
) no ambiente padrão do App Engine:gcloud app deploy app.yaml
Verifique se o aplicativo que contém o serviço está sendo executado:
gcloud app browse
Seu navegador abre
https://{YOUR_PROJECT_ID}.appspot.com/
e exibeHello, World!
.
Ruby
A amostra Ruby consiste em dois arquivos, um (create_Task.rb
) executado localmente como uma ferramenta de linha de comando para criar e adicionar tarefas à fila e outro (app.rb
) implantado no App Engine como um worker para "processar" a tarefa.
Para fazer o download e instalar a amostra:
Clone o repositório de aplicativos de amostra na máquina local:
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
Navegue até o diretório que contém o código de exemplo:
cd ruby-docs-samples/appengine/cloud-tasks
Instale as dependências:
bundle install
Verifique se você inicializou a ferramenta
gcloud
e a configurou para usar o projeto criado acima.Implante o serviço do worker (
app.rb
) no ambiente flexível do App Engine:gcloud app deploy app.yaml
Verifique se o aplicativo que contém o serviço está sendo executado:
gcloud app browse
Seu navegador abre
https://{YOUR_PROJECT_ID}.appspot.com/
e exibeHello, World!
.
Para mais informações sobre como criar gerenciadores de tarefas do App Engine, consulte Como criar gerenciadores de tarefas do App Engine.
Criar uma fila do Cloud Tasks
Use a função de gerenciamento de filas gcloud
da CLI gcloud para criar sua fila no
ambiente que você preparou acima.
Na linha de comando, digite o seguinte:
gcloud tasks queues create my-queue
Aguarde um pouco para a fila ser inicializada e, em seguida, use
describe
para verificar se a criação foi bem-sucedida:gcloud tasks queues describe my-queue
Verifique se a saída é semelhante a esta:
name: projects/[PROJECT_ID]/locations/[LOCATION_ID]/queues/my-appengine-queue # Note these ids rateLimits: maxBurstSize: 100 maxConcurrentDispatches: 1000 maxDispatchesPerSecond: 500.0 retryConfig: maxAttempts: 100 maxBackoff: 3600s maxDoublings: 16 minBackoff: 0.100s state: RUNNING
Adicionar uma tarefa à fila do Cloud Tasks
C#
Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:
Defina as seguintes variáveis de ambiente na sua máquina, manualmente, no código no seu app de amostra ou por um alias. O aplicativo de amostra as utiliza para criar a solicitação que adiciona as tarefas à fila:
export GOOGLE_PROJECT_ID=my-project-id # The project ID you set up above export GCP_QUEUE=my-queue # the queue you created above export LOCATION_ID=my-location-id # The region in which your queue is running
Para encontrar o ID do local para o app do App Engine, use o seguinte comando
gcloud
:gcloud tasks locations list
Navegue até a pasta
TasksSample
:cd ../api/TasksSample
Usando
test
, crie uma tarefa e adicione um payload, a string "hello". O aplicativoCloudTasks
implantado anteriormente tem um endpoint,log_payload
, que processa o payload registrando-o.dotnet test
Verifique no registro se a tarefa acessou o endpoint:
gcloud app logs read
Python
Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:
Defina as seguintes variáveis de ambiente na sua máquina manualmente, no código no seu app de amostra ou por um alias. O aplicativo de amostra as utiliza para criar a solicitação que adiciona as tarefas à fila:
export PROJECT_ID=PROJECT_ID # The project ID you set up above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Para encontrar o ID de local, use o seguinte comandogcloud
:gcloud tasks locations list
Use o
create_app_engine_queue_task.py
local para criar uma tarefa e adicionar um payload dehello
. O payload pode ser qualquer dado da solicitação necessário para que o worker conclua o processamento da tarefa:python create_app_engine_queue_task.py --project=$PROJECT_ID --location=$LOCATION_ID --queue=$QUEUE_ID --payload=hello
Verifique se o payload foi recebido:
gcloud app logs read
Java
Depois de criar a tarefa localmente, ela deve ser adicionada à fila configurada e entregue a um worker assíncrono:
Defina as seguintes variáveis de ambiente na sua máquina manualmente, no código no seu app de amostra ou por um alias. O aplicativo de amostra as utiliza para criar a solicitação que adiciona a tarefa à fila:
export GOOGLE_CLOUD_PROJECT=PROJECT_ID # The project ID you set up above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Para encontrar o ID de local, use o seguinte comandogcloud
:gcloud tasks locations list
Crie uma tarefa, segmentada no endpoint
/task/create
no servlet que você implantou, com um payload dehello
. O payload pode ser qualquer dado da solicitação necessário para que o worker conclua o processamento da tarefa:mvn exec:java -Dexec.mainClass="com.example.task.CreateTask" -Dexec.args="--project-id $GOOGLE_CLOUD_PROJECT --queue $QUEUE_ID --location $LOCATION_ID --payload hello"
Verifique se o payload foi recebido nos registros:
gcloud app logs read
PHP
Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:
Navegue até o diretório
snippets
.Defina as seguintes variáveis de ambiente na sua máquina manualmente, no código no seu app de amostra ou por um alias. O aplicativo de amostra as utiliza para criar a solicitação que adiciona a tarefa à fila:
export PROJECT_ID=PROJECT_ID # The project ID from above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Para encontrar o ID de local, use o seguinte comandogcloud
:gcloud tasks locations list
Use o snippet local
create_task.php
para criar uma tarefa e adicionar um payload dehello
. O payload pode ser qualquer dado da solicitação necessário para que o worker conclua o processamento da tarefa:php src/create_task.php $PROJECT_ID $LOCATION_ID $QUEUE_ID hello
Verifique se o payload foi recebido nos registros:
gcloud app logs read
Go
Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:
Se você ainda estiver no diretório
tasks/handle_task
, navegue até o diretóriotasks/create_task
.Defina as seguintes variáveis de ambiente na sua máquina manualmente, no código no seu app de amostra ou por um alias. O cliente usa essas informações para criar a solicitação:
export PROJECT_ID=PROJECT_ID # The project ID from above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Para encontrar o ID de local, use o seguinte comandogcloud
:gcloud tasks locations list
Crie uma tarefa com um payload de
hello
e adicione essa tarefa à sua fila. O payload pode ser qualquer dado da solicitação necessário para que o worker conclua o processamento da tarefa:go run . $PROJECT_ID $LOCATION_ID $QUEUE_ID hello
Para verificar se o payload foi recebido, visualize os registros do serviço do worker.
gcloud app logs read
Node.js
Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:
Defina as seguintes variáveis de ambiente na sua máquina manualmente, no código no seu app de amostra ou por um alias. O cliente usa essas informações para criar a solicitação:
export PROJECT_ID=PROJECT_ID # The project ID from above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Para encontrar o ID de local, use o seguinte comandogcloud
:gcloud tasks locations list
Crie uma tarefa com um payload de
hello
e adicione essa tarefa à sua fila. O payload pode ser qualquer dado da solicitação necessário para que o worker conclua o processamento da tarefa:node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello
Para verificar se o payload foi recebido, visualize os registros do serviço do worker.
gcloud app logs read
Ruby
Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:
Defina as seguintes variáveis de ambiente na sua máquina manualmente, no código do seu aplicativo de amostra ou por um alias. O cliente usa essas informações para criar a solicitação:
export GOOGLE_CLOUD_PROJECT=my-project-id # The project ID from above export LOCATION_ID=my-location-id # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Para encontrar o ID de local, use o seguinte comandogcloud
:gcloud tasks locations list
Crie uma tarefa com um payload de
hello
e adicione essa tarefa à sua fila. O payload pode ser qualquer dado da solicitação necessário para que o worker conclua o processamento da tarefa:ruby create_task.rb $GOOGLE_CLOUD_PROJECT_ID $LOCATION_ID $QUEUE_ID hello
Para verificar se o payload foi recebido, visualize os registros do serviço do worker.
gcloud app logs read
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.
- No console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
A seguir
- Crie e configure filas do Cloud Tasks com o guia Criar filas do Cloud Tasks.
- Saiba mais sobre o Cloud Tasks no artigo Noções básicas sobre o Cloud Tasks
- Saiba mais sobre o gerenciamento de filas usando RPC na Referência da API RPC.
- Saiba mais sobre o gerenciamento de filas usando REST na referência da API REST.