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 die erforderlichen 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 zum Konfigurieren von Netzwerken finden Sie unter Batch-Netzwerk – Übersicht.
Hinweise
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Hilfeartikel Batch-Dateien erstellen und ausführen 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-Bearbeiter (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) im Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist -
So identifizieren 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-Bearbeiter (
-
Geben Sie das Netzwerk an, 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 freigegebenes VPC-Netzwerk, das vom Projekt für den Job gehostet oder mit diesem geteilt wird.
- Das Netzwerk umfasst ein Subnetzwerk an dem Ort, an dem Sie den Job ausführen möchten.
-
Das Netzwerk ermöglicht den für Ihre Arbeit erforderlichen Zugriff. Wenn für Ihren Job beispielsweise die Kommunikation zwischen VMs erforderlich ist, z. B. ein Job, der MPI-Bibliotheken zur Kommunikation zwischen eng verbundenen Aufgaben verwendet, muss das Netzwerk eine Firewallregel haben, die Verbindungen zwischen den VMs des Jobs zulässt.
Weitere 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-Agenten 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 Batch-Dienst-Agent Ihres Projekts die IAM-Rolle Compute Network User (
roles/compute.networkUser
) für das Subnetz der freigegebene VPC 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. Sie müssen ein VPC-Netzwerk und ein Subnetz angeben, in dem der Job ausgeführt werden soll.
Wenn Sie beim Erstellen dieses Jobs eine VM-Instanzvorlage verwenden möchten, müssen Sie das Netzwerk in der VM-Instanzvorlage angeben. Andernfalls können Sie mit der gcloud CLI oder der Batch API das Netzwerk für einen Job angeben.
gcloud
Wenn Sie mit der gcloud CLI einen Job erstellen möchten, der in einem bestimmten Netzwerk ausgeführt wird, wählen Sie eine der folgenden Optionen aus:
Mit gcloud-Flags das Netzwerk für einen Job angeben
So erstellen Sie einen Job und geben mit gcloud-Flags das Netzwerk für den Job an:
Erstellen Sie eine JSON-Datei mit den Konfigurationsdetails des Jobs.
Wenn Sie beispielsweise einen einfachen Script-Job erstellen möchten, 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 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Erstellen Sie den Job mit dem Befehl
gcloud batch jobs submit
. Fügen Sie die Flags--network
und--subnetwork
ein, um das Netzwerk für den Job anzugeben.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
: den Speicherort für diese Aufgabe.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.
- Andernfalls geben Sie 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 dieses freigegeben wird.REGION
: die Region, in der sich das Subnetz und die VMs für den Job befinden:- Wenn Sie das Feld
allowedLocations
angeben, um den zulässigen Speicherort 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 ausgewählt haben (
LOCATION
).
- Wenn Sie das Feld
SUBNET
: der Name eines Subnetzes, das zum VPC-Netzwerk gehört und sich in derselben Region wie die VMs für den Job befindet.
Netzwerk für einen Job mit JSON-Feldern angeben
So erstellst du einen Job und verwendest Felder in der JSON-Konfigurationsdatei, um das Netzwerk für den Job anzugeben:
Erstellen Sie eine JSON-Datei mit den Konfigurationsdetails des Jobs. Geben Sie das Netzwerk für den Job an, indem Sie die Felder
network
undsubnetwork
einfügen.Wenn Sie beispielsweise einen einfachen Script-Job 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.
- Andernfalls geben Sie 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 dieses freigegeben wird.REGION
: die Region, in der sich das Subnetz und die VMs für den Job befinden:- Wenn Sie das Feld
allowedLocations
angeben, um den zulässigen Speicherort 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 ausgewählt haben (
LOCATION
).
- Wenn Sie das Feld
SUBNET
: der Name eines Subnetzes, das zum VPC-Netzwerk gehört 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
: den Speicherort für diese Aufgabe.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.
Geben Sie das Netzwerk für den Job an, indem Sie die Felder network
und subnetwork
einfügen.
Wenn Sie beispielsweise einen einfachen Script-Job 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
: den Speicherort für diese Aufgabe.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 freigegebenen VPC-Netzwerks, das vom aktuellen Projekt gehostet oder für dieses freigegeben wird.REGION
: die Region, in der sich das Subnetz und die VMs für den Job befinden:- Wenn Sie das Feld
allowedLocations
angeben, um den zulässigen Speicherort 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 ausgewählt haben (
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 beim Erstellen oder Ausführen eines Jobs Probleme auftreten, lesen Sie den Hilfeartikel Fehlerbehebung.
- Weitere Informationen zum Networking
- Weitere Informationen zum Erstellen von Jobs
- Weitere Informationen