Crear y ejecutar una tarea de ejemplo
Aprende a crear y ejecutar un trabajo de procesamiento por lotes de ejemplo que transcodifica vídeos mediante Batch para Google Cloud.
Para seguir las instrucciones paso a paso de esta tarea directamente en la Google Cloud consola, haga clic en Ayúdame:
Antes de empezar
- 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.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Batch, Compute Engine, Logging and Cloud Storage APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Batch, Compute Engine, Logging and Cloud Storage APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Asegúrate de que tú y la cuenta de servicio del trabajo tengáis los permisos necesarios para completar este tutorial. En este tutorial se usa la cuenta de servicio predeterminada de una tarea, que es la cuenta de servicio predeterminada de Compute Engine.
-
Para obtener los permisos que necesitas para completar este tutorial, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Para crear, ver y eliminar trabajos, sigue estos pasos:
-
Editor de trabajos por lotes (
roles/batch.jobsEditor
) en el proyecto -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la cuenta de servicio predeterminada de Compute Engine
-
Editor de trabajos por lotes (
-
Para crear, ver y eliminar segmentos de Cloud Storage, haz lo siguiente:
Administrador de Storage (
roles/storage.admin
) en el proyecto -
Para ver los registros de los trabajos, haz lo siguiente:
Visualizador de registros (
roles/logging.viewer
) en el proyecto
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
-
Para crear, ver y eliminar trabajos, sigue estos pasos:
-
Para asegurarte de que la cuenta de servicio predeterminada de Compute Engine tiene los permisos necesarios para completar este tutorial, pide a tu administrador que le conceda los siguientes roles de IAM:
-
Reporter de agente de Batch (
roles/batch.agentReporter
) en el proyecto -
Para permitir que los trabajos accedan a los segmentos de Cloud Storage, haz lo siguiente:
Administrador de Storage (
roles/storage.admin
) en el proyecto -
Para permitir que los trabajos generen registros en Logging, haz lo siguiente:
Editor de registros (
roles/logging.logWriter
) en el proyecto
-
Reporter de agente de Batch (
-
-
Clona el
repositorio de Git por lotes en el directorio actual:
git clone https://github.com/GoogleCloudPlatform/batch-samples.git
-
Ve al directorio
transcoding
:cd batch-samples/transcoding/
Crea un segmento de Cloud Storage:
gcloud storage buckets create gs://BUCKET_NAME
Sustituye
BUCKET_NAME
por un nombre único a nivel global para el segmento.El resultado debería ser similar al siguiente:
Creating gs://BUCKET_NAME/...
Copia la secuencia de comandos
transcode.sh
y la carpeta que contiene los archivos de vídeo en tu segmento de Cloud Storage:gcloud storage cp -R transcode.sh input gs://BUCKET_NAME
El resultado debería ser similar al siguiente:
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
Abre el archivo de configuración
job.json
en el editor de texto que prefieras.Asigne al campo
remotePath
el nombre de su segmento de 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" } }
Guarda los cambios y cierra el editor de texto.
Crea el trabajo
transcode
:gcloud batch jobs submit transcode \ --config=job.json \ --location=us-central1
El resultado debería ser similar al siguiente:
Job transcode-7a1654ca-211c-40e8-b0fb-8a00 was successfully submitted. ...
El trabajo ejecuta 3 tareas simultáneamente. Cada tarea ejecuta la secuencia de comandos
transcode.sh
, que codifica uno de los tres archivos de vídeo y lo sube al segmento de Cloud Storage.En la Google Cloud consola, ve a la página Lista de tareas.
En la columna Nombre del trabajo, haz clic en transcodificar.
Se abrirá la página Detalles del trabajo.
Haga clic en la pestaña Eventos.
En la sección Lista de eventos, puede monitorizar el estado del
transcode
trabajo. El tiempo que tarda un trabajo en completar las fases de puesta en cola, programación y ejecución varía en función de varios factores. En este ejemplo, el trabajo se completará en unos 5 minutos.Opcional: Para actualizar la página, haz clic en
Actualizar.En la Google Cloud consola, ve a la página Buckets.
En la columna Nombre, haga clic en BUCKET_NAME.
Se abrirá la página Detalles del segmento.
En la columna Nombre, haz clic en
output/ y, a continuación, en uno de los archivos de vídeo codificados.Se abrirá la página Detalles del objeto.
Para ver el vídeo codificado, haz clic en Vista previa y, a continuación, en
Reproducir.
Preparar las entradas de la tarea
Crear una tarea
Monitorizar la tarea
Antes de continuar con el paso siguiente, comprueba que el estado del trabajo sea Succeeded. Si el trabajo falla, consulta la sección Solución de problemas.
Ver los vídeos codificados
Limpieza
Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.
Eliminar el proyecto
La forma más fácil de evitar que te cobren es eliminar el proyecto que has utilizado en este tutorial.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Eliminar recursos concretos
Si quieres seguir usando el proyecto actual, elimina los recursos que se han utilizado en este tutorial.
Eliminar el trabajo
Una vez que se haya ejecutado la tarea por lotes, elimina la tarea transcode
:
gcloud batch jobs delete transcode \
--location=us-central1
El resultado debería ser similar al siguiente:
Job projects/example-project/locations/us-central1/jobs/transcode deletion is in progress
Si eliminas un trabajo, también se eliminarán sus detalles y su historial. Los registros del trabajo se eliminan automáticamente al final del periodo de conservación de registros de Cloud Logging.
Eliminar el segmento
Si ya no necesitas el segmento de Cloud Storage que has usado en este tutorial ni su contenido, elimínalo:
gcloud storage rm gs://BUCKET_NAME \
--recursive
El resultado debería ser similar al siguiente:
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
Eliminar el repositorio de Git
Si ya no necesitas el repositorio de Git de Batch que clonaste para este tutorial, puedes eliminarlo:
cd ../../ && rm -rf batch-samples