Adicionar uma tarefa de destino HTTP a uma fila do Cloud Tasks
O Cloud Tasks permite despachar tarefas assíncronas para destinos HTTP, controlando as taxas de execução e o comportamento de novas tentativas. Neste guia de início rápido, você vai usar a API Cloud Tasks para criar uma fila e adicionar uma tarefa de destino HTTP a ela.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto que você está criando. -
Selecione o Google Cloud projeto que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative a API Cloud Tasks:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter a permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo papel de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable cloudtasks.googleapis.com
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
-
Conceda papéis à sua conta de usuário. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM:
roles/cloudtasks.admin, roles/logging.viewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Substitua:
PROJECT_ID: o ID do projeto.USER_IDENTIFIER: o identificador da sua conta de usuário. Por exemplo,myemail@example.com.ROLE: o papel do IAM que você concede à sua conta de usuário.
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto que você está criando. -
Selecione o Google Cloud projeto que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative a API Cloud Tasks:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter a permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo papel de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable cloudtasks.googleapis.com
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
-
Conceda papéis à sua conta de usuário. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM:
roles/cloudtasks.admin, roles/logging.viewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Substitua:
PROJECT_ID: o ID do projeto.USER_IDENTIFIER: o identificador da sua conta de usuário. Por exemplo,myemail@example.com.ROLE: o papel do IAM que você concede à sua conta de usuário.
Criar uma fila do Cloud Tasks
Use o gcloud tasks queues create
comando para criar sua fila.
No terminal, crie uma fila que registre todas as operações.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGIONSubstitua:
QUEUE_NAME: um nome para sua fila do Cloud TasksREGION: a região com suporte em que você implantou seu serviço ou app
Aguarde a inicialização da fila e verifique se ela foi criada com sucesso.
gcloud tasks queues describe QUEUE_NAME \ --location=REGIONA 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
Use the
gcloud tasks create-http-task
comando para criar uma tarefa que tenha como destino um endpoint HTTP e adicione a tarefa à sua
fila.
Crie uma tarefa, adicione-a à fila criada e entregue-a a um endpoint HTTP.
gcloud tasks create-http-task \ --queue=QUEUE_NAME \ --url=URL_PATH \ --method=GET \ --location=REGION \ --project=PROJECT_IDSubstitua
URL_PATHpelo caminho completo do URL para o qual a solicitação será enviada. O caminho precisa começar comhttp://ouhttps://, por exemplo:https://www.example.com.Verifique se a tarefa foi executada com sucesso lendo os registros.
gcloud logging read 'resource.type="cloud_tasks_queue" resource.labels.queue_id="QUEUE_NAME" severity>=DEFAULT' --limit=3Os registros precisam ser semelhantes a este:
jsonPayload: '@type': type.googleapis.com/google.cloud.tasks.logging.v1.TaskActivityLog task: projects/PROJECT_ID/locations/REGION/queues/QUEUE_NAME/tasks/TASK_ID taskCreationLog: scheduleTime: '2024-07-04T19:00:27.801837Z' status: OK targetAddress: GET https://www.example.com/ targetType: HTTP ...
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, exclua o Google Cloud projeto do e os recursos.
Exclua um Google Cloud projeto:
gcloud projects delete PROJECT_ID
Como alternativa, você pode excluir a fila do Cloud Tasks:
gcloud tasks queues delete QUEUE_NAME \
--location=REGION