In diesem Dokument wird erläutert, wie Sie die VM-Ressourcen für einen Batch-Job definieren, indem Sie beim Erstellen des Jobs eine Compute Engine-VM-Instanzvorlage angeben.
Die Arten von VM-Ressourcen, auf denen ein Job ausgeführt wird (instances[]
-Unterfelder), werden automatisch von Batch definiert, sofern Sie sie nicht mit einer der folgenden Methoden definieren:
- Verwenden Sie das Feld
policy
, um die VM-Ressourcen eines Jobs direkt zu definieren, wie unter Einfachen Job erstellen gezeigt. - Verwenden Sie das Feld
instanceTemplate
, um die VM-Ressourcen eines Jobs durch Angabe einer VM-Instanzvorlage zu definieren, wie in diesem Dokument erläutert. Diese Methode ist erforderlich, um einen Job zu erstellen, der nicht standardmäßige VM-Images verwendet.
Hinweise
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie 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, damit Sie die Berechtigungen erhalten, die Sie zum Erstellen eines Jobs benötigen:
-
Batchjob-Bearbeiter (
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 -
Erstellen Sie einen Job aus einer Compute Engine-VM-Instanzvorlage:
Compute Viewer (
roles/compute.viewer
) in der VM-Instanzvorlage.
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.
-
Batchjob-Bearbeiter (
Job mit einer Compute Engine-VM-Instanzvorlage erstellen
Dieser Abschnitt enthält Beispiele zum Erstellen eines einfachen Skriptjobs aus einer vorhandenen VM-Instanzvorlage. Sie können einen Job aus einer VM-Instanzvorlage mit der gcloud CLI, Batch API, Go, Java, Node.js, Python oder C++ erstellen.
gcloud
Verwenden Sie den Befehl gcloud batch jobs submit
und geben Sie die VM-Instanzvorlage in der JSON-Konfigurationsdatei des Jobs an, um mit der gcloud CLI einen Job aus einer VM-Instanzvorlage zu erstellen.
So erstellen Sie beispielsweise einen einfachen Skriptjob aus einer VM-Instanzvorlage:
Erstellen Sie im aktuellen Verzeichnis eine JSON-Datei mit dem Namen
hello-world-instance-template.json
und 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." } } ], "computeResource": { "cpuMilli": 2000, "memoryMib": 16 }, "maxRetryCount": 2, "maxRunDuration": "3600s" }, "taskCount": 4, "parallelism": 2 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ] }, "labels": { "department": "finance", "env": "testing" }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Ersetzen Sie Folgendes:
INSTALL_GPU_DRIVERS
: Optional. Wenn dieser Wert auftrue
gesetzt ist, ruft Batch die Treiber ab, die für den GPU-Typ erforderlich sind, den Sie in Ihrer Compute Engine-VM-Instanzvorlage angeben, und installiert sie in Batch in Ihrem Namen. Weitere Informationen finden Sie unter Job erstellen, der eine GPU verwendet.INSTANCE_TEMPLATE_NAME
: der Name einer vorhandenen Compute Engine-VM-Instanzvorlage. Instanzvorlagen erstellen und Instanzvorlagen auflisten
Führen Sie dazu diesen Befehl aus:
gcloud batch jobs submit example-template-job \ --location us-central1 \ --config hello-world-instance-template.json
API
Verwenden Sie zum Erstellen eines Basisjobs mit der Batch API die Methode jobs.create
und geben Sie im Feld allocationPolicy
eine VM-Instanzvorlage an.
Verwenden Sie beispielsweise die folgende Anfrage, um einfache Skriptjobs aus einer VM-Instanzvorlage zu erstellen:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/jobs?job_id=example-script-job
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
}
}
],
"computeResource": {
"cpuMilli": 2000,
"memoryMib": 16
},
"maxRetryCount": 2,
"maxRunDuration": "3600s"
},
"taskCount": 4,
"parallelism": 2
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"instanceTemplate": "INSTANCE_TEMPLATE_NAME"
}
]
},
"labels": {
"department": "finance",
"env": "testing"
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID Ihres Projekts.INSTALL_GPU_DRIVERS
: Optional. Wenn dieser Wert auftrue
gesetzt ist, ruft Batch die Treiber ab, die für den GPU-Typ erforderlich sind, den Sie in Ihrer Compute Engine-VM-Instanzvorlage angeben, und installiert sie in Batch in Ihrem Namen. Weitere Informationen finden Sie unter Job erstellen, der eine GPU verwendet.INSTANCE_TEMPLATE_NAME
: der Name einer vorhandenen Compute Engine-VM-Instanzvorlage. Instanzvorlagen erstellen und Instanzvorlagen auflisten
Einfach loslegen (Go)
Go
Weitere Informationen findest du in der Referenzdokumentation zur Batch Go API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Java
Weitere Informationen findest du in der Referenzdokumentation zur Batch Java API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Node.js
Weitere Informationen findest du in der Referenzdokumentation zur Batch Node.js API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Python
Weitere Informationen findest du in der Referenzdokumentation zur Batch Python API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
C++
C++
Weitere Informationen findest du in der Referenzdokumentation zur Batch C++ API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Nächste Schritte
- Informationen zu Problemen beim Erstellen oder Ausführen eines Jobs finden Sie unter Fehlerbehebung.
- Aufträge und Aufgaben ansehen
- Möglichkeiten zur Joberstellung