Configurer le routage, les limites et les nouvelles tentatives des files d'attente

Vous pouvez configurer votre file d'attente Cloud Tasks à sa création ou à tout moment ultérieur. La configuration s'applique à toutes les tâches de cette file d'attente.

La configuration des files d'attente comporte trois aspects fondamentaux :

Configurer le routage au niveau de la file d'attente

La configuration du routage au niveau de la file d'attente remplace celle définie au niveau de la tâche. Cela peut être utile si vous souhaitez utiliser Cloud Tasks comme tampon devant votre service cible ou si vous devez modifier le routage de toutes les tâches d'une file d'attente.

Le routage au niveau de la file d'attente s'applique aux éléments suivants :

  • Tâches dans la file d'attente
  • Tâches ajoutées à la file d'attente après la configuration du routage au niveau de la file d'attente

Limites

Le routage au niveau de la file d'attente n'est pas compatible avec les clés de chiffrement gérées par le client (CMEK) de Cloud Key Management Service (Cloud KMS). Si CMEK est activé, vous ne pouvez pas effectuer les opérations suivantes :

  • Créer des tâches dans une file d'attente avec routage au niveau de la file d'attente
  • Appliquer le routage au niveau de la file d'attente

Configurer le routage au niveau de la file d'attente pour les tâches HTTP

Vous pouvez configurer une file d'attente pour remplacer le routage au niveau des tâches lors de la création ou de la mise à jour de la file d'attente. Pour configurer le routage au niveau de la file d'attente, définissez le paramètre uriOverride de la file d'attente sur l'itinéraire de votre choix.

Si vous appliquez le routage au niveau de la file d'attente pour mettre à jour une file d'attente existante, mettez-la en veille avant d'appliquer les modifications, puis attendez une minute après avoir appliqué les modifications avant de la réactiver.

  1. Mettez en veille la file d'attente en exécutant la commande suivante :

      gcloud tasks queues pause QUEUE_ID
      

    Remplacez QUEUE_ID par l'ID de votre file d'attente.

  2. Mettez à jour ou supprimez le routage au niveau de la file d'attente.

    • Pour mettre à jour le routage au niveau de la file d'attente, définissez le paramètre uriOverride sur votre nouvel itinéraire.

    • Pour supprimer le routage au niveau de la file d'attente à l'aide de l'API REST ou RPC :

      • API REST : envoyez une requête patch pour la file d'attente avec une charge utile vide et le paramètre updateMask défini sur httpTarget.

      • API RPC : envoyez un updateQueueRequest pour la file d'attente avec une charge utile vide et le paramètre update_mask défini sur http_target.

    L'exemple suivant utilise l'API REST pour mettre à jour l'hôte vers lequel les tâches sont routées :

    curl -X PATCH -d @- -i \
      -H "Authorization: Bearer ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      "https://cloudtasks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID?updateMask=httpTarget.uriOverride" << EOF
    {
      "httpTarget": {"uriOverride":{"host":"NEW_HOST"}}
    }
    EOF
    

    Remplacez les éléments suivants :

    • ACCESS_TOKEN : votre jeton d'accès. Pour l'obtenir, exécutez la commande suivante dans votre terminal :

      gcloud auth application-default login
      gcloud auth application-default print-access-token
    • PROJECT_ID : ID de votre projet Google Cloud . Pour l'obtenir, exécutez la commande suivante dans votre terminal :

      gcloud config get-value project

    • LOCATION : emplacement de votre file d'attente.

    • NEW_HOST : nouvel hôte vers lequel vous souhaitez que votre file d'attente soit routée.

  3. Patientez une minute.

    L'application de la nouvelle configuration peut prendre jusqu'à une minute. L'attente de la reprise de la file d'attente permet d'éviter que les tâches ne soient distribuées avec l'ancienne configuration.

  4. Reprenez la file d'attente en exécutant la commande suivante :

    gcloud tasks queues resume QUEUE_ID

Configurer le routage au niveau de la file d'attente pour les tâches App Engine

Pour configurer le routage au niveau de la file d'attente pour les tâches App Engine, définissez le paramètre appEngineRoutingOverride de la file d'attente sur le service et la version App Engine de votre choix.

  1. Configurez le routage au niveau de la file d'attente et remplacez tout routage au niveau de la tâche :

    gcloud tasks queues update QUEUE_ID \
        --routing-override=service:SERVICE,version:VERSION

    Remplacez les éléments suivants :

    • QUEUE_ID : ID de la file d'attente (son nom court).
    • SERVICE : service de nœud de calcul App Engine responsable de la gestion des tâches.
    • VERSION : version de l'application.

    Par exemple, si vous configurez un service de nœuds de calcul pour gérer toutes les tâches d'une file d'attente, vous pouvez diriger le routage vers ce service et la version par défaut :