יצירה והרצה של עבודת דוגמה

Google Cloudלומדים איך ליצור ולהפעיל משימת עיבוד באצווה לדוגמה, שמתמללת סרטונים באמצעות Batch.


לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :

תראו לי איך


לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  6. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  7. מפעילים את ממשקי ה-API של Batch, ‏ Compute Engine, ‏ Logging ו-Cloud Storage:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  8. התקינו את ה-CLI של Google Cloud.

  9. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  10. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  11. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  12. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  13. מפעילים את ממשקי ה-API של Batch, ‏ Compute Engine, ‏ Logging ו-Cloud Storage:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  14. חשוב לוודא שלכם ולחשבון השירות של המשימה יש את ההרשאות הנדרשות כדי להשלים את המדריך הזה. במדריך הזה נעשה שימוש בחשבון שירות שמוגדר כברירת מחדל למשימה, שהוא חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.

    • כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

      להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

      יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

    • כדי לוודא שלחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine יש את ההרשאות שנדרשות להשלמת המדריך הזה, צריך לבקש מהאדמין להקצות לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine את תפקידי ה-IAM הבאים:

      • Batch Agent Reporter (roles/batch.agentReporter) בפרויקט
      • כדי לאפשר לעבודות גישה לקטגוריות של Cloud Storage: אדמין לניהול אחסון (roles/storage.admin) בפרויקט
      • כדי לאפשר לעבודות ליצור יומנים ב-Logging: Logs Writer (roles/logging.logWriter) on the project

  15. משכפלים את מאגר ה-Git של Batch לספרייה הנוכחית:
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
  16. עוברים לספרייה transcoding:
    cd batch-samples/transcoding/

הכנת קלט של משרות

  1. יוצרים קטגוריה של Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME
    

    מחליפים את BUCKET_NAME בשם ייחודי בהיקף גלובלי לקטגוריה.

    הפלט אמור להיראות כך:

    Creating gs://BUCKET_NAME/...
    
  2. מעתיקים את סקריפט transcode.sh ואת התיקייה שמכילה את קובצי הווידאו לקטגוריה של Cloud Storage:

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

    הפלט אמור להיראות כך:

    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
    

יצירת משרה

  1. פותחים את קובץ ההגדרות job.json בכלי לעריכת טקסט.

  2. מגדירים את הערך בשדה remotePath לשם של קטגוריה של Cloud Storage:

    {
      "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. שומרים את השינויים וסוגרים את עורך הטקסט.

  4. יוצרים את העבודה transcode:

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

    הפלט אמור להיראות כך:

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

    העבודה מריצה 3 משימות בו-זמנית. כל משימה מריצה את הסקריפט transcode.sh, שמקודד קובץ וידאו אחד מתוך שלושה ומעלה אותו לקטגוריה של Cloud Storage.

מעקב אחרי המשרה

  1. נכנסים לדף Job list במסוף Google Cloud .

    מעבר לרשימת המשימות

  2. בעמודה Job name (שם המשימה), לוחצים על transcode (קידוד מחדש).

    ייפתח הדף פרטי המשרה.

  3. לוחצים על הכרטיסייה אירועים.

    בקטע רשימת האירועים אפשר לעקוב אחרי הסטטוס של העבודה transcode job. הזמן שנדרש לעיבוד המשימה, החל מהוספתה לתור ועד לסיום ההרצה שלה, משתנה בהתאם למספר גורמים. בדוגמה הזו, אפשר לצפות שהעבודה תסתיים תוך כ-5 דקות.

  4. אופציונלי: כדי לעדכן את הדף, לוחצים על רענון.

לפני שממשיכים לשלב הבא, מוודאים שהסטטוס של העבודה הוא Succeeded. אם העבודה נכשלת, אפשר לעיין במאמר פתרון בעיות.

צפייה בסרטונים המוצפנים

  1. נכנסים לדף Buckets במסוף Google Cloud .

    כניסה לדף Buckets

  2. בעמודה Name (שם), לוחצים על BUCKET_NAME.

    הדף Bucket details נפתח.

  3. בעמודה שם, לוחצים על output/‎, ואז לוחצים על אחד מקובצי הסרטון המקודדים.

    הדף Object details נפתח.

  4. כדי לראות תצוגה מקדימה של הסרטון המקודד, לוחצים על תצוגה מקדימה ואז על הפעלה.

הסרת המשאבים

כדי לא לצבור חיובים בחשבון על המשאבים שבהם השתמשתם בדף הזה, אתם צריכים למחוק את הפרויקט יחד עם המשאבים. Google Cloud Google Cloud

מחיקת הפרויקט

הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שבו השתמשתם במדריך הזה.

כדי למחוק Google Cloud פרויקט:

gcloud projects delete PROJECT_ID

מחיקת משאבים בודדים

אם רוצים להמשיך להשתמש בפרויקט הנוכחי, צריך למחוק את המשאבים הספציפיים שבהם השתמשתם במדריך הזה.

מחיקת המשימה

אחרי שהרצתם את משימת האצווה, מוחקים את המשימה transcode:

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

הפלט אמור להיראות כך:

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

מחיקת משימה תגרום גם למחיקת הפרטים וההיסטוריה שלה. היומנים של העבודה נמחקים אוטומטית בסוף תקופת השמירה של היומנים ב-Cloud Logging.

מחיקת הקטגוריה

אם אתם לא צריכים יותר את קטגוריית Cloud Storage שבה השתמשתם במדריך הזה ואת התוכן שלה, אתם יכולים למחוק את הקטגוריה:

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

הפלט אמור להיראות כך:

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

אם אתם לא צריכים יותר את מאגר ה-git של Batch ששיכפלתם לצורך המדריך הזה, אתם יכולים למחוק אותו:

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

המאמרים הבאים