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, werden automatisch von Batch definiert, es sei denn, Sie definieren sie mit einer der folgenden Methoden:
- VM-Ressourcen eines Jobs direkt mit dem Feld
instances[].policydefinieren. Diese Methode wird in den meisten Batch-Dokumentationen veranschaulicht. VM-Ressourcen eines Jobs über eine Vorlage mit dem Feld
instances[].instanceTemplatedefinieren. Dies ist die in diesem Dokument beschriebene Methode.Eine Vorlage ist erforderlich, um VM-Optionen anzugeben, für die Batch keine Jobfelder bereitstellt. Die Verwendung einer Vorlage kann auch praktisch sein, wenn Sie dieselben VM-Ressourcen für mehrere Jobs angeben möchten.
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.
- Erstellen Sie eine Instanzvorlage oder suchen Sie eine vorhandene Instanzvorlage.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Jobs benötigen:
- Batch Job Editor (
roles/batch.jobsEditor) für das Projekt - Dienstkonto-Nutzer (
roles/iam.serviceAccountUser) für das Dienstkonto des Jobs. Standardmäßig ist dies das Standarddienstkonto für Compute Engine. -
Job aus einer Compute Engine-VM-Instanzvorlage erstellen:
Compute Viewer (
roles/compute.viewer) für die VM-Instanzvorlage
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 (
Job mit einer Compute Engine-VM-Instanzvorlage erstellen
In diesem Abschnitt finden Sie Beispiele für das Erstellen eines einfachen Skriptjobs aus einer vorhandenen VM-Instanzvorlage. Sie können einen Job aus einer VM-Instanzvorlage mit der gcloud CLI, der 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 einen Job aus einer VM-Instanzvorlage mit der gcloud CLI 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.jsonund 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." } } ], "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 diese Option auftruegesetzt ist, ruft Batch die Treiber ab, die für den in der Compute Engine-VM-Instanzvorlage angegebenen GPU-Typ erforderlich sind, und installiert sie 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 die
jobs.create Methode
und geben Sie im allocationPolicy Feld eine VM-Instanzvorlage an, um einen einfachen Job mit der Batch API zu erstellen.
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 diese Option auftruegesetzt ist, ruft Batch die Treiber ab, die für den in der Compute Engine-VM-Instanzvorlage angegebenen GPU-Typ erforderlich sind, und installiert sie 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
Go
Go
Weitere Informationen finden Sie in der Batch Go API Referenzdokumentation.
Richten Sie zur Authentifizierung bei Batch die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Java
Weitere Informationen finden Sie in der Batch Java API Referenzdokumentation.
Richten Sie zur Authentifizierung bei Batch die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Node.js
Weitere Informationen finden Sie in der Batch Node.js API Referenzdokumentation.
Richten Sie zur Authentifizierung bei Batch die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Python
Weitere Informationen finden Sie in der Batch Python API Referenzdokumentation.
Richten Sie zur Authentifizierung bei Batch die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
C++
C++
Weitere Informationen finden Sie in der Batch C++ API Referenzdokumentation.
Richten Sie zur Authentifizierung bei Batch die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Nächste Schritte
- Wenn Sie Probleme beim Erstellen oder Ausführen eines Jobs haben, lesen Sie den Abschnitt zu Fehlerbehebung.
- Jobs und Aufgaben ansehen.
- Weitere Optionen für die Joberstellung