Sie können die Verbindungen für die VMs steuern, auf denen ein Job ausgeführt wird, indem Sie ein Netzwerk mit dem gewünschten Zugriff angeben. Sie können beispielsweise ein Netzwerk angeben, über das ein Job auf erforderliche Ressourcen zugreifen kann, oder den Zugriff einschränken, um die Sicherheit zu verbessern. Wenn Sie keine Netzwerkanforderungen haben und das Netzwerk für einen Job nicht konfigurieren möchten, können Sie die Angabe des Netzwerks auch überspringen, um stattdessen die Standardnetzwerkkonfiguration zu verwenden.
Weitere Informationen zu Netzwerkkonzepten und dazu, wann Sie das Netzwerk konfigurieren sollten, finden Sie unter Übersicht über Batch-Netzwerke.
Hinweis
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Artikel Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzererfüllen.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Jobs benötigen, der in einem bestimmten Netzwerk ausgeführt wird:
- Batch Job Editor (
roles/batch.jobsEditor) für das Projekt - Dienstkontonutzer (
roles/iam.serviceAccountUser) für das Dienstkonto des Jobs. Standardmäßig ist dies das Standarddienstkonto von Compute Engine. -
Zum Ermitteln des Netzwerks und Subnetzes:
Compute-Netzwerkbetrachter (
roles/compute.networkViewer) für das Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
- Batch Job Editor (
-
Ermitteln Sie das Netzwerk, das Sie für den Job verwenden möchten. Das für einen Job angegebene Netzwerk muss die folgenden Anforderungen erfüllen:
- Das Netzwerk ist ein VPC-Netzwerk (Virtual Private Cloud), das sich im selben Projekt wie der Job befindet, oder ein gemeinsam genutztes VPC-Netzwerk , das vom Projekt für den Job gehostet oder für das Projekt freigegeben wird.
- Das Netzwerk enthält ein Subnetzwerk (Subnetz) am Standort, an dem Sie den Job ausführen möchten.
-
Das Netzwerk ermöglicht den für Ihren Job erforderlichen Zugriff. Wenn für Ihren
Job beispielsweise eine Kommunikation zwischen VMs erforderlich ist, z. B. bei einem
Job, der MPI-Bibliotheken verwendet,
um zwischen eng gekoppelten Aufgaben zu kommunizieren, muss das Netzwerk
eine Firewallregel haben, die Verbindungen zwischen den VMs des Jobs zulässt.
Informationen zum Konfigurieren von VPC-Firewallregeln für gängige Anwendungsfälle
-
Wenn ein Job in einem Subnetz eines freigegebene VPC-Netzwerks ausgeführt werden soll, das
von einem anderen Projekt gehostet wird, muss dem Batch-Dienst-Agent Ihres Projekts
die Berechtigung zur Verwendung dieses Subnetzes
erteilt werden.
Damit der Batch-Dienst-Agent Ihres Projekts die erforderlichen Berechtigungen zum Erstellen eines Jobs hat, der in einem Subnetz eines freigegebene VPC-Netzwerks ausgeführt wird, bitten Sie Ihren Administrator, dem Compute-Netzwerknutzer (
roles/compute.networkUser) IAM-Rolle für das freigegebene VPC-Subnetz zuzuweisen.Weitere Informationen finden Sie in der Dokumentation zum Einrichten einer freigegebene VPC für Dienstkonten.
Job erstellen, der in einem bestimmten Netzwerk ausgeführt wird
Geben Sie das Netzwerk für einen Job an, wenn Sie ihn erstellen. Dazu müssen Sie ein VPC-Netzwerk und ein Subnetz angeben, das sich an dem Standort befindet, an dem Sie diesen Job ausführen möchten.
Wenn Sie beim Erstellen dieses Jobs eine VM-Instanzvorlage verwenden möchten, müssen Sie das Netzwerk in der VM-Instanzvorlage angeben. Andernfalls gehen Sie so vor, um das Netzwerk für einen Job mit der gcloud CLI oder der Batch API anzugeben.
gcloud
Wenn Sie einen Job erstellen möchten, der in einem bestimmten Netzwerk mit der gcloud CLI ausgeführt wird, wählen Sie eine der folgenden Optionen aus:
Netzwerk für einen Job mit gcloud-Flags angeben
So erstellen Sie einen Job und geben das Netzwerk für den Job mit gcloud-Flags an:
Erstellen Sie eine JSON-Datei, in der die Konfigurationsdetails Ihres Jobs angegeben sind.
Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, erstellen Sie eine JSON-Datei mit dem folgenden Inhalt.
{ "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" } }Erstellen Sie den Job mit dem
gcloud batch jobs submitBefehl. Geben Sie das Netzwerk für den Job mit den Flags--networkund--subnetworkan.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/SUBNETErsetzen Sie Folgendes:
JOB_NAME: der Name für diesen Job.LOCATION: der Standort für diesen Job.JSON_CONFIGURATION_FILE: der Pfad zur JSON-Datei mit den Konfigurationsdetails des Jobs.HOST_PROJECT_ID: die Projekt-ID des Projekts für das angegebene Netzwerk:- Wenn Sie ein freigegebene VPC-Netzwerk verwenden, geben Sie das Hostprojekt an.
- Geben Sie andernfalls das aktuelle Projekt an.
NETWORK: der Name eines VPC-Netzwerks im aktuellen Projekt oder eines gemeinsam genutzten VPC-Netzwerks, das vom aktuellen Projekt gehostet oder für das aktuelle Projekt freigegeben wird.REGION: die Region, in der sich das Subnetz für den Job und die Compute Engine-Ressourcen des Jobs befinden. Weitere Informationen finden Sie unter Standorte.SUBNET: der Name eines Subnetzes, das Teil des VPC-Netzwerk ist und sich in derselben Region wie die Compute Engine-Ressourcen des Jobs befindet.
Netzwerk für einen Job mit JSON-Feldern angeben
So erstellen Sie einen Job und geben das Netzwerk für den Job mit Feldern in der JSON-Konfigurationsdatei an:
Erstellen Sie eine JSON-Datei, in der die Konfigurationsdetails Ihres Jobs angegeben sind. Geben Sie das Netzwerk für den Job mit den
networkundsubnetworkFeldern an.Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der in einem bestimmten Netzwerk ausgeführt wird, erstellen Sie eine JSON-Datei mit dem folgenden Inhalt.
{ "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" } }Ersetzen Sie Folgendes:
HOST_PROJECT_ID: die Projekt-ID des Projekts für das angegebene Netzwerk:- Wenn Sie ein freigegebene VPC-Netzwerk verwenden, geben Sie das Hostprojekt an.
- Geben Sie andernfalls das aktuelle Projekt an.
NETWORK: der Name eines VPC-Netzwerks im aktuellen Projekt oder eines gemeinsam genutzten VPC-Netzwerks, das vom aktuellen Projekt gehostet oder für das aktuelle Projekt freigegeben wird.REGION: die Region, in der sich das Subnetz für den Job und die Compute Engine-Ressourcen des Jobs befinden. Weitere Informationen finden Sie unter Standorte.SUBNET: der Name eines Subnetzes, das Teil des VPC-Netzwerk ist und sich in derselben Region wie die Compute Engine-Ressourcen des Jobs befindet.
Erstellen Sie den Job mit dem
gcloud batch jobs submitBefehl.gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILEErsetzen Sie Folgendes:
JOB_NAME: der Name für diesen Job.LOCATION: der Standort für diesen Job.JSON_CONFIGURATION_FILE: der Pfad zur JSON-Datei mit den Konfigurationsdetails des Jobs.
Java
Node.js
Python
API
Wenn Sie einen Job mit der Batch API erstellen möchten, verwenden Sie die
jobs.create Methode
und geben Sie die Konfigurationsdetails des Jobs an.
Geben Sie das Netzwerk für den Job mit den
network und subnetwork Feldern an.
Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der in einem bestimmten Netzwerk ausgeführt wird, stellen Sie die folgende POST-Anfrage:
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"
}
}
Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID Ihres Projekts.LOCATION: der Standort für diesen Job.JOB_NAME: der Name für diesen Job.HOST_PROJECT_ID: die Projekt-ID des Projekts für das angegebene Netzwerk:- Wenn Sie ein freigegebene VPC-Netzwerk verwenden, geben Sie das Hostprojekt an.
- Geben Sie andernfalls das aktuelle Projekt (
PROJECT_ID) an.
NETWORK: der Name eines VPC-Netzwerks im aktuellen Projekt oder eines gemeinsam genutzten VPC-Netzwerks, das vom aktuellen Projekt gehostet oder für das aktuelle Projekt freigegeben wird.REGION: die Region, in der sich das Subnetz für den Job und die Compute Engine-Ressourcen des Jobs befinden. Weitere Informationen finden Sie unter Standorte.SUBNET: der Name eines Subnetzes, das Teil des VPC-Netzwerk ist und sich in derselben Region wie die Compute Engine-Ressourcen des Jobs befindet.
Nächste Schritte
- Wenn Sie Probleme beim Erstellen oder Ausführen eines Jobs haben, lesen Sie den Abschnitt zu Fehlerbehebung.
- Weitere Informationen zu Netzwerken.
- Weitere Informationen zum Erstellen eines Jobs.
- Informationen zum Ansehen von Jobs und Aufgaben.