In diesem Dokument wird beschrieben, 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, sofern Sie sie nicht mit einer der folgenden Methoden definieren:
- VM-Ressourcen eines Jobs direkt mit dem Feld
instances[].policy
definieren: Diese Methode wird in der meisten Batch-Dokumentation beschrieben. VM-Ressourcen eines Jobs über eine Vorlage mit dem Feld
instances[].instanceTemplate
definieren: Diese Methode wird in diesem Dokument beschrieben.Die Verwendung einer 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.
Hinweise
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Abschnitt Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfüllen.
- Instanzvorlage erstellen oder vorhandene Instanzvorlage identifizieren.
-
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 -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für das Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist -
Job aus einer Compute Engine-VM-Instanzvorlage erstellen:
Compute Viewer (
roles/compute.viewer
) in 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-Editor (
Job mit einer Compute Engine-VM-Instanzvorlage erstellen
In diesem Abschnitt finden Sie Beispiele dafür, wie Sie einen einfachen Skriptjob aus einer vorhandenen VM-Instanzvorlage erstellen. 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 diese Option auftrue
festgelegt ist, ruft Batch die für den GPU-Typ erforderlichen Treiber ab, die Sie in der Vorlage für Ihre Compute Engine-VM-Instanz angeben, und installiert sie für Sie. 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
Wenn Sie mit der Batch API einen einfachen Job erstellen möchten, verwenden Sie die Methode jobs.create
und geben Sie im Feld allocationPolicy
eine VM-Instanzvorlage an.
Wenn Sie beispielsweise einfache Script-Jobs 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 GPU-Typ erforderlichen Treiber ab, die Sie in Ihrer Compute Engine-VM-Instanzvorlage angeben, und installiert sie für Sie. 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 Probleme beim Erstellen oder Ausführen eines Jobs auftreten, finden Sie weitere Informationen unter Fehlerbehebung.
- Jobs und Aufgaben ansehen
- Weitere Optionen zum Erstellen von Jobs