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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- 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