Adicione uma tarefa do App Engine a uma fila do Cloud Tasks
Este início rápido mostra como adicionar uma tarefa do App Engine a uma fila do Cloud Tasks através da 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.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
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.
-
-
Verify 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, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
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.
-
-
Verify 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, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
- A
conta de serviço predefinida do App Engine
é criada automaticamente quando usa o App Engine. Pode usar esta conta de serviço quando experimentar este início rápido. No entanto, consoante a configuração da política da organização, a conta de serviço predefinida pode não receber automaticamente a função
Editor
no seu projeto. Se for esse o caso, tem de conceder à conta de serviço as seguintes funções:- Administrador do Artifact Registry (
roles/artifactregistry.admin
) - Escritor de criação no envio do Artifact Registry (
roles/artifactregistry.createOnPushWriter
) - Administrador do Compute (
roles/compute.admin
) - Logs Writer (
roles/logging.logWriter
) - Visualizador de objetos de armazenamento (
roles/storage.objectViewer
)
- Administrador do Artifact Registry (
Na Google Cloud consola, aceda à página App Engine.
Na caixa de diálogo Bem-vindo ao App Engine, faça uma das seguintes ações:
Se já tiver criado uma aplicação do App Engine e for apresentada a mensagem A sua aplicação do App Engine foi criada, pode ignorar os passos restantes nesta secção e continuar com os passos na secção Instale e implemente o exemplo.
ou
Se ainda não criou uma aplicação do App Engine, clique em Criar aplicação e continue com os restantes passos nesta secção.
Selecione uma região para a sua aplicação e tome nota da mesma.
Tenha em atenção que
europe-west
eus-central
são denominados, respetivamente,europe-west1
eus-central1
nos comandos do Cloud Tasks.Não selecione uma conta de serviço. É usada a conta de serviço do App Engine predefinida.
Clicar em Seguinte.
A aplicação é configurada e criada. Esta operação pode demorar alguns minutos.
Não transfira o Cloud SDK. Em vez disso, clique em Farei isso mais tarde.
Deve ver a mensagem A sua aplicação do App Engine foi criada.
No terminal, clone o repositório da aplicação de exemplo para a sua máquina local.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Navegue para o diretório que contém o exemplo de código.
cd nodejs-docs-samples/cloud-tasks/snippets
Instale todas as dependências através de um gestor de pacotes do Node.js.
Pode usar o NPM:
npm install
Em alternativa, pode usar o Yarn:
yarn install
Implemente o serviço de trabalho (
server.js
) no ambiente padrão do App Engine.gcloud app deploy app.yaml
Certifique-se de que a app que contém o serviço está em execução.
gcloud app browse
No navegador, aceda ao link fornecido. Por exemplo:
https://PROJECT_ID.uc.r.appspot.com/
Deverá ver
Hello, World!
apresentado.No terminal, crie uma fila que registe todas as operações.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGION
Substitua o seguinte:
QUEUE_NAME
: um nome para a fila do Cloud TasksREGION
: a região na qual implementou a sua app
Aguarde a inicialização da fila e, em seguida, verifique se foi criada com êxito.
gcloud tasks queues describe QUEUE_NAME \ --location=REGION
O resultado deve ser semelhante ao seguinte:
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
Defina as seguintes variáveis de ambiente. O cliente usa estas informações para criar o pedido.
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. A carga útil pode ser qualquer dado do pedido que o serviço de processamento precisa para processar a tarefa.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello
Verifique se a tarefa foi executada apresentando os registos do serviço de trabalho.
gcloud app logs read
Os registos devem ser semelhantes aos seguintes:
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
Elimine a fila de tarefas do Cloud:
gcloud tasks queues delete QUEUE_NAME \ --location=REGION
Adicione uma aplicação do App Engine
Quando segmenta uma tarefa do App Engine e, antes de poder implementar uma app no ambiente padrão do App Engine, tem de adicionar uma aplicação do App Engine ao seu projeto.
Instale e implemente o exemplo
O exemplo do Node.js usado neste início rápido consiste em dois ficheiros:
createTask.js
é executado localmente como uma ferramenta de linha de comandos para criar e adicionar tarefas à fila de tarefas; server.js
é implementado no App Engine como um serviço de trabalho para processar a tarefa.
Crie uma fila do Cloud Tasks
Use o comando gcloud tasks queues create
para criar a fila no ambiente que preparou.
Adicione uma tarefa à fila do Cloud Tasks
Crie uma tarefa, adicione-a à fila que criou e entregue essa tarefa ao serviço de trabalhadores.
Limpar
Para evitar incorrer em custos na sua Google Cloud conta pelos recursos usados nesta página, elimine o Google Cloud projeto com os recursos.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Em alternativa, pode eliminar os recursos que criou: