Vous pouvez contrôler les connexions des VM qui exécutent une tâche en spécifiant un réseau avec l'accès souhaité. Par exemple, vous pouvez spécifier un réseau qui permet à une tâche d'accéder aux ressources requises ou qui limite l'accès pour améliorer la sécurité. Si vous n'avez aucune exigence de mise en réseau et que vous ne souhaitez pas configurer la mise en réseau pour une tâche, vous pouvez ignorer la spécification du réseau et utiliser la configuration de mise en réseau par défaut.
Pour en savoir plus sur les concepts de mise en réseau et quand configurer la mise en réseau, consultez la section Présentation de la mise en réseau par lot.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Pour obtenir les autorisations nécessaires pour créer un job qui s'exécute sur un réseau spécifique, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Éditeur de jobs par lot (
roles/batch.jobsEditor
) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service de la tâche, qui est par défaut le compte de service Compute Engine par défaut -
Pour identifier le réseau et le sous-réseau :
Lecteur de réseau Compute (
roles/compute.networkViewer
) sur le projet
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
-
Éditeur de jobs par lot (
-
Identifiez le réseau que vous souhaitez utiliser pour la tâche. Le réseau que vous spécifiez pour une tâche doit répondre aux exigences suivantes :
- Le réseau est un réseau cloud privé virtuel (VPC) qui se trouve dans le même projet que la tâche ou un réseau VPC partagé hébergé par le projet de la tâche ou partagé avec celui-ci.
- Le réseau inclut un sous-réseau à l'emplacement où vous souhaitez exécuter la tâche.
-
Le réseau autorise l'accès requis pour votre tâche. Par exemple, si votre
nécessite une communication entre les VM,
qui utilise des bibliothèques MPI.
pour communiquer entre des tâches à couplage fort, assurez-vous que le réseau
dispose d'une règle de pare-feu autorisant les connexions entre les VM du job.
Découvrez comment configurer des règles de pare-feu VPC pour les cas d'utilisation courants.
-
Si vous souhaitez qu'une tâche s'exécute sur un sous-réseau d'un réseau VPC partagé
hébergé par un autre projet,
Agent de service Batch
doit être autorisé à utiliser ce sous-réseau.
Pour vous assurer que l'agent de service Batch de votre projet dispose des autorisations nécessaires pour créer une tâche exécutée sur un sous-réseau d'un réseau VPC partagé, demandez à votre administrateur d'accorder à l'agent de service Batch de votre projet le rôle IAM Utilisateur de réseau Compute (
roles/compute.networkUser
) sur le sous-réseau VPC partagé.Pour en savoir plus, consultez la documentation sur la configuration d'un VPC partagé pour les comptes de service.
Créer une tâche qui s'exécute sur un réseau spécifique
Spécifiez le réseau d'une tâche lorsque vous la créez. Plus précisément, vous devez spécifier un réseau VPC et un sous-réseau situés à l'emplacement où vous souhaitez exécuter cette tâche.
Si vous souhaitez utiliser un modèle d'instance de VM lors de la création de cette tâche, vous devez spécifier le réseau dans le modèle d'instance de VM. Sinon, procédez comme suit pour spécifier le réseau d'une tâche à l'aide de la CLI gcloud ou de l'API Batch.
gcloud
Pour créer une tâche qui s'exécute sur un réseau spécifique à l'aide de la CLI gcloud, sélectionnez l'une des options suivantes :
- Utiliser des indicateurs gcloud pour spécifier le réseau d'une tâche
- Spécifier le réseau d'une tâche à l'aide de champs JSON
Utiliser des options gcloud pour spécifier le réseau d'une tâche
Pour créer une tâche et utiliser des options gcloud pour spécifier le réseau de la tâche, procédez comme suit :
Créez un fichier JSON qui spécifie les détails de configuration de votre tâche.
Par exemple, pour créer un job de script de base, créez un fichier JSON avec la propriété les contenus suivants.
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks." } } ] }, "taskCount": 3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Créez le job à l'aide de la commande
gcloud batch jobs submit
. Pour spécifier le réseau du job, incluez le paramètre Options--network
et--subnetwork
.gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE \ --network projects/HOST_PROJECT_ID/global/networks/NETWORK \ --subnetwork projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
Remplacez les éléments suivants :
JOB_NAME
: nom de cette tâche.LOCATION
: emplacement de cette tâche.JSON_CONFIGURATION_FILE
: chemin d'accès de JSON contenant les détails de la configuration du job.HOST_PROJECT_ID
: ID de projet du projet pour le réseau que vous spécifiez :- Si vous utilisez un réseau VPC partagé, spécifiez le projet hôte.
- Sinon, spécifiez le projet en cours.
NETWORK
: nom d'un réseau VPC dans le projet en cours ou d'un réseau VPC partagé hébergé par le projet en cours ou partagé avec celui-ci.REGION
: région où se trouvent le sous-réseau et les VM de la tâche :- Si vous incluez le champ
allowedLocations
pour spécifier l'emplacement autorisé des VM pour la tâche, vous devez spécifier la même région ici. - Sinon, la région doit être identique à celle
Le lieu que vous avez sélectionné pour le projet
(
LOCATION
).
- Si vous incluez le champ
SUBNET
: nom d'un sous-réseau faisant partie du réseau VPC et situé dans la même région que les VM de la tâche.
Utiliser des champs JSON pour spécifier le réseau d'un job
Pour créer une tâche et utiliser les champs du fichier de configuration JSON pour spécifier le réseau de la tâche, procédez comme suit :
Créez un fichier JSON qui spécifie les détails de configuration de votre job. Pour spécifier le réseau du job, incluez le paramètre Champs
network
etsubnetwork
.Par exemple, pour créer une tâche de script de base exécutée sur un réseau spécifique, créez un fichier JSON contenant le contenu suivant.
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks." } } ] }, "taskCount": 3 } ], "allocationPolicy": { "network": { "networkInterfaces": [ { "network": "projects/HOST_PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET" } ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Remplacez les éléments suivants :
HOST_PROJECT_ID
: le ID du projet du projet pour le réseau que vous spécifiez:- Si vous utilisez un réseau VPC partagé, spécifiez l'hôte projet.
- Sinon, spécifiez le projet en cours.
NETWORK
: nom d'un réseau VPC dans le projet en cours ou d'un réseau VPC partagé hébergé par le projet en cours ou partagé avec celui-ci.REGION
: région où se trouvent le sous-réseau et les VM de la tâche :- Si vous incluez le paramètre
Champ
allowedLocations
pour spécifier l'emplacement autorisé pour les VM associées au job, vous doit spécifier la même région ici. - Sinon, la région doit être identique à l'emplacement que vous sélectionnez pour la tâche (
LOCATION
).
- Si vous incluez le paramètre
Champ
SUBNET
: nom d'un sous-réseau faisant partie du réseau VPC et situé dans la même région que les VM de la tâche.
Créez le job à l'aide de la commande
gcloud batch jobs submit
.gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Remplacez les éléments suivants :
JOB_NAME
: nom de la tâche.LOCATION
: emplacement de cette tâche.JSON_CONFIGURATION_FILE
: chemin d'accès au fichier JSON avec les détails de configuration de la tâche.
Java
Node.js
Python
API
Pour créer un job à l'aide de l'API Batch, utilisez la méthode
Méthode jobs.create
et spécifiez les détails de configuration de votre job.
Pour spécifier le réseau du job, incluez le paramètre
Champs network
et subnetwork
.
Par exemple, pour créer un job de script de base qui s'exécute sur un
un réseau spécifique, exécutez la requête POST
suivante:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
}
}
]
},
"taskCount": 3
}
],
"allocationPolicy": {
"network": {
"networkInterfaces": [
{
"network": "projects/HOST_PROJECT_ID/global/networks/NETWORK",
"subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET"
}
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de votre projet.LOCATION
: emplacement pour ce poste.JOB_NAME
: nom de la tâche.HOST_PROJECT_ID
: ID de projet du projet pour le réseau que vous spécifiez :- Si vous utilisez un réseau VPC partagé, spécifiez l'hôte projet.
- Sinon, spécifiez le projet en cours (
PROJECT_ID
).
NETWORK
: nom d'un Réseau VPC dans le projet actuel ou un réseau VPC partagé qui est hébergé par ou partagé avec le projet en cours.REGION
: région où se trouvent le sous-réseau et les VM de la tâche :- Si vous incluez le champ
allowedLocations
pour spécifier l'emplacement autorisé des VM pour la tâche, vous devez spécifier la même région ici. - Sinon, la région doit être identique à celle
Le lieu que vous avez sélectionné pour le projet
(
LOCATION
).
- Si vous incluez le champ
SUBNET
: nom d'un sous-réseau faisant partie du réseau VPC et situé dans la même région que les VM de la tâche.
Étape suivante
- Si vous rencontrez des problèmes lors de la création ou de l'exécution d'un job, consultez la section Dépannage.
- En savoir plus sur le réseautage
- En savoir plus sur la création d'une offre d'emploi
- Découvrez comment afficher les jobs et les tâches.