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 Typen der VM-Ressourcen, auf denen ein Job ausgeführt wird, werden automatisch es sei denn, Sie definieren sie mithilfe von eine der folgenden Methoden:
- Definieren Sie die VM-Ressourcen eines Jobs direkt mit dem Feld
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.Wenn Sie einen Job mit nicht standardmäßigen VM-Images erstellen möchten, ist eine Vorlage erforderlich. Die Verwendung einer Vorlage kann auch 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.
-
Um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Jobs benötigen, bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen:
-
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 -
Erstellen Sie einen Job mit einer Compute Engine-VM-Instanzvorlage:
Compute-Betrachter (
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-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 erstellen mit der gcloud CLI, Batch API, Go, Java Node.js, Python oder C++.
gcloud
So erstellen Sie einen Job aus einer VM-Instanzvorlage mithilfe der Methode
gcloud CLI: 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 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 „Batch“ auftrue
festgelegt ist, werden die für den in der Compute Engine-VM-Instanzvorlage angegebenen GPU-Typ erforderlichen Treiber abgerufen und in Ihrem Namen installiert. Für finden Sie unter Erstellen Sie einen Job, der eine GPU verwendet.INSTANCE_TEMPLATE_NAME
: der Name einer vorhandenen Compute Engine-VM-Instanzvorlage. Hier erfahren Sie, wie Sie 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
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.
Um beispielsweise einfache Skriptjobs aus einer VM-Instanzvorlage zu erstellen, 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 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 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 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 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.
- Aufträge und Aufgaben ansehen
- Weitere Informationen zu Optionen für die Joberstellung