In diesem Dokument wird beschrieben, wie Sie die VM-Ressourcen für einen Batchjob definieren, indem Sie beim Erstellen des Jobs eine Compute Engine-VM-Instanzvorlage angeben.
Die VM-Ressourcentypen, auf denen ein Job ausgeführt wird, werden automatisch von Batch definiert, es sei denn, Sie definieren sie mit einer der folgenden Methoden:
- Definieren Sie die VM-Ressourcen eines Jobs direkt mithilfe des Felds
instances[].policy
. Diese Methode wird in der meisten Batch-Dokumentation veranschaulicht. Definieren Sie die VM-Ressourcen eines Jobs über eine Vorlage mithilfe des Felds
instances[].instanceTemplate
. Diese Methode wird in diesem Dokument erläutert.Die Verwendung einer Vorlage ist erforderlich, um VM-Optionen anzugeben, für die in Batch keine Jobfelder vorhanden sind. Die Verwendung einer Vorlage kann auch praktisch sein, wenn Sie dieselben VM-Ressourcen für mehrere Jobs angeben möchten.
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.
- Erstellen Sie eine Instanzvorlage oder identifizieren 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-Bearbeiter (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) im Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist -
Job aus einer Compute Engine-VM-Instanzvorlage erstellen:
Compute Viewer (
roles/compute.viewer
) auf der 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-Bearbeiter (
Job mit einer Compute Engine-VM-Instanzvorlage erstellen
In diesem Abschnitt finden Sie Beispiele zum Erstellen eines einfachen Scriptjobs 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
Wenn Sie einen Job aus einer VM-Instanzvorlage mit der gcloud CLI erstellen möchten, verwenden Sie den Befehl gcloud batch jobs submit
und geben Sie die VM-Instanzvorlage in der JSON-Konfigurationsdatei des Jobs an.
So erstellen Sie beispielsweise einen einfachen Scriptjob 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 „Batch“ auftrue
festgelegt ist, ruft Batch die für den GPU-Typ erforderlichen Treiber ab, den Sie in der Compute Engine-VM-Instanzvorlage angeben, 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. Weitere Informationen zum Erstellen und Auflisten von Instanzvorlagen
Führen Sie dazu diesen Befehl aus:
gcloud batch jobs submit example-template-job \ --location us-central1 \ --config hello-world-instance-template.json
API
Wenn Sie einen einfachen Job mit der Batch API erstellen möchten, verwenden Sie die Methode jobs.create
und geben Sie im Feld allocationPolicy
eine VM-Instanzvorlage an.
Wenn Sie beispielsweise einfache Scriptjobs aus einer VM-Instanzvorlage erstellen möchten, verwenden Sie die folgende Anfrage:
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 auftrue
festgelegt ist, ruft Batch die für den in Ihrer Compute Engine-VM-Instanzvorlage angegebenen GPU-Typ erforderlichen Treiber ab 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 Referenzdokumentation zur Batch Go API.
Richten Sie die 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 finden Sie in der Referenzdokumentation zur Batch Java API.
Richten Sie die 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 finden Sie in der Referenzdokumentation zur Batch Node.js API.
Richten Sie die 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 finden Sie in der Referenzdokumentation zur Batch Python API.
Richten Sie die 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 finden Sie in der Referenzdokumentation zur Batch C++ API.
Richten Sie die 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
- Wenn beim Erstellen oder Ausführen eines Jobs Probleme auftreten, lesen Sie den Hilfeartikel Fehlerbehebung.
- Aufgaben und Jobs ansehen
- Weitere Informationen zu Optionen zum Erstellen von Jobs