Adicionar uma tarefa a uma fila do Cloud Tasks
Neste guia de início rápido, você poderá testar operações básicas usando as filas do Cloud Tasks por meio da API Cloud Tasks.
As amostras neste guia de início rápido são direcionadas aos gerenciadores do App Engine. Portanto, é necessário implantar um aplicativo do App Engine. Se você não estiver usando o App Engine como destino, não precisará implantar um aplicativo do App Engine e poderá desativar qualquer aplicativo existente.
Por exemplo, se você estiver usando exclusivamente um gerenciador de HTTP Target, não será necessário ter um aplicativo do App Engine. No caso de destinos HTTP genéricos, o serviço Cloud Tasks encaminha a solicitação de tarefa para o 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 seu ambiente do Cloud para este guia de início rápido, crie um projeto do Google Cloud e adicione um aplicativo do App Engine com 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 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 para as 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ê vai cuidar disso mais tarde. Se esse for um novo projeto, 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 desse tipo, clique em Criar conta de faturamento e siga as instruções do 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.
Configure a autenticação na API.
Selecione a guia para como planeja usar as amostras nesta página:
C#
Para usar as amostras de .NET nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Go
Para usar as amostras de Go nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Java
Para usar as amostras de Java nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Node.js
Para usar as amostras de Node.js nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
PHP
Para usar as amostras de PHP nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Python
Para usar as amostras de Python nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Ruby
Para usar as amostras de Ruby nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Configure a amostra
Estas amostras fornecem um framework para tentar adicionar tarefas às filas do Cloud Tasks por meio da 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.
Clone o repositório de aplicativos de exemplo na máquina local:
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
Navegue até o diretório que contém o exemplo de código para
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 exemplo de código 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!
.
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
gcloud
do App Engine para Go:gcloud components install app-engine-go
Clone o repositório de aplicativos de exemplo na máquina local:
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Navegue até 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!
.
Java
Este exemplo de Java 11 usa dois aplicativos:
- O aplicativo
tasks
é executado localmente como uma ferramenta de linha de comando para criar e adicionar tarefas à fila. - O aplicativo Spring Boot
tasks-handler
processa solicitações do Cloud Tasks como um worker, servindo como um endpoint para receber solicitações de tarefas. Este é o aplicativo principal do Google App Engine que você implanta.
Para implantar o aplicativo de amostra:
- Faça o download e instale o Kit de desenvolvimento do Java SE 11 (JDK, na sigla em inglês).
- Conclua as instruções de configuração do Cloud Tasks.
Faça o download e instale o Maven para criar, implantar e gerenciar o app.
Instale o componente
app-engine-java
da CLI gcloud:gcloud components install app-engine-java
Para fazer o download e instalar a amostra:
Clone o repositório de aplicativos de exemplo na máquina local:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Outra opção é fazer o download da amostra como um arquivo ZIP e extraí-lo.Navegue até o diretório de nível superior do app
tasks-handler
:cd java-docs-samples/appengine-java11/tasks-handler/
Implante o aplicativo
tasks-handler
no App Engine:mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud. Se o arquivo
pom.xml
já especificar o ID do projeto, não será necessário incluir a propriedade-Dapp.deploy.projectId
no comando executado.
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/GoogleCloudPlatform/nodejs-docs-samples.git
Navegue até o diretório que contém o código de exemplo:
cd nodejs-docs-samples/cloud-tasks/snippets
Instale todas as dependências.
Você pode usar npm:
npm install
Ou yarn:yarn install
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!
.
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
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!
.
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_python37_and_earlier/tasks/
Instale todas as dependências:
pip install -r requirements.txt
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!
.
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
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 --location=LOCATION
Substitua
LOCATION
pelo local de sua preferência para a fila, por exemplo,us-west2
. Se você não especificar o local, a CLI gcloud escolherá o padrão.Aguarde um pouco até que a fila seja inicializada e, em seguida, use
describe
para verificar se ela foi criada com sucesso:gcloud tasks queues describe my-queue --location=LOCATION
Substitua
LOCATION
pelo local da fila.Verifique se a saída é semelhante a esta:
name: projects/
PROJECT_ID
/locations/LOCATION_ID
queues/QUEUE_NAME
# 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 variáveis de ambiente a seguir na sua máquina, manualmente, no código no seu aplicativo de amostra ou por meio de 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 do aplicativo 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
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 variáveis de ambiente a seguir na sua máquina manualmente, no código do aplicativo de amostra ou por meio de 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
Observação: para encontrar o ID do 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
Java
Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:
Vá para o diretório
appengine-java11/tasks
e compile o app:cd ../tasks mvn package
Defina as variáveis de ambiente a seguir em sua máquina. O app de amostra os usa para criar a solicitação que adiciona tarefas à 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
Observação: para encontrar o ID do local, use o seguinte comandogcloud
:gcloud tasks locations list
Crie uma tarefa com um payload especificado para o endpoint
/tasks/create
no controlador do gerenciador de tarefas implantado. O payload pode ser qualquer dado da solicitação necessário para que o worker conclua o processamento da tarefa. Neste exemplo, ele está codificado na amostra e não precisa ser especificado:mvn exec:java -Dexec.mainClass="com.example.task.CreateTask"
Depois que a tarefa é transmitida para o worker e ele a processa, o worker retorna um código de status de sucesso 2xx para o serviço Cloud Tasks e exclui a tarefa da fila automaticamente.Verifique se a tarefa foi recebida exibindo os registros do serviço de 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 variáveis de ambiente a seguir na sua máquina manualmente, no código do aplicativo de amostra ou por meio de 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
Observação: para encontrar o ID do 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
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 variáveis de ambiente a seguir na sua máquina manualmente, no código do aplicativo de amostra ou por meio de 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
Observação: para encontrar o ID do 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
Python
Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:
Defina as variáveis de ambiente a seguir na sua máquina manualmente, no código do aplicativo de amostra ou por meio de 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
Observação: para encontrar o ID do 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
Ruby
Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:
Defina as variáveis de ambiente a seguir na sua máquina manualmente, no código do aplicativo de amostra ou por meio de 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
Observação: para encontrar o ID do 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 do Google Cloud, 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
Agora que você concluiu a adição de uma tarefa a uma fila do Cloud Tasks, continue explorando o Cloud Tasks consultando as seguintes páginas:
- Gerencie tarefas e filas atuais, incluindo a exclusão delas com Como gerenciar filas e tarefas.
- Crie e configure filas do Cloud Tasks com o guia Como criar filas do Cloud Tasks.
- Saiba mais sobre o gerenciamento de filas usando gRPC na referência da API gRPC.
- Saiba mais sobre o gerenciamento de filas usando REST na referência da API REST.
- Saiba mais sobre as filas do Cloud Tasks com a Visão geral do Cloud Tasks