Cette page fournit des informations sur les variables d'environnement Dockerfile requises et sur les paramètres de pipeline compatibles avec les modèles Flex Dataflow.
Définir les variables d'environnement requises dans le fichier Dockerfile
Si vous souhaitez créer votre propre fichier Docker pour une tâche de modèle Flex, vous devez spécifier les variables d'environnement suivantes :
Java
Vous devez spécifier FLEX_TEMPLATE_JAVA_MAIN_CLASS
et FLEX_TEMPLATE_JAVA_CLASSPATH
dans le fichier Dockerfile.
Python
Vous devez spécifier les éléments suivants dans votre fichier Dockerfile : FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE
, FLEX_TEMPLATE_PYTHON_PY_FILE
, FLEX_TEMPLATE_PYTHON_PY_OPTIONS
et FLEX_TEMPLATE_PYTHON_SETUP_FILE
.
Par exemple, nous avons défini les variables d'environnement suivantes dans le tutoriel sur la diffusion dans les modèles Flex en langage Python :
ENV FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE="${WORKDIR}/requirements.txt"
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="${WORKDIR}/streaming_beam.py"
Modifier l'image de base
Vous devez utiliser une image de base fournie par Google pour empaqueter vos conteneurs à l'aide de Docker. Choisissez le nom de la version la plus récente dans la documentation de référence sur les images de base des modèles Flex. Ne sélectionnez pas latest
.
Spécifiez l'image de base au format suivant :
gcr.io/dataflow-templates-base/IMAGE_NAME:VERSION_NAME
Remplacez l'élément suivant :
IMAGE_NAME
: image de base fournie par GoogleVERSION_NAME
: nom de version de l'image de base, disponible dans la documentation de référence sur les images de base des modèles Flex.
Spécifier les paramètres du pipeline
Les options de pipeline sont des paramètres d'exécution qui configurent comment et où exécuter les tâches Dataflow. Vous pouvez définir les options de pipeline Dataflow suivantes pour les tâches de modèle Flex à l'aide de l'outil de ligne de commande gcloud
:
Java
Champ | Type | Description | Valeur par défaut |
---|---|---|---|
gcpTempLocation |
String |
Chemin d'accès Cloud Storage pour les fichiers temporaires. Doit être une URL Cloud Storage valide commençant par gs:// . |
|
numWorkers |
int |
Nombre initial d'instances Google Compute Engine à utiliser lors de l'exécution du pipeline. Cette option détermine le nombre de nœuds de calcul démarrés par le service Dataflow au début de la tâche. | Si ce champ n'est pas défini, le service Dataflow détermine un nombre approprié de nœuds de calcul. |
maxNumWorkers |
int |
Nombre maximal d'instances Compute Engine à mettre à la disposition du pipeline pendant l'exécution. Sachez que cette valeur peut être supérieure au nombre initial de nœuds de calcul (spécifié par numWorkers pour permettre à la tâche d'évoluer, automatiquement ou par un autre moyen). |
Si ce champ n'est pas défini, le service Dataflow détermine un nombre approprié de nœuds de calcul. |
numberOfWorkerHarnessThreads |
int |
Nombre de threads par faisceau de nœud de calcul. | Si ce champ n'est pas défini, le service Cloud Dataflow détermine un nombre approprié de threads par nœud de calcul. |
workerRegion |
String |
Spécifie une région Compute Engine permettant de lancer des instances de nœuds de calcul pour exécuter le pipeline. Cette option permet d'exécuter des nœuds de calcul dans un emplacement différent de celui utilisé par Remarque : Cette option ne peut pas être combinée avec |
Si ce champ n'est pas défini, la valeur par défaut est region . |
workerZone |
String |
Spécifie une zone Compute Engine permettant de lancer des instances de nœuds de calcul pour exécuter le pipeline. Cette option permet d'exécuter des nœuds de calcul dans un emplacement différent de celui utilisé par Remarque : Cette option ne peut pas être combinée avec |
Si vous spécifiez region ou workerRegion , workerZone est défini par défaut sur une zone de la région correspondante. Vous pouvez ignorer ce comportement en spécifiant une zone différente. |
zone |
String |
(Obsolète) Pour le SDK Apache Beam 2.17.0 ou version antérieure, spécifie la zone Compute Engine permettant de lancer des instances de nœuds de calcul pour exécuter votre pipeline. | Si vous spécifiez region , zone est défini par défaut sur une zone de la région correspondante. Vous pouvez ignorer ce comportement en spécifiant une zone différente. |
dataflowKmsKey |
String |
Spécifie la clé de chiffrement gérée par le client (CMEK, Customer-Managed Encryption Key) qui permet de chiffrer les données au repos. Vous pouvez contrôler la clé de chiffrement via Cloud KMS.
Vous devez également spécifier le paramètre gcpTempLocation pour utiliser cette fonctionnalité. |
Dans le cas contraire, Dataflow utilise le chiffrement Google Cloud par défaut à la place du chiffrement CMEK. |
network |
String |
Réseau Compute Engine permettant de lancer des instances Compute Engine pour exécuter le pipeline. Découvrez comment spécifier le réseau. | Si ce champ n'est pas défini, Google Cloud considère que vous allez utiliser un réseau nommé default . |
subnetwork |
String |
Sous-réseau Compute Engine permettant de lancer des instances Compute Engine pour exécuter le pipeline. Découvrez comment spécifier le sous-réseau. | Le service Dataflow détermine la valeur par défaut. |
enableStreamingEngine |
boolean |
Indique si Streaming Engine de Dataflow est activé (valeur "true") ou désactivé. L'activation de Streaming Engine permet d'exécuter les étapes de votre pipeline de streaming dans le backend du service Dataflow, économisant ainsi les ressources de processeur, de mémoire et de stockage sur disque persistant. | La valeur par défaut est false. Cela signifie que les étapes de votre pipeline de streaming sont exécutées entièrement sur des VM de nœuds de calcul. |
serviceAccount |
String |
Spécifie un compte de service de contrôleur géré par l'utilisateur, au format my-service-account-name@<project-id>.iam.gserviceaccount.com . Pour plus d'informations, consultez la section dédiée au compte de service de contrôleur de la page concernant la sécurité et les autorisations dans Cloud Dataflow.
|
Si ce champ n'est pas défini, les nœuds de calcul utilisent le compte de service Compute Engine de votre projet en tant que compte de service de contrôleur. |
workerMachineType |
String |
Type de machine Compute Engine utilisé par Dataflow lors du démarrage des VM de nœud de calcul. Vous pouvez utiliser toutes les familles de types de machines Compute Engine disponibles, ainsi que des types de machines personnalisés. Pour des résultats optimaux, utilisez des types de machine Notez que l'utilisation de Dataflow est facturée en fonction du nombre de processeurs virtuels et de Go de mémoire consommés par les nœuds de calcul. La facturation ne dépend pas de la famille du type de machine. |
Si cette option n'est pas définie, le service Dataflow choisit le type de machine en fonction de la tâche. |
Python
Champ | Type | Description | Valeur par défaut |
---|---|---|---|
temp_location |
str |
Chemin d'accès Cloud Storage pour les fichiers temporaires. Doit être une URL Cloud Storage valide commençant par gs:// . |
Si ce champ n'est pas spécifié, la valeur par défaut est définie sur staging_location . Vous devez spécifier au moins un des éléments temp_location ou staging_location pour exécuter le pipeline sur Google Cloud. |
num_workers |
int |
Nombre d'instances Compute Engine à utiliser lors de l'exécution du pipeline. | Si ce champ n'est pas défini, le service Dataflow détermine un nombre approprié de nœuds de calcul. |
max_num_workers |
int |
Nombre maximal d'instances Compute Engine à mettre à la disposition du pipeline pendant l'exécution. Sachez que cette valeur peut être supérieure au nombre initial de nœuds de calcul (spécifié par num_workers pour permettre à la tâche d'évoluer, automatiquement ou par un autre moyen). |
Si ce champ n'est pas défini, le service Dataflow détermine un nombre approprié de nœuds de calcul. |
number_of_worker_harness_threads |
int |
Nombre de threads par faisceau de nœud de calcul. | Si ce champ n'est pas défini, le service Cloud Dataflow détermine un nombre approprié de threads par nœud de calcul. Pour utiliser ce paramètre, vous devez également utiliser l'option --experiments=use_runner_v2 |
worker_region |
String |
Spécifie une région Compute Engine permettant de lancer des instances de nœuds de calcul pour exécuter le pipeline. Cette option permet d'exécuter des nœuds de calcul dans un emplacement différent de celui utilisé par Remarque : Cette option ne peut pas être combinée avec |
Si ce champ n'est pas défini, la valeur par défaut est region . |
worker_zone |
String |
Spécifie une zone Compute Engine permettant de lancer des instances de nœuds de calcul pour exécuter le pipeline. Cette option permet d'exécuter des nœuds de calcul dans un emplacement différent de celui utilisé par Remarque : Cette option ne peut pas être combinée avec |
Si vous spécifiez region ou worker_region , worker_zone est défini par défaut sur une zone de la région correspondante. Vous pouvez ignorer ce comportement en spécifiant une zone différente. |
zone |
str |
(Obsolète) Pour le SDK Apache Beam 2.17.0 ou version antérieure, spécifie la zone Compute Engine permettant de lancer des instances de nœuds de calcul pour exécuter votre pipeline. | Si vous spécifiez region , zone est défini par défaut sur une zone de la région correspondante. Vous pouvez ignorer ce comportement en spécifiant une zone différente. |
dataflow_kms_key |
str |
Spécifie la clé de chiffrement gérée par le client (CMEK, Customer-Managed Encryption Key) qui permet de chiffrer les données au repos. Vous pouvez contrôler la clé de chiffrement via Cloud KMS.
Vous devez également spécifier le paramètre temp_location pour utiliser cette fonctionnalité. |
Dans le cas contraire, Dataflow utilise le chiffrement Google Cloud par défaut à la place du chiffrement CMEK. |
network |
str |
Réseau Compute Engine permettant de lancer des instances Compute Engine pour exécuter le pipeline. Découvrez comment spécifier le réseau. | Si ce champ n'est pas défini, Google Cloud considère que vous allez utiliser un réseau nommé default . |
subnetwork |
str |
Sous-réseau Compute Engine permettant de lancer des instances Compute Engine pour exécuter le pipeline. Découvrez comment spécifier le sous-réseau. | Le service Dataflow détermine la valeur par défaut. |
enable_streaming_engine |
bool |
Indique si Streaming Engine de Dataflow est activé (valeur "true") ou désactivé. L'activation de Streaming Engine permet d'exécuter les étapes de votre pipeline de streaming dans le backend du service Dataflow, économisant ainsi les ressources de processeur, de mémoire et de stockage sur disque persistant. | La valeur par défaut est false. Cela signifie que les étapes de votre pipeline de streaming sont exécutées entièrement sur des VM de nœuds de calcul. |
service_account_email |
str |
Spécifie un compte de service de contrôleur géré par l'utilisateur, au format my-service-account-name@<project-id>.iam.gserviceaccount.com . Pour plus d'informations, consultez la section dédiée au compte de service de contrôleur de la page concernant la sécurité et les autorisations dans Cloud Dataflow.
|
Si ce champ n'est pas défini, les nœuds de calcul utilisent le compte de service Compute Engine de votre projet en tant que compte de service de contrôleur. |
machine_type |
str |
Type de machine Compute Engine utilisé par Dataflow lors du démarrage des VM de nœud de calcul. Vous pouvez utiliser toutes les familles de types de machines Compute Engine disponibles, ainsi que des types de machines personnalisés. Pour des résultats optimaux, utilisez des types de machine Notez que l'utilisation de Dataflow est facturée en fonction du nombre de processeurs virtuels et de Go de mémoire consommés par les nœuds de calcul. La facturation ne dépend pas de la famille du type de machine. |
Si cette option n'est pas définie, le service Dataflow choisit le type de machine en fonction de la tâche. |
Étape suivante
- Suivez le tutoriel sur les modèles Flex.
- Pour en savoir plus sur la résolution des problèmes liés aux modèles Flex, consultez la section Conseils sur les erreurs fréquentes.
- Testez d'autres fonctionnalités de Dataflow. Découvrez nos tutoriels.