Membuat dan menjalankan tugas contoh

Pelajari cara membuat dan menjalankan contoh tugas pemrosesan batch yang mentranskode video menggunakan Batch untuk Google Cloud.


Untuk mengikuti panduan langkah demi langkah untuk tugas ini langsung di Google Cloud konsol, klik Pandu saya:

Pandu saya


Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Instal Google Cloud CLI.

  3. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  6. Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.

  7. Aktifkan Batch, Compute Engine, Logging, dan Cloud Storage API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  8. Instal Google Cloud CLI.

  9. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  10. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  11. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  12. Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.

  13. Aktifkan Batch, Compute Engine, Logging, dan Cloud Storage API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  14. Pastikan Anda dan akun layanan tugas memiliki izin yang diperlukan untuk menyelesaikan tutorial ini. Tutorial ini menggunakan akun layanan default untuk tugas, yaitu akun layanan default Compute Engine.

    • Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tutorial ini, minta administrator Anda untuk memberi Anda peran IAM berikut:

      • Untuk membuat, melihat, dan menghapus tugas:
      • Untuk membuat, melihat, dan menghapus bucket Cloud Storage: Storage Admin (roles/storage.admin) di project
      • Untuk melihat log dari tugas: Logs Viewer (roles/logging.viewer) pada project

      Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

      Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

    • Untuk memastikan bahwa akun layanan default Compute Engine memiliki izin yang diperlukan untuk menyelesaikan tutorial ini, minta administrator Anda untuk memberikan peran IAM berikut kepada akun layanan default Compute Engine:

      • Batch Agent Reporter (roles/batch.agentReporter) di project
      • Untuk mengizinkan tugas mengakses bucket Cloud Storage: Storage Admin (roles/storage.admin) di project
      • Agar tugas dapat membuat log di Logging: Logs Writer (roles/logging.logWriter) pada project

  15. Clone repositori git Batch ke direktori saat ini:
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
  16. Buka direktori transcoding:
    cd batch-samples/transcoding/

Menyiapkan input tugas

  1. Membuat bucket Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME
    

    Ganti BUCKET_NAME dengan nama bucket yang unik secara global.

    Outputnya mirip dengan hal berikut ini:

    Creating gs://BUCKET_NAME/...
    
  2. Salin skrip transcode.sh dan folder yang berisi file video ke bucket Cloud Storage Anda:

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

    Outputnya mirip dengan hal berikut ini:

    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
    

Buat tugas

  1. Di editor teks pilihan Anda, buka file konfigurasi job.json.

  2. Tetapkan nilai kolom remotePath ke nama bucket Cloud Storage Anda:

    {
      "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. Simpan perubahan Anda dan tutup editor teks.

  4. Buat tugas transcode:

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

    Outputnya mirip dengan hal berikut ini:

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

    Tugas ini menjalankan 3 tugas secara bersamaan. Setiap tugas menjalankan skrip transcode.sh, yang mengenkode 1 dari 3 file video dan menguploadnya ke bucket Cloud Storage.

Memantau tugas

  1. Di konsol Google Cloud , buka halaman Daftar tugas.

    Buka Daftar tugas

  2. Di kolom Nama tugas, klik transkode.

    Halaman Job details akan terbuka.

  3. Klik tab Events.

    Di bagian Daftar peristiwa, Anda dapat memantau status tugas transcode. Waktu yang diperlukan tugas untuk menyelesaikan antrean, penjadwalan, dan menjalankan berbeda-beda berdasarkan beberapa faktor. Untuk contoh ini, Anda dapat memperkirakan tugas akan selesai dalam waktu sekitar 5 menit.

  4. Opsional: Untuk memperbarui halaman, klik Muat ulang.

Sebelum melanjutkan ke langkah berikutnya, pastikan status tugas ditetapkan ke Succeeded. Jika tugas Anda gagal, lihat Pemecahan masalah.

Melihat video yang dienkode

  1. Di konsol Google Cloud , buka halaman Buckets.

    Buka Bucket

  2. Di kolom Nama, klik BUCKET_NAME.

    Halaman Bucket details akan terbuka.

  3. Di kolom Name, klik output/, lalu klik salah satu file video yang dienkode.

    Halaman Detail objek akan terbuka.

  4. Untuk melihat video yang dienkode, klik Pratinjau, lalu klik Putar.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, hapus project Google Cloud yang berisi resource tersebut.

Menghapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda gunakan dalam tutorial ini.

Menghapus Google Cloud project:

gcloud projects delete PROJECT_ID

Menghapus resource satu per satu

Jika Anda ingin terus menggunakan project saat ini, hapus setiap resource yang digunakan dalam tutorial ini.

Menghapus tugas

Setelah tugas Batch selesai berjalan, hapus tugas transcode:

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

Outputnya mirip dengan hal berikut ini:

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

Menghapus tugas juga akan menghapus detail dan histori tugas. Log tugas akan otomatis dihapus di akhir periode retensi log Cloud Logging.

Menghapus bucket

Jika Anda tidak lagi memerlukan bucket Cloud Storage yang digunakan dalam tutorial ini dan isinya, hapus bucket:

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

Outputnya mirip dengan hal berikut ini:

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

Menghapus repositori git

Jika Anda tidak lagi memerlukan repositori git Batch yang Anda clone untuk tutorial ini, Anda dapat menghapusnya:

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

Langkah berikutnya