Aggiungi un'attività target HTTP a una coda di attività Cloud Tasks

Cloud Tasks ti consente di inviare attività asincrone a destinazioni HTTP controllando le velocità di esecuzione e il comportamento di nuovi tentativi. In questa guida rapida, utilizzi l'API Cloud Tasks per creare una coda e aggiungere un'attività target HTTP a questa coda.

Prima di iniziare

  1. Installa Google Cloud CLI.

  2. Configura gcloud CLI per utilizzare la tua identità federata.

    Per saperne di più, consulta Accedi a gcloud CLI con la tua identità federata.

  3. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  4. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Crea un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  5. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  6. Abilita l'API Cloud Tasks, se non è già abilitata:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable cloudtasks.googleapis.com
  7. Crea credenziali di autenticazione locali per il tuo account utente:

    gcloud auth application-default login

    Se viene restituito un errore di autenticazione, verifica di aver eseguito l'accesso a gcloud CLI con la tua identità federata.

  8. Concedi i ruoli al tuo account utente. Esegui il seguente comando una volta per ciascuno dei seguenti ruoli IAM: roles/cloudtasks.admin, roles/logging.viewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Sostituisci quanto segue:

Crea una coda di attività Cloud Tasks

Utilizza il comando gcloud tasks queues create per creare la coda.

  1. Nel terminale, crea una coda che registra tutte le operazioni.

    gcloud tasks queues create QUEUE_NAME \
        --log-sampling-ratio=1.0 \
        --location=REGION
    

    Sostituisci quanto segue:

    • QUEUE_NAME: un nome per la coda Cloud Tasks
    • REGION: la regione supportata in cui hai eseguito il deployment del servizio o dell'app
  2. Attendi l'inizializzazione della coda e poi verifica che sia stata creata correttamente.

    gcloud tasks queues describe QUEUE_NAME \
        --location=REGION
    

    L'output dovrebbe essere simile al seguente:

     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
    

Aggiungi un'attività alla coda Cloud Tasks

Utilizza il comando gcloud tasks create-http-task per creare un'attività che ha come target un endpoint HTTP e aggiungerla alla coda.

  1. Crea un'attività, aggiungila alla coda che hai creato e inviala a un endpoint HTTP.

    gcloud tasks create-http-task \
        --queue=QUEUE_NAME \
        --url=URL_PATH \
        --method=GET \
        --location=REGION \
        --project=PROJECT_ID
    

    Sostituisci URL_PATH con il percorso dell'URL completo a cui verrà inviata la richiesta. Il percorso deve iniziare con http:// o https://, ad esempio: https://www.example.com.

  2. Verifica che l'attività sia stata eseguita correttamente leggendo i log.

    gcloud logging read 'resource.type="cloud_tasks_queue" resource.labels.queue_id="QUEUE_NAME" severity>=DEFAULT' --limit=3
    

    I log dovrebbero essere simili ai seguenti:

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

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.

Elimina un progetto Google Cloud :

gcloud projects delete PROJECT_ID

In alternativa, puoi eliminare la coda di attività di Cloud Tasks:

gcloud tasks queues delete QUEUE_NAME \
    --location=REGION

Passaggi successivi