יצירה והרצה של משימה לדוגמה
Google Cloudבמאמר הזה מוסבר איך ליצור ולהריץ משימת עיבוד באצווה לדוגמה, שממירה קובצי וידאו באמצעות Batch.
לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים 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 .
מפעילים את ממשקי ה-API של Batch, Compute Engine, Logging ו-Cloud Storage:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים 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 .
מפעילים את ממשקי ה-API של Batch, Compute Engine, Logging ו-Cloud Storage:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
חשוב לוודא שלכם ולחשבון השירות של המשימה יש את ההרשאות הנדרשות כדי להשלים את המדריך הזה. במדריך הזה נעשה שימוש בחשבון שירות שמוגדר כברירת מחדל למשימה, שהוא חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
-
כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
כדי ליצור, להציג ולמחוק משרות:
- הכלי לעריכת משימות באצווה (
roles/batch.jobsEditor) בפרויקט - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בחשבון השירות של Compute Engine שמוגדר כברירת מחדל
- הכלי לעריכת משימות באצווה (
-
כדי ליצור, לראות ולמחוק קטגוריות ב-Cloud Storage: Storage Admin (
roles/storage.admin) בפרויקט -
כדי לראות יומנים ממשימות: מציג היומנים (
roles/logging.viewer) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
-
כדי ליצור, להציג ולמחוק משרות:
-
כדי לוודא שלחשבון השירות שמוגדר כברירת מחדל ב-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
- Batch Agent Reporter (
-
-
משכפלים את
מאגר ה-Git של Batch לספרייה הנוכחית:
git clone https://github.com/GoogleCloudPlatform/batch-samples.git
-
עוברים לספרייה
transcoding:cd batch-samples/transcoding/
הכנת נתוני משרות
יוצרים קטגוריה של Cloud Storage:
gcloud storage buckets create gs://BUCKET_NAMEמחליפים את
BUCKET_NAMEבשם ייחודי בהיקף גלובלי לקטגוריה.הפלט אמור להיראות כך:
Creating gs://BUCKET_NAME/...מעתיקים את סקריפט
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
יצירת משרה
פותחים את קובץ ההגדרות
job.jsonבכלי לעריכת טקסט.מגדירים את הערך בשדה
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" } }שומרים את השינויים וסוגרים את עורך הטקסט.
יוצרים את העבודה
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.
מעקב אחרי המשרה
נכנסים לדף Job list במסוף Google Cloud .
בעמודה שם המשימה, לוחצים על transcode (קידוד מחדש).
ייפתח הדף פרטי המשרה.
לוחצים על הכרטיסייה אירועים.
בקטע רשימת האירועים אפשר לעקוב אחרי הסטטוס של העבודה
transcode. הזמן שנדרש לסיום העבודה לאחר שהיא נוספת לתור, מתוזמנת ומופעלת משתנה בהתאם למספר גורמים. בדוגמה הזו, אפשר לצפות שהעבודה תסתיים תוך כ-5 דקות.אופציונלי: כדי לעדכן את הדף, לוחצים על רענון.
לפני שממשיכים לשלב הבא, מוודאים שהסטטוס של העבודה הוא Succeeded. אם העבודה נכשלת, אפשר לעיין במאמר פתרון בעיות.
צפייה בסרטונים המוצפנים
נכנסים לדף Buckets במסוף Google Cloud .
בעמודה Name (שם), לוחצים על BUCKET_NAME.
הדף Bucket details נפתח.
בעמודה Name (שם), לוחצים על output/, ואז לוחצים על אחד מקובצי הסרטון המקודדים.
הדף Object details נפתח.
כדי לראות תצוגה מקדימה של הסרטון המקודד, לוחצים על תצוגה מקדימה ואז על הפעלה.
הסרת המשאבים
כדי לא לצבור חיובים בחשבון 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