Beispieljob erstellen und ausführen

Hier erfahren Sie, wie Sie einen Beispiel-Batchjob zur Videotranscodierung mit Batch for Google Clouderstellen und ausführen.


Eine detaillierte Anleitung dazu finden Sie direkt in der Google Cloud Console. Klicken Sie dazu einfach auf Anleitung:

Anleitung


Hinweis

  1. Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Google Cloud-Nutzer sind, erstellen Sie ein Konto, um zu sehen, wie sich unsere Produkte in realen Szenarien schlagen. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Installieren Sie die Google Cloud CLI.

  3. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  4. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  5. Erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes Projekt Google Cloud aus.

    Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind

    • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
    • Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (roles/resourcemanager.projectCreator), die die resourcemanager.projects.create Berechtigung enthält. Rollen zuweisen.
    • Projekt erstellen: Google Cloud

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Google Cloud Projekt, das Sie erstellen.

    • Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch Ihren Google Cloud Projektnamen.

  6. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  7. Aktivieren Sie die APIs für Batch, Compute Engine, Logging und Cloud Storage:

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Rollen zuweisen.

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  8. Installieren Sie die Google Cloud CLI.

  9. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  10. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  11. Erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes Projekt Google Cloud aus.

    Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind

    • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
    • Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (roles/resourcemanager.projectCreator), die die resourcemanager.projects.create Berechtigung enthält. Rollen zuweisen.
    • Projekt erstellen: Google Cloud

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Google Cloud Projekt, das Sie erstellen.

    • Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch Ihren Google Cloud Projektnamen.

  12. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  13. Aktivieren Sie die APIs für Batch, Compute Engine, Logging und Cloud Storage:

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Rollen zuweisen.

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  14. Achten Sie darauf, dass Sie und das Dienstkonto des Jobs die erforderlichen Berechtigungen haben, um diese Anleitung abzuschließen. In dieser Anleitung wird das Standard dienstkonto für einen Job verwendet, also das Compute Engine-Standarddienstkonto.

    • Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Anleitung benötigen:

      • Zum Erstellen, Aufrufen und Löschen von Jobs:
      • Zum Erstellen, Aufrufen und Löschen von Cloud Storage-Buckets: Storage-Administrator (roles/storage.admin) für das Projekt
      • Zum Aufrufen von Logs aus Jobs: Logbetrachter (roles/logging.viewer) für das Projekt

      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.

    • Bitten Sie Ihren Administrator, dem Compute Engine-Standarddienstkonto die folgenden IAM-Rollen zuzuweisen, damit es die erforderlichen Berechtigungen zum Ausführen dieser Anleitung hat:

      • Batch-Agent-Melder (roles/batch.agentReporter) für das Projekt
      • Damit Jobs auf Cloud Storage-Buckets zugreifen können: Storage-Administrator (roles/storage.admin) für das Projekt
      • Damit Jobs Logs in Logging generieren können: Logautor (roles/logging.logWriter) für das Projekt

  15. Klonen Sie das Batch-Git-Repository in das aktuelle Verzeichnis:
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
  16. Wechseln Sie zum Verzeichnis transcoding:
    cd batch-samples/transcoding/

Jobeingaben vorbereiten

  1. Erstellen Sie einen Cloud Storage-Bucket:

    gcloud storage buckets create gs://BUCKET_NAME
    

    Ersetzen Sie BUCKET_NAME durch einen global eindeutigen Namen für den Bucket.

    Die Ausgabe sieht etwa so aus:

    Creating gs://BUCKET_NAME/...
    
  2. Kopieren Sie das Skript transcode.sh und den Ordner mit den Videodateien in Ihren Cloud Storage-Bucket:

    gcloud storage cp -R transcode.sh input gs://BUCKET_NAME
    

    Die Ausgabe sieht etwa so aus:

    Copying file://transcode.sh to gs://BUCKET_NAME/transcode.sh
    Copying file://input/video-2.mp4 to gs://BUCKET_NAME/input/video-2.mp4
    Copying file://input/video-1.mp4 to gs://BUCKET_NAME/input/video-1.mp4
    Copying file://input/video-0.mp4 to gs://BUCKET_NAME/input/video-0.mp4
      Completed files 4/4 | 37.5MiB/37.5MiB
    
    Average throughput: 48.4MiB/s
    

Job erstellen

  1. Öffnen Sie die Konfigurationsdatei job.json in einem Texteditor Ihrer Wahl.

  2. Legen Sie den Wert des Felds remotePath auf den Namen Ihres Cloud Storage-Bucket fest:

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "bash /mnt/share/transcode.sh"
                }
              }
            ],
            "computeResource": {
              "cpuMilli": 2000,
              "memoryMib": 2048
            },
            "volumes": [
              {
                "gcs": {
                  "remotePath": "BUCKET_NAME"
                },
                "mountPath": "/mnt/share"
              }
            ],
            "maxRetryCount": 2,
            "maxRunDuration": "600s"
          },
          "taskCount": 3,
          "parallelism": 3
        }
      ],
      "allocationPolicy": {
        "instances": [
          {
            "policy": {
              "machineType": "n2d-standard-4",
              "provisioningModel": "SPOT"
            }
          }
        ]
      },
      "labels": {
        "department": "creative",
        "env": "testing"
      },
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    
  3. Speichern Sie die Änderungen und schließen Sie den Texteditor.

  4. Erstellen Sie den Job transcode:

    gcloud batch jobs submit transcode \
        --config=job.json \
        --location=us-central1
    

    Die Ausgabe sieht etwa so aus:

    Job transcode-7a1654ca-211c-40e8-b0fb-8a00 was successfully submitted.
    ...
    

    Der Job führt drei Aufgaben gleichzeitig aus. Jede Aufgabe führt das Skript transcode.sh aus, das eine von drei Videodateien codiert und in den Cloud Storage-Bucket hochlädt.

Job überwachen

  1. Rufen Sie in der Google Cloud Console die Seite Jobliste auf.

    Zur Jobliste

  2. Klicken Sie in der Spalte Jobname auf transcode.

    Die Seite Jobdetails wird aufgerufen.

  3. Klicken Sie auf den Tab Ereignisse.

    Im Bereich Ereignisliste können Sie den Status des Jobs transcode überwachen. Wie lange es dauert, bis ein Job in die Warteschlange gestellt, geplant und ausgeführt wird, hängt von mehreren Faktoren ab. In diesem Beispiel sollte der Job in etwa 5 Minuten abgeschlossen sein.

  4. Optional: Klicken Sie auf Aktualisieren, um die Seite zu aktualisieren.

Bevor Sie mit dem nächsten Schritt fortfahren, prüfen Sie, ob der Status des Jobs auf Erfolgreich gesetzt ist. Wenn der Job fehlschlägt, lesen Sie stattdessen die Informationen unter Fehlerbehebung.

Codierte Videos ansehen

  1. Rufen Sie in der Google Cloud Console die Seite Buckets auf.

    Buckets aufrufen

  2. Klicken Sie in der Spalte Name auf BUCKET_NAME.

    Die Seite Bucket-Details wird aufgerufen.

  3. Klicken Sie in der Spalte Name auf output/ und dann auf eine der codierten Videodateien.

    Die Seite Objektdetails wird geöffnet.

  4. Klicken Sie auf Vorschau, um das codierte Video anzusehen, und dann auf Wiedergabe.

Bereinigen

Löschen Sie das Projekt von zusammen mit den Ressourcen, damit Ihrem Google Cloud Konto von die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden. Google Cloud

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für diese Anleitung erstellten Projekts.

Projekt löschen: Google Cloud

gcloud projects delete PROJECT_ID

Einzelne Ressourcen löschen

Wenn Sie das aktuelle Projekt weiterhin verwenden möchten, löschen Sie die einzelnen Ressourcen, die in dieser Anleitung verwendet werden.

Job löschen

Nachdem der Batchjob ausgeführt wurde, löschen Sie den Job transcode:

gcloud batch jobs delete transcode \
    --location=us-central1

Die Ausgabe sieht etwa so aus:

Job projects/example-project/locations/us-central1/jobs/transcode deletion is in progress

Wenn Sie einen Job löschen, werden auch die Details und der Verlauf des Jobs gelöscht. Die Logs des Jobs werden am Ende des Aufbewahrungszeitraums für Logs in Cloud Logging automatisch gelöscht.

Bucket löschen

Wenn Sie den in dieser Anleitung verwendeten Cloud Storage-Bucket und seinen Inhalt nicht mehr benötigen, löschen Sie den Bucket:

gcloud storage rm gs://BUCKET_NAME \
    --recursive

Die Ausgabe sieht etwa so aus:

Removing objects:
Removing gs://BUCKET_NAME/input/video-0.mp4#1694788495332395...
Removing gs://BUCKET_NAME/input/video-2.mp4#1694788495296173...
Removing gs://BUCKET_NAME/input/video-1.mp4#1694788495228839...
Removing gs://BUCKET_NAME/output/video-0.mp4#1694788495332395...
Removing gs://BUCKET_NAME/output/video-2.mp4#1694788495296173...
Removing gs://BUCKET_NAME/output/video-1.mp4#1694788495228839...
Removing gs://BUCKET_NAME/transcode.sh#1694788495039427...
  Completed 4/4
Removing Buckets:
Removing gs://BUCKET_NAME/...
  Completed 1/1

Git-Repository löschen

Wenn Sie das Batch-Git-Repository, das Sie für diese Anleitung geklont haben, nicht mehr benötigen, können Sie es löschen:

cd ../../ && rm -rf batch-samples

Nächste Schritte