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.

  1. Crie ou selecione um projeto do Google Cloud:

    Acessar a página do App Engine

    1. Use os botões no canto superior direito para selecionar um nome de projeto ou criar um novo.
    2. 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.
  2. Adicione um aplicativo do App Engine ao seu projeto:

    1. Na página Bem-vindo ao App Engine, clique em Criar aplicativo.

    2. 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 e us-central nos comandos do App Engine, são chamados, respectivamente, europe-west1 e us-central1 nos comandos do Cloud Tasks.

    3. 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.

    4. 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.

    5. 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.

  3. Ative a API Cloud Tasks.

    Acessar a página da API Cloud Tasks

  4. 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.

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. 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.

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. 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.

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. 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.

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. 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.

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. 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.

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. 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.

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. 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:

  1. Verifique se o SDK do .NET Core, versão 2.0 ou mais recente, está instalado.

  2. Clone o repositório de aplicativos de exemplo na máquina local:

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples

  3. Navegue até o diretório que contém o exemplo de código para CreateTask:

    cd dotnet-docs-samples/cloudtasks/api/TasksSample/

  4. Instale todas as dependências:

    dotnet restore

  5. Navegue até o diretório (dotnet-docs-samples/cloudtasks/appengine/) que contém o exemplo de código para CloudTasks e instale todas as dependências:

    dotnet restore

  6. Compile o aplicativo e prepare-o para implantação:

    dotnet publish

  7. Implante o serviço do worker (CloudTasks) no ambiente flexível do App Engine:

    gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml

  8. Verifique se a página de índice é exibida:

    gcloud app browse

    Seu navegador abre https://{YOUR_PROJECT_ID}.appspot.com/ e exibe Hello, 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:

  1. Verifique se você instalou o componente gcloud do App Engine para Go:

    gcloud components install app-engine-go

  2. Clone o repositório de aplicativos de exemplo na máquina local:

    git clone https://github.com/GoogleCloudPlatform/golang-samples.git

  3. Navegue até o diretório tasks/handle_task do código de amostra do worker.

    cd golang-samples/appengine/go11x/tasks/handle_task

  4. Observe o arquivo app.yaml, que contém as informações de configuração necessárias.

  5. Implante o serviço do worker (handle_task.go) no App Engine:

    gcloud app deploy

  6. 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 exibe Hello, 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:

  1. Faça o download e instale o Kit de desenvolvimento do Java SE 11 (JDK, na sigla em inglês).
  2. Conclua as instruções de configuração do Cloud Tasks.
  3. Faça o download e instale o Maven para criar, implantar e gerenciar o app.

  4. Instale o componente app-engine-java da CLI gcloud:

    gcloud components install app-engine-java
    

Para fazer o download e instalar a amostra:

  1. 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.

  2. Navegue até o diretório de nível superior do app tasks-handler:

    cd java-docs-samples/appengine-java11/tasks-handler/

  3. 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.xmlespecificar 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:

  1. Clone o repositório de aplicativos de amostra na máquina local:

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

  2. Navegue até o diretório que contém o código de exemplo:

    cd nodejs-docs-samples/cloud-tasks/snippets

  3. Instale todas as dependências.

    Você pode usar npm:

    npm install
    Ou yarn:
    yarn install

  4. Implante o serviço do worker (server.js) no ambiente padrão do App Engine:

    gcloud app deploy app.yaml

  5. 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 exibe Hello, 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:

  1. Clone o repositório de aplicativos de amostra na máquina local:

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples

  2. 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 Engine
    • snippets: contém o código da ferramenta de linha de comando local
  3. 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.

  4. No diretório snippets, instale todas as dependências:

    composer install
    ou apenas no local:
    php composer.phar install

  5. No diretório apps/handler, instale todas as dependências:

    composer install
    ou apenas no local:
    php composer.phar install

  6. No diretório apps/handler, implante o serviço do worker no App Engine usando o comando gcloud app deploy:

    gcloud app deploy

  7. 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 exibe Hello, 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:

  1. Clone o repositório de aplicativos de amostra na máquina local:

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

  2. Navegue até o diretório que contém o código de exemplo:

    cd python-docs-samples/appengine/flexible_python37_and_earlier/tasks/

  3. Instale todas as dependências:

    pip install -r requirements.txt

  4. Implante o serviço do worker (main.py) no App Engine:

    gcloud app deploy

  5. Verifique se a página de índice é exibida:

    gcloud app browse

    Seu navegador abre https://{YOUR_PROJECT_ID}.appspot.com/ e exibe Hello, 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:

  1. Clone o repositório de aplicativos de amostra na máquina local:

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git

  2. Navegue até o diretório que contém o código de exemplo:

    cd ruby-docs-samples/appengine/cloud-tasks

  3. Instale as dependências:

    bundle install

  4. Implante o serviço do worker (app.rb) no ambiente flexível do App Engine:

    gcloud app deploy app.yaml

  5. 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 exibe Hello, 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.

  1. 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.

  2. 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.

  3. Verifique se a saída é semelhante a esta:

    name: projects/PROJECT_ID/locations/LOCATION_IDqueues/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:

  1. 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

  2. Navegue até a pasta TasksSample:

    cd ../api/TasksSample

  3. Usando test, crie uma tarefa e adicione um payload, a string "hello". O aplicativo CloudTasks implantado anteriormente tem um endpoint, log_payload, que processa o payload registrando-o.

    dotnet test

  4. 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:

  1. Se você ainda estiver no diretório tasks/handle_task, navegue até o diretório tasks/create_task.

  2. 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 comando gcloud:
    gcloud tasks locations list

  3. 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 

  4. 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:

  1. Vá para o diretório appengine-java11/tasks e compile o app:

    cd ../tasks
    mvn package

  2. 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 comando gcloud:
    gcloud tasks locations list

  3. 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.

  4. 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:

  1. 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 comando gcloud:
    gcloud tasks locations list

  2. 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 

  3. 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:

  1. Navegue até o diretório snippets.

  2. 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 comando gcloud:
    gcloud tasks locations list

  3. Use o snippet local create_task.php para criar uma tarefa e adicionar um payload de hello. 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
    

  4. 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:

  1. 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 comando gcloud:
    gcloud tasks locations list

  2. Use o create_app_engine_queue_task.py local para criar uma tarefa e adicionar um payload de hello. 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

  3. 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:

  1. 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 comando gcloud:
    gcloud tasks locations list

  2. 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

  3. 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.

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. 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: