Gérer les paramètres des jobs avec Dataflow Config Store

Utilisez Dataflow Config Store pour configurer et gérer les paramètres des jobs dans les ressources Resource Manager, y compris les Google Cloud organisations, les dossiers et les projets.

Avec Dataflow Config Store, vous pouvez définir des règles de configuration à grande échelle sans modifier le code de pipeline, les modèles de job ou les scripts de déploiement individuels. Par exemple, vous pouvez définir un type de machine de lanceur par défaut pour l'ensemble d'une organisation ou d'un dossier afin de limiter les pénuries de types de machines Compute Engine, de faciliter les migrations de machines ou de standardiser le dimensionnement des ressources.

Paramètres compatibles et limites

Le magasin de configuration Dataflow accepte les paramètres suivants :

  • default_launcher_machine_type : spécifie le type de machine Compute Engine par défaut (tel que e2-standard-2 ou n2-standard-2) utilisé par la VM du lanceur de modèles pour les jobs de modèle Flex.

Dataflow Config Store présente les limites suivantes :

  • Le paramètre default_launcher_machine_type ne s'applique qu'à la VM du lanceur de modèle pour les jobs de modèle Flex. Cela n'affecte pas les VM de nœud de calcul ni les jobs de modèle classique. Pour configurer les types de machines des VM de nœud de calcul, consultez Configurer les VM de nœud de calcul Dataflow.
  • Lorsque vous ciblez un projet, vous devez spécifier le numéro de projet numérique. Les ID de projet ne sont pas acceptés.
  • Les paramètres du magasin de configuration sont régionaux et ne s'appliquent qu'aux jobs exécutés dans la même région Dataflow.

Définir la priorité de résolution

Lorsqu'un job Dataflow démarre, les paramètres sont résolus à l'aide d'un modèle de priorité hiérarchique dans lequel la configuration la plus spécifique est prioritaire :

  1. Configuration au niveau du job : paramètres explicitement transmis lors de l'envoi du job (par exemple, via des options de pipeline ou des paramètres d'exécution).
  2. Paramètre au niveau du projet : paramètre Config Store configuré directement sur le projet où la tâche est exécutée.
  3. Paramètre au niveau du dossier ou de l'organisation : paramètre Config Store configuré sur les ressources ancêtres dans la hiérarchie Resource Manager. Le dossier ancêtre le plus proche du projet prévaut sur les dossiers de niveau supérieur et l'organisation.
  4. Valeur par défaut à l'échelle du service Dataflow : valeurs par défaut du service intégré utilisées lorsqu'aucun remplacement n'est défini au niveau du job ou de la hiérarchie Resource Manager.

Avant de commencer

Avant de gérer ou d'inspecter les paramètres du Config Store, assurez-vous de disposer des autorisations IAM (Identity and Access Management) requises sur le projet, le dossier ou l'organisation cible.

Autorisations requises

Opération Autorisation requise
Créer ou mettre à jour un paramètre dataflow.configStoreSettings.create
Afficher un paramètre explicitement configuré dataflow.configStoreSettings.get
Répertorier les paramètres d'une ressource dataflow.configStoreSettings.list
Résoudre le paramètre effectif dataflow.configStoreSettings.resolve
Supprimer un remplacement de paramètre dataflow.configStoreSettings.delete

Rôles prédéfinis

Vous pouvez attribuer les rôles prédéfinis suivants au projet, au dossier ou à l'organisation cible, ou créer des rôles personnalisés avec les autorisations requises :

  • Administrateur Dataflow (roles/dataflow.admin) : inclut les autorisations permettant de créer, d'obtenir, de lister, de résoudre et de supprimer les paramètres du Config Store (dataflow.configStoreSettings.*).
  • Développeur Dataflow (roles/dataflow.developer) : inclut des autorisations en lecture seule pour obtenir, lister et résoudre les paramètres du Config Store.
  • Lecteur Dataflow (roles/dataflow.viewer) : inclut des autorisations en lecture seule pour obtenir, lister et résoudre les paramètres du Config Store.

Pour en savoir plus, consultez la page Contrôle des accès avec IAM.

Gérer les paramètres à l'aide de la gcloud CLI

Vous pouvez gérer les paramètres du Config Store à l'aide de la gcloud CLI.

Spécifier le champ d'application de la ressource cible

Lorsque vous utilisez des commandes gcloud dataflow config-store-settings, spécifiez le champ d'application de la ressource cible à l'aide de l'un des flags mutuellement exclusifs suivants. Ne les combinez pas dans la même commande.

  • Project : --project=PROJECT_NUMBER (utilisez le numéro de projet numérique Google Cloud , et non l'ID du projet)
  • Dossier : --folder=FOLDER_ID (ID numérique de votre dossier)
  • Organisation : --organization=ORGANIZATION_ID (ID numérique de votre organisation)

Créer ou mettre à jour un paramètre de magasin de configuration

Pour créer un paramètre sur un projet, un dossier ou une organisation, exécutez la commande gcloud dataflow config-store-settings create. Si le paramètre existe déjà sur la ressource cible, l'exécution de la commande create avec un --value différent remplace la valeur du paramètre existant :

gcloud dataflow config-store-settings create SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --value="SETTING_VALUE"

Remplacez les éléments suivants :

  • SETTING_ID : ID du paramètre compatible à configurer, par exemple default_launcher_machine_type.
  • PROJECT_NUMBER : numéro de votre projet Google Cloud. Pour cibler un dossier ou une organisation au lieu d'un projet, remplacez --project=PROJECT_NUMBER par --folder=FOLDER_ID ou --organization=ORGANIZATION_ID.
  • REGION : région Dataflow où le paramètre s'applique, par exemple us-central1.
  • SETTING_VALUE : valeur du paramètre, par exemple e2-standard-2 pour default_launcher_machine_type.

Récupérer un paramètre du magasin de configuration

Pour récupérer un paramètre configuré directement sur une ressource, exécutez la commande gcloud dataflow config-store-settings describe :

gcloud dataflow config-store-settings describe SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

Remplacez les éléments suivants :

  • SETTING_ID : ID du paramètre compatible à récupérer, par exemple default_launcher_machine_type.
  • PROJECT_NUMBER : numéro de votre projet Google Cloud. Pour cibler un dossier ou une organisation au lieu d'un projet, remplacez --project=PROJECT_NUMBER par --folder=FOLDER_ID ou --organization=ORGANIZATION_ID.
  • REGION : région Dataflow du paramètre, par exemple us-central1.

Lister les paramètres du magasin de configuration

Pour lister tous les paramètres du Config Store configurés directement sur une ressource, exécutez la commande gcloud dataflow config-store-settings list :

gcloud dataflow config-store-settings list \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --page-size=10

Remplacez les éléments suivants :

  • PROJECT_NUMBER : numéro de votre projet Google Cloud. Pour cibler un dossier ou une organisation au lieu d'un projet, remplacez --project=PROJECT_NUMBER par --folder=FOLDER_ID ou --organization=ORGANIZATION_ID.
  • REGION : région Dataflow à partir de laquelle lister les paramètres, par exemple us-central1.

Résoudre le paramètre effectif

Pour évaluer la valeur de paramètre qui s'applique aux jobs démarrés dans une hiérarchie de ressources, exécutez la commande gcloud dataflow config-store-settings resolve. Cette commande sert de simulation pour confirmer la valeur de paramètre utilisée par un job :

gcloud dataflow config-store-settings resolve SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

Remplacez les éléments suivants :

  • SETTING_ID : ID du paramètre compatible à résoudre, par exemple default_launcher_machine_type.
  • PROJECT_NUMBER : numéro de votre projet Google Cloud. Pour cibler un dossier ou une organisation au lieu d'un projet, remplacez --project=PROJECT_NUMBER par --folder=FOLDER_ID ou --organization=ORGANIZATION_ID.
  • REGION : région Dataflow dans laquelle le job s'exécute, par exemple us-central1.

Le résultat renvoie la valeur setting effective, ainsi que toutes les valeurs choices candidates de la hiérarchie :

setting:
  name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
choices:
- name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
- name: organizations/987654321098/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: n1-standard-1

Dans cet exemple, le projet et l'organisation définissent tous deux une valeur, et le paramètre plus spécifique au niveau du projet (e2-standard-2) est prioritaire.

Supprimer un paramètre de Config Store

Pour supprimer un remplacement de paramètre d'une ressource, exécutez la commande gcloud dataflow config-store-settings delete :

gcloud dataflow config-store-settings delete SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

Remplacez les éléments suivants :

  • SETTING_ID : ID du paramètre compatible à supprimer, par exemple default_launcher_machine_type.
  • PROJECT_NUMBER : numéro de votre projet Google Cloud. Pour cibler un dossier ou une organisation au lieu d'un projet, remplacez --project=PROJECT_NUMBER par --folder=FOLDER_ID ou --organization=ORGANIZATION_ID.
  • REGION : région Dataflow du paramètre, par exemple us-central1.

Lorsque vous supprimez un paramètre, Dataflow utilise le paramètre configuré sur les dossiers ou organisations ancêtres, ou les valeurs par défaut du service.

Résoudre les erreurs liées au magasin de configuration

La liste suivante décrit comment résoudre les erreurs courantes de Config Store :

  • INVALID_ARGUMENT (HTTP 400) : la valeur du paramètre n'est pas compatible (par exemple, un type de machine Compute Engine non valide), --project spécifie un ID de projet au lieu d'un numéro de projet numérique, ou --location n'est pas une région Dataflow valide.
  • NOT_FOUND (HTTP 404) : le paramètre n'a pas été créé directement sur la ressource spécifiée. Exécutez gcloud dataflow config-store-settings list pour afficher les paramètres de la ressource ou resolve pour vérifier les paramètres hérités.
  • PERMISSION_DENIED (HTTP 403) : l'appelant ne dispose pas des autorisations IAM requises au niveau du projet, du dossier ou de l'organisation cible.
  • ABORTED (HTTP 409) : une mise à jour simultanée a modifié le paramètre pendant votre requête. Relancez la commande.
  • Échec du job après la création d'un paramètre : la création d'un paramètre Config Store valide le format du paramètre, mais ne vérifie pas la disponibilité des ressources régionales. Un job peut toujours échouer au moment du lancement si la ressource configurée n'est pas disponible. Par exemple, un type de machine peut ne pas être compatible avec la région cible, ou la zone peut rencontrer une pénurie de ressources. Pour résoudre ce problème, modifiez le paramètre afin d'utiliser un type de machine disponible. Pour en savoir plus, consultez Régions et zones disponibles et Épuisement des ressources de la VM du lanceur.

Étapes suivantes