Sie können Verbindungen für die VMs, auf denen ein Job ausgeführt wird, steuern, 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 überspringen, um stattdessen die Standardnetzwerkkonfiguration zu verwenden.
Weitere Informationen zu Netzwerkkonzepten und dazu, wann Sie das Netzwerk konfigurieren sollten, finden Sie unter Batch-Netzwerk – Übersicht.
Hinweise
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Abschnitt Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfü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, das standardmäßig das Compute Engine-Standarddienstkonto ist -
So ermitteln Sie das Netzwerk und das Subnetz:
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 (
-
Geben Sie das Netzwerk an, das Sie für den Job verwenden möchten. Das Netzwerk, das Sie für einen Job angeben, 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 freigegebenes VPC-Netzwerk, das vom Projekt für den Job gehostet oder für das Projekt freigegeben wird.
- Das Netzwerk enthält ein Subnetzwerk (Subnetz) an dem Ort, 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 für die Kommunikation zwischen eng gekoppelten Aufgaben verwendet, muss das Netzwerk eine Firewallregel haben, die Verbindungen zwischen den VMs des Jobs zulässt.
VPC-Firewallregeln für gängige Anwendungsfälle konfigurieren
-
Wenn ein Job in einem Subnetzwerk 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 Subnetzwerks erteilt werden.
Bitten Sie Ihren Administrator, dem Batch-Dienst-Agent Ihres Projekts die IAM-Rolle Compute Network User (
roles/compute.networkUser
) für das freigegebene VPC-Subnetz zuzuweisen, damit der Batch-Dienst-Agent Ihres Projekts die erforderlichen Berechtigungen zum Erstellen eines Jobs hat, der in einem Subnetz eines freigegebenen VPC-Netzwerks ausgeführt wird.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. Sie müssen ein VPC-Netzwerk und ein Subnetz angeben, in dem der Job ausgeführt werden soll.
Wenn Sie eine VM-Instanzvorlage beim Erstellen dieses Jobs verwenden möchten, müssen Sie das Netzwerk in der VM-Instanzvorlage angeben. Andernfalls führen Sie die folgenden Schritte aus, 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 ausgeführt wird, wählen Sie eine der folgenden Optionen aus:
- gcloud-Flags verwenden, um das Netzwerk für einen Job anzugeben
- JSON-Felder zum Angeben des Netzwerks für einen Job verwenden
gcloud-Flags verwenden, um das Netzwerk für einen Job anzugeben
Führen Sie die folgenden Schritte aus, um einen Job zu erstellen und das Netzwerk für den Job mit gcloud-Flags anzugeben:
Erstellen Sie eine JSON-Datei, in der die Konfigurationsdetails Ihres Jobs angegeben sind.
Wenn Sie beispielsweise einen einfachen Script-Job 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 Befehl
gcloud batch jobs submit
. Geben Sie die Flags--network
und--subnetwork
an, um das Netzwerk für den Job festzulegen.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
Ersetzen 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 von Ihnen 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 freigegebenen VPC-Netzwerks, das vom aktuellen Projekt gehostet oder für das aktuelle Projekt freigegeben wird.REGION
: die Region, in der sich das Subnetz und die VMs für den Job befinden:- Wenn Sie das Feld
allowedLocations
verwenden, um den zulässigen Standort für die VMs für den Job anzugeben, müssen Sie hier dieselbe Region angeben. - Andernfalls muss die Region mit dem Standort übereinstimmen, den Sie für den Job auswählen (
LOCATION
).
- Wenn Sie das Feld
SUBNET
: der Name eines Subnetzes, das Teil des VPC-Netzwerk ist und sich in derselben Region wie die VMs für den Job befindet.
JSON-Felder zum Angeben des Netzwerks für einen Job verwenden
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. Wenn Sie das Netzwerk für den Job angeben möchten, fügen Sie die Felder
network
undsubnetwork
ein.Wenn Sie beispielsweise einen einfachen Script-Job erstellen möchten, der in einem bestimmten Netzwerk ausgeführt wird, erstellen Sie eine JSON-Datei mit folgendem 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 von Ihnen 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 freigegebenen VPC-Netzwerks, das vom aktuellen Projekt gehostet oder für das aktuelle Projekt freigegeben wird.REGION
: die Region, in der sich das Subnetz und die VMs für den Job befinden:- Wenn Sie das Feld
allowedLocations
verwenden, um den zulässigen Standort für die VMs für den Job anzugeben, müssen Sie hier dieselbe Region angeben. - Andernfalls muss die Region mit dem Standort übereinstimmen, den Sie für den Job auswählen (
LOCATION
).
- Wenn Sie das Feld
SUBNET
: der Name eines Subnetzes, das Teil des VPC-Netzwerk ist und sich in derselben Region wie die VMs für den Job befindet.
Erstellen Sie den Job mit dem Befehl
gcloud batch jobs submit
.gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Ersetzen 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 Methode jobs.create
und geben Sie die Konfigurationsdetails des Jobs an.
Wenn Sie das Netzwerk für den Job angeben möchten, fügen Sie die Felder network
und subnetwork
ein.
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 von Ihnen 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 freigegebenen VPC-Netzwerks, das vom aktuellen Projekt gehostet oder für das aktuelle Projekt freigegeben wird.REGION
: die Region, in der sich das Subnetz und die VMs für den Job befinden:- Wenn Sie das Feld
allowedLocations
verwenden, um den zulässigen Standort für die VMs für den Job anzugeben, müssen Sie hier dieselbe Region angeben. - Andernfalls muss die Region mit dem Standort übereinstimmen, den Sie für den Job auswählen (
LOCATION
).
- Wenn Sie das Feld
SUBNET
: der Name eines Subnetzes, das Teil des VPC-Netzwerk ist und sich in derselben Region wie die VMs für den Job befindet.
Nächste Schritte
- Wenn Probleme beim Erstellen oder Ausführen eines Jobs auftreten, finden Sie weitere Informationen unter Fehlerbehebung.
- Weitere Informationen zum Networking
- Weitere Informationen zum Erstellen von Jobs
- Jobs und Aufgaben ansehen