Sie können Verbindungen für die VMs, die einen Job ausführen, steuern, indem Sie ein Netzwerk mit dem gewünschten Zugriff angeben. Sie können beispielsweise ein Netzwerk angeben, das einem Job den Zugriff auf erforderliche Ressourcen ermöglicht oder den Zugriff beschränkt, um die Sicherheit zu verbessern. Wenn Sie keine Netzwerkanforderungen haben und das Netzwerk für einen Job nicht konfigurieren möchten, überspringen Sie alternativ die Angabe des Netzwerks, um stattdessen die Standardnetzwerkkonfiguration zu verwenden.
Weitere Informationen zu Netzwerkkonzepten und zur Konfiguration des Netzwerks finden Sie unter Batch-Netzwerkübersicht.
Hinweise
- Wenn Sie Batch noch nie verwendet haben, lesen Sie die Informationen unter Erste Schritte mit Batch. Aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfüllen.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, 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
) im Dienstkonto des Jobs. Dies ist standardmäßig das Compute Engine-Standarddienstkonto. -
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 verwalten.
Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
Batch Job Editor (
-
Identifizieren Sie das Netzwerk, 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 dieses freigegeben wird.
- Das Netzwerk enthält ein Subnetzwerk (Subnetz) an dem Standort, an dem Sie den Job ausführen möchten.
-
Das Netzwerk ermöglicht den für den Job erforderlichen Zugriff. Wenn Ihr Job beispielsweise die Kommunikation zwischen VMs erfordert, z. B. ein 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 häufige Anwendungsfälle konfigurieren
-
Wenn ein Job in einem Subnetz eines freigegebene VPC-Netzwerks ausgeführt werden soll, das von einem anderen Projekt gehostet wird, muss dem Batch Service-Agent Ihres Projekts die Berechtigung zur Verwendung dieses Subnetzes erteilt werden.
Bitten Sie den Administrator, dem Batch-Dienst-Agent Ihres Projekts im Subnetz der freigegebene VPC die IAM-Rolle Compute Network User (
roles/compute.networkUser
) zu gewähren. So können Sie dafür sorgen, dass 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.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. Insbesondere müssen Sie ein VPC-Netzwerk und ein Subnetz angeben, die sich dort befinden, wo dieser 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 führen Sie die folgenden Schritte aus, um das Netzwerk für einen Job über die gcloud CLI oder Batch API anzugeben.
gcloud
Wählen Sie eine der folgenden Optionen aus, um einen Job zu erstellen, der in einem bestimmten Netzwerk über die gcloud CLI ausgeführt wird:
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, in der die Konfigurationsdetails des Jobs angegeben sind.
Um beispielsweise einen einfachen Skriptjob zu erstellen, 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
. Fügen Sie die Flags--network
und--subnetwork
hinzu, um das Netzwerk des Jobs 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
: der Standort für diesen JobJSON_CONFIGURATION_FILE
: der Pfad für die 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 wird oder für das aktuelle Projekt freigegeben ist.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 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.
Mit JSON-Feldern das Netzwerk für einen Job angeben
So erstellen Sie einen Job und verwenden Felder in der JSON-Konfigurationsdatei, um das Netzwerk für den Job anzugeben:
Erstellen Sie eine JSON-Datei, in der die Konfigurationsdetails des Jobs angegeben sind. Fügen Sie die Felder
network
undsubnetwork
ein, um das Netzwerk für den Job anzugeben.Wenn Sie beispielsweise einen einfachen Skriptjob 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 wird oder für das aktuelle Projekt freigegeben ist.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 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.
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 JobJSON_CONFIGURATION_FILE
: der Pfad für die JSON-Datei mit den Konfigurationsdetails des Jobs.
API
Verwenden Sie zum Erstellen eines Jobs mit der Batch API die Methode jobs.create
und geben Sie die Konfigurationsdetails des Jobs an.
Fügen Sie die Felder network
und subnetwork
ein, um das Netzwerk für den Job anzugeben.
Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der in einem bestimmten Netzwerk ausgeführt wird, senden 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 an (
PROJECT_ID
).
NETWORK
: der Name eines VPC-Netzwerks im aktuellen Projekt oder eines freigegebenen VPC-Netzwerks, das vom aktuellen Projekt gehostet wird oder für das aktuelle Projekt freigegeben ist.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 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 Probleme beim Erstellen oder Ausführen eines Jobs auftreten, lesen Sie die Informationen unter Fehlerbehebung.
- Weitere Informationen zu Netzwerken
- Weitere Informationen zum Erstellen von Jobs
- Aufträge und Aufgaben aufrufen