Beispieljob erstellen und ausführen

Hier erfahren Sie, wie Sie einen Beispieljob zur Videotranscodierung in Batch erstellen und ausführen.


Klicken Sie auf Anleitung, um die Schritt-für-Schritt-Anleitung für diese Aufgabe direkt in der Google Cloud Console auszuführen:

Anleitung


Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Installieren Sie die Google Cloud CLI.
  3. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  4. Google Cloud-Projekt erstellen oder auswählen.

    • Erstellen Sie ein Google Cloud-Projekt:

      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 den Namen Ihres Google Cloud-Projekts.

  5. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  6. Aktivieren Sie die Batch, Compute Engine, Logging and Cloud Storage APIs:

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  7. Installieren Sie die Google Cloud CLI.
  8. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  9. Google Cloud-Projekt erstellen oder auswählen.

    • Erstellen Sie ein Google Cloud-Projekt:

      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 den Namen Ihres Google Cloud-Projekts.

  10. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  11. Aktivieren Sie die Batch, Compute Engine, Logging and Cloud Storage APIs:

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  12. Sie und das Dienstkonto des Jobs müssen die erforderlichen Berechtigungen zum Ausführen dieser Anleitung haben. In dieser Anleitung wird für einen Job ein Standarddienstkonto verwendet. Dies ist das Compute Engine-Standarddienstkonto.

    • Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, damit Sie die Berechtigungen erhalten, die Sie für diese Anleitung benötigen:

      • So können Sie Jobs erstellen, ansehen und löschen:
      • So erstellen, rufen und löschen Sie Cloud Storage-Buckets: Storage-Administrator (roles/storage.admin) für das Projekt
      • So rufen Sie Logs von Jobs auf: Loganzeige (roles/logging.viewer) für das Projekt

      Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

      Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

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

      • Batch Agent Reporter (roles/batch.agentReporter) für das Projekt
      • So lassen Sie Jobs auf Cloud Storage-Buckets zugreifen: Storage-Administrator (roles/storage.admin) für das Projekt
      • So lassen Sie Jobs in Logging Logs generieren: Log-Autor (roles/logging.logWriter) für das Projekt

  13. Klonen Sie das Batch-Git-Repository in das aktuelle Verzeichnis:
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
    
  14. Wechseln Sie in das 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 in 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 in 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 in 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 Events (Ereignisse).

    Im Bereich Ereignisliste können Sie den Status des transcode-Jobs ü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 können Sie davon ausgehen, dass der gesamte Job in etwa 5 Minuten abgeschlossen ist.

  4. Optional: Klicken Sie zum Aktualisieren der Seite auf 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 geöffnet.

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

    Die Seite Objektdetails wird geöffnet.

  4. Wenn Sie sich das codierte Video ansehen möchten, klicken Sie auf Vorschau und dann auf Wiedergabe.

Bereinigen

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

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das in dieser Anleitung verwendete Projekt löschen.

Google Cloud-Projekt löschen:

gcloud projects delete PROJECT_ID

Einzelne Ressourcen löschen

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

Job löschen

Löschen Sie nach Abschluss des Batch-Jobs den transcode-Job:

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

Die Ausgabe sieht in etwa so aus:

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

Beim Löschen eines Auftrags werden auch die Details und der Verlauf des Auftrags gelöscht. Die Logs des Jobs werden am Ende der Aufbewahrungsdauer für Cloud Logging-Logs 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 in 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 für diese Anleitung geklonte Batch-Git-Repository nicht mehr benötigen, können Sie es löschen:

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

Nächste Schritte