创建和运行示例作业
了解如何在 Batch 上创建和运行示例视频转码作业。
如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示:
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Batch, Compute Engine, Logging and Cloud Storage APIs:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Batch, Compute Engine, Logging and Cloud Storage APIs:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
确保您和作业的服务账号具备必需的 完成本教程的权限。本教程使用的是 服务账号,也就是 Compute Engine 默认服务账号。
-
如需获取完成本教程所需的权限, 请让管理员授予您 以下 IAM 角色:
-
如需创建、查看和删除作业,请执行以下操作:
-
Batch Job Editor (
roles/batch.jobsEditor
) 针对项目 -
Service Account User (
roles/iam.serviceAccountUser
) 针对 Compute Engine 默认服务账号
-
Batch Job Editor (
-
如需创建、查看和删除 Cloud Storage 存储分区,请执行以下操作:
Storage Admin (
roles/storage.admin
) 针对项目 -
如需查看作业的日志,请执行以下操作:
日志查看器 (
roles/logging.viewer
) 针对项目
如需详细了解如何授予角色,请参阅管理访问权限。
-
如需创建、查看和删除作业,请执行以下操作:
-
为了确保 Compute Engine 默认服务账号具备必要的 完成本教程的权限 请让管理员向 Compute Engine 默认服务账号授予 以下 IAM 角色:
-
Batch Agent Reporter (
roles/batch.agentReporter
) 针对项目 -
如需允许作业访问 Cloud Storage 存储分区,请执行以下操作:
Storage Admin (
roles/storage.admin
) 针对项目 -
如需让作业在 Logging 中生成日志,请执行以下操作:
Logs Writer (
roles/logging.logWriter
) 针对项目
-
Batch Agent Reporter (
-
-
将
批处理 Git 代码库到当前目录中:
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
脚本, 该程序会对 3 个视频文件中的 1 个进行编码,并将其上传到 Cloud Storage 存储桶。
监控作业
在 Google Cloud 控制台中,前往作业列表页面。
在作业名称列中,点击转码。
作业详情页面随即打开。
点击事件标签页。
在事件列表部分,您可以监控
transcode
的状态 作业。作业完成排队、调度和运行所需的时间 因多种因素而异。在此示例中, 大约 5 分钟就能完成可选:如需更新页面,请点击
刷新。
在继续下一步之前,请确保已将作业的状态设置为 更改为成功。如果作业失败,请参阅 请改为问题排查。
查看经过编码的视频
在 Google Cloud 控制台中,前往存储桶页面。
在名称列中,点击 BUCKET_NAME。
系统随即会打开存储分区详情页面。
在名称列中,点击
output/,然后点击其中一个 使用经过编码的视频文件对象详情页面随即会打开。
要查看编码后的视频,请点击预览,然后点击
播放。
清理
为避免因本页面中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的 Google Cloud 项目。
删除项目
若要避免产生费用,最简单的方法是删除 教程。
Delete a Google Cloud project:
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 日志保留期限。
删除存储桶
如果您不再需要此 Codelab 中使用的 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 代码库
如果您不再需要克隆的 Batch git 代码库 可以将其删除:
cd ../../ && rm -rf batch-samples
后续步骤
了解如何开始使用 Batch。
详细了解作业创建和执行。