Guia de início rápido para filas do Cloud Tasks

As instruções a seguir permitem que você teste operações básicas usando as filas do Cloud Tasks via API Cloud Tasks:

  1. Antes de começar (configure seu ambiente)
  2. Configurar o código de amostra
  3. Crie uma fila
  4. Crie uma tarefa e a adicione à sua fila
  5. Limpar recursos

Antes de começar

Para configurar seu ambiente do Cloud, crie um projeto do GCP e adicione um aplicativo do App Engine com o faturamento ativado. É necessário ter um aplicativo do App Engine no projeto para executar a fila. Para mais informações sobre projetos do GCP, aplicativos do App Engine e faturamento em geral, consulte este link.

  1. Crie ou selecione um projeto do GCP:
    Acessar a página do App Engine
    1. Use os botões no canto superior direito para selecionar um nome de projeto existente 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 das 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ê cuidará disso mais tarde. Se esse for um novo projeto, o back-end será construído.
    4. 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.
    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 "API Cloud Tasks"
  4. Configure a autenticação na API.
    1. 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. Uma conta de serviço permite que você faça a autenticação com o Google Cloud de maneira programática.
    2. As amostras usam as bibliotecas de cliente do Google Cloud para interagir com o App Engine. Por isso, é necessário definir uma variável de ambiente para apontar para a chave da qual você fez o download acima, que será usada pela biblioteca para autenticar as solicitações. É possível criar as solicitações sem usar as bibliotecas de cliente, mas elas podem ajudar a gerenciar detalhes de comunicação de baixo nível com o servidor, incluindo a autenticação.
  5. Instale e configure o SDK do Cloud. Isso dá acesso à ferramenta gcloud.

Configure a amostra

Estas amostras fornecem uma estrutura 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. A fila em si é executada no App Engine.

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. Verifique se a ferramenta gcloud foi inicializada e configurada para usar o projeto do GCP criado acima.

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

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

  4. Navegue até o diretório que contém a amostra codificada de CreateTask:

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

  5. Instale todas as dependências:

    dotnet restore

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

    dotnet restore

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

    dotnet publish

  8. Implante o serviço do worker (CloudTasks) no App Engine flex:

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

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

    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. A fila em si é executada no App Engine.

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/tasks/

  3. Instale todas as dependências:

    pip install -r requirements.txt

  4. Verifique se você inicializou a ferramenta gcloud e a configurou para usar o projeto criado acima.

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

    gcloud app deploy

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

    gcloud app browse

    Seu navegador abre https://{YOUR_PROJECT_ID}.appspot.com/ e exibe Hello, 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. A fila em si é executada no App Engine. Para executar a amostra usando o Java 11, consulte código de execução do 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 o SDK do Cloud
  • 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 de plug-in do Maven.

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/java-docs-samples.git

  2. Navegue até o diretório de nível superior da amostra do Tasks:

    cd java-docs-samples/appengine-java8/tasks/quickstart/

  3. Verifique se você inicializou a ferramenta gcloud e a configurou para usar o projeto criado acima.

  4. Crie e execute a ferramenta de linha de comando local (CreateTask.java):

    mvn appengine:run

  5. 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. A fila em si é executada no App Engine.

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. Verifique se a ferramenta gcloud foi inicializada e configurada para usar o projeto do GCP criado acima.

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

    gcloud app deploy

  8. 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!.

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. A fila em si é executada no App Engine.

Para fazer o download e instalar a amostra:

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

    gcloud components install app-engine-go

  2. Verifique se você inicializou a ferramenta gcloud e a configurou para usar o projeto criado acima.

  3. Clone o repositório de aplicativos de amostra em sua máquina local:

    go get github.com/GoogleCloudPlatform/golang-samples/appengine/go11x/tasks/...

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

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

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

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

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

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. A fila em si é executada no App Engine.

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/googleapis/nodejs-tasks.git

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

    cd nodejs-tasks/samples

  3. Instale todas as dependências.

    Você pode usar npm:

    npm install
    Ou yarn:
    yarn install

  4. Verifique se você inicializou a ferramenta gcloud e a configurou para usar o projeto criado acima.

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

    gcloud app deploy app.yaml

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

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. A fila em si é executada no App Engine.

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. Verifique se você inicializou a ferramenta gcloud e a configurou para usar o projeto criado acima.

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

    gcloud app deploy app.yaml

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

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 do SDK do Cloud para criar a fila no ambiente que você preparou acima.

  1. Na linha de comando, digite o seguinte:

    gcloud tasks queues create my-queue

  2. Espere um pouco pela inicialização da fila e, em seguida, use describe para confirmar se ela foi criada com sucesso:

    gcloud tasks queues describe my-queue

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

  1. Defina as seguintes variáveis de ambiente 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 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 código do local, 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

Python

Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:

  1. Defina as seguintes variáveis de ambiente no seu computador 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: o código do local pode ser encontrado usando 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

Java

Depois de criar a tarefa localmente, ela deve ser adicionada à fila configurada e entregue a um worker assíncrono:

  1. Defina as seguintes variáveis de ambiente no seu computador 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 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: o código do local pode ser encontrado usando o seguinte comando gcloud:
    gcloud tasks locations list

  2. Crie uma tarefa, segmentada no endpoint /task/create no servlet que você implantou, com um payload de hello. 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"
    

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

  1. Navegue até o diretório snippets.

  2. Defina as seguintes variáveis de ambiente no seu computador 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: o código do local pode ser encontrado usando 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

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 seguintes variáveis de ambiente no seu computador 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: o código do local pode ser encontrado usando 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

Node.js

Crie uma tarefa localmente, adicione-a à fila configurada e entregue-a a um worker assíncrono:

  1. Defina as seguintes variáveis de ambiente no seu computador 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: o código do local pode ser encontrado usando 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

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 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: o código do local pode ser encontrado usando 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 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