Adicionar uma tarefa do App Engine a uma fila do Cloud Tasks
Neste guia de início rápido, mostramos como adicionar uma tarefa do App Engine a uma fila da Cloud Tasks usando a API Cloud Tasks.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Cloud Tasks API:
gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Cloud Tasks API:
gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- A
conta de serviço padrão do App Engine
é criada automaticamente quando você usa o App Engine. Você pode usar essa
conta de serviço ao testar este guia de início rápido. No entanto, dependendo da
configuração da política da organização, a conta de serviço padrão pode não
receber automaticamente o papel
Editor
no projeto. Nesse caso, é necessário conceder à conta de serviço os seguintes papéis:- Administrador do Artifact Registry (
roles/artifactregistry.admin
) - Gravador Create-on-Push do Artifact Registry (
roles/artifactregistry.createOnPushWriter
) - Administrador do Compute (
roles/compute.admin
) - Gravador de registros (
roles/logging.logWriter
) - Leitor de objetos do Storage (
roles/storage.objectViewer
)
- Administrador do Artifact Registry (
Adicionar um aplicativo do App Engine
Ao segmentar uma tarefa do App Engine e antes de implantar um app no ambiente padrão do App Engine, adicione um aplicativo do App Engine ao seu projeto.
No console do Google Cloud, acesse a página do App Engine.
Na caixa de diálogo Welcome to App Engine, faça o seguinte:
Se você já criou um aplicativo do App Engine e a mensagem O aplicativo do App Engine foi criado aparecer, pule as etapas restantes desta seção e siga as etapas da seção Instalar e implantar o exemplo.
ou
Se você ainda não criou um aplicativo do App Engine, clique em Criar aplicativo e continue com as etapas restantes desta seção.
Selecione uma região para o aplicativo e anote.
europe-west
eus-central
são chamados, respectivamente,europe-west1
eus-central1
nos comandos do Cloud Tasks.Não selecione uma conta de serviço. A conta de serviço padrão do App Engine será usada.
Clique em Próxima.
O aplicativo é configurado e criado. Isso pode levar alguns minutos.
Não faça o download do SDK Cloud. Em vez disso, clique em Farei isso mais tarde.
Você vai receber a mensagem Seu aplicativo do App Engine foi criado.
Instalar e implantar o exemplo
O exemplo do Node.js usado neste início rápido consiste em dois arquivos:
createTask.js
é executado localmente como uma ferramenta de linha de comando para criar e adicionar tarefas à
fila de tarefas. server.js
é implantado no App Engine como
um serviço worker para processar a tarefa.
No terminal, clone o repositório de aplicativos de exemplo 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 usando um gerenciador de pacotes do Node.js.
Você pode usar o NPM:
npm install
Ou use o 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 app que contém o serviço está em execução.
gcloud app browse
No navegador, acesse o link fornecido. Exemplo:
https://PROJECT_ID.uc.r.appspot.com/
O
Hello, World!
vai aparecer.
Criar uma fila do Cloud Tasks
Use o comando gcloud tasks queues create
para criar a fila no ambiente que você preparou.
No terminal, crie uma fila que registre todas as operações.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGION
Substitua:
QUEUE_NAME
: um nome para a fila de tarefas do Cloud TasksREGION
: a região em que você implantou o app
Aguarde a inicialização da fila e verifique se ela foi criada com sucesso.
gcloud tasks queues describe QUEUE_NAME \ --location=REGION
A saída será semelhante a esta:
name: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_NAME 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
Crie uma tarefa, adicione-a à fila criada e entregue-a ao serviço de worker.
Defina as seguintes variáveis de ambiente. O cliente usa essas informações para criar a solicitação.
export PROJECT_ID=PROJECT_ID export LOCATION_ID=REGION export QUEUE_ID=QUEUE_NAME
Crie uma tarefa com um payload de
hello
e adicione essa tarefa à sua fila. O payload pode ser qualquer dado da solicitação que o serviço de worker precise para processar a tarefa.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello
Verifique se a tarefa foi executada exibindo os registros do serviço do worker.
gcloud app logs read
Os registros devem ser semelhantes a este:
2024-06-20 15:00:00 default[20240620t143852] "POST /log_payload HTTP/1.1" 200 2024-06-20 15:00:00 default[20240620t143852] App listening on port 8081 2024-06-20 15:00:00 default[20240620t143852] Press Ctrl+C to quit. 2024-06-20 15:00:00 default[20240620t143852] Received task with payload: hello
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Você também pode excluir os recursos que criou:
Exclua a fila do Cloud Tasks:
gcloud tasks queues delete QUEUE_NAME \ --location=REGION