Crea y ejecuta un trabajo de ejemplo
Aprende a crear y ejecutar un trabajo de procesamiento por lotes de ejemplo que transcodifica videos con Batch para Google Cloud.
Para seguir la guía paso a paso sobre esta tarea directamente en la consola Google Cloud , haz clic en Guiarme:
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita las APIs de Batch, Compute Engine, Logging y Cloud Storage:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita las APIs de Batch, Compute Engine, Logging y Cloud Storage:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar 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 tengan los permisos necesarios para completar este instructivo. En este instructivo, se usa la cuenta de servicio predeterminada para un trabajo, que es la cuenta de servicio predeterminada de Compute Engine.
-
Si quieres obtener los permisos que necesitas para completar este instructivo, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Para crear, ver y borrar trabajos, haz lo siguiente:
-
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 borrar buckets de Cloud Storage:
Administrador de almacenamiento (
roles/storage.admin) en el proyecto -
Para ver los registros de los trabajos, obtén el rol de Visualizador de registros (
roles/logging.viewer) en el proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
-
Para crear, ver y borrar trabajos, haz lo siguiente:
-
Para asegurarte de que la cuenta de servicio predeterminada de Compute Engine tenga los permisos necesarios para completar este instructivo, pídele a tu administrador que le otorgue los siguientes roles de IAM:
-
Informante del agente por lotes (
roles/batch.agentReporter) en el proyecto -
Para permitir que los trabajos accedan a los buckets de Cloud Storage, haz lo siguiente:
Administrador de almacenamiento (
roles/storage.admin) en el proyecto -
Para permitir que los trabajos generen registros en Logging, sigue estos pasos:
Escritor de registros (
roles/logging.logWriter) en el proyecto
-
Informante del agente por lotes (
-
-
Clona el
repositorio de Git de Batch en el directorio actual:
git clone https://github.com/GoogleCloudPlatform/batch-samples.git
-
Ve al directorio
transcoding:cd batch-samples/transcoding/
Prepara las entradas del trabajo
Crea un bucket de Cloud Storage:
gcloud storage buckets create gs://BUCKET_NAMEReemplaza
BUCKET_NAMEpor un nombre único a nivel global para el bucket.El resultado es similar a lo siguiente:
Creating gs://BUCKET_NAME/...Copia la secuencia de comandos
transcode.shy la carpeta que contiene los archivos de video en tu bucket de Cloud Storage:gcloud storage cp -R transcode.sh input gs://BUCKET_NAMEEl resultado es similar a lo 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
Crea un trabajo
En el editor de texto que prefieras, abre el archivo de configuración
job.json.Configura el valor del campo
remotePathcon el nombre de tu bucket 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 de
transcode:gcloud batch jobs submit transcode \ --config=job.json \ --location=us-central1El resultado es similar a lo siguiente:
Job transcode-7a1654ca-211c-40e8-b0fb-8a00 was successfully submitted. ...El trabajo ejecuta 3 tareas de forma simultánea. Cada tarea ejecuta la secuencia de comandos
transcode.sh, que codifica 1 de 3 archivos de video y lo sube al bucket de Cloud Storage.
Supervisa el trabajo
En la consola de Google Cloud , ve a la página Lista de trabajos.
En la columna Nombre del trabajo, haz clic en transcode.
Se abrirá la página Detalles del trabajo.
Haz clic en la pestaña Eventos.
En la sección Lista de eventos, puedes supervisar el estado del trabajo
transcode. El tiempo que tarda el trabajo en terminar de colocarse en cola, programarse y ejecutarse varía en función de varios factores. En este ejemplo, el trabajo se completará en alrededor de 5 minutos.Opcional: Para actualizar la página, haz clic en Actualizar.
Antes de continuar con el siguiente paso, asegúrate de que el estado del trabajo esté configurado como Completado. Si tu trabajo falla, consulta Solución de problemas.
Ve los videos codificados
En la consola de Google Cloud , ve a la página Buckets.
En la columna Nombre, haz clic en BUCKET_NAME.
Se abrirá la página Detalles del bucket.
En la columna Nombre, haz clic en output/ y, luego, en uno de los archivos de video codificados.
Se abrirá la página Detalles del objeto.
Para ver el video codificado, haz clic en Vista previa y, luego, en Reproducir.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página, borra el proyecto de Google Cloud que tiene los recursos.
Borra el proyecto
La manera más fácil de eliminar la facturación es borrar el proyecto que usaste en este instructivo.
Borra un Google Cloud proyecto:
gcloud projects delete PROJECT_ID
Borra los recursos individuales
Si deseas seguir usando el proyecto actual, borra los recursos individuales que se usaron en este instructivo.
Borra el trabajo
Una vez que finalice la ejecución del trabajo por lotes, borra el trabajo transcode:
gcloud batch jobs delete transcode \
--location=us-central1
El resultado es similar a lo siguiente:
Job projects/example-project/locations/us-central1/jobs/transcode deletion is in progress
Si borras un trabajo, también se borrarán sus detalles y su historial. Los registros del trabajo se borran automáticamente al final del período de retención de registros de Cloud Logging.
Borra el bucket
Si ya no necesitas el bucket de Cloud Storage que usaste en este instructivo ni su contenido, bórralo:
gcloud storage rm gs://BUCKET_NAME \
--recursive
El resultado es similar a lo 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
Borra el repositorio de Git
Si ya no necesitas el repositorio de Git de Batch que clonaste para este instructivo, puedes borrarlo:
cd ../../ && rm -rf batch-samples
¿Qué sigue?
Obtén más información para comenzar a usar Batch.
Obtén más información sobre la creación y ejecución de trabajos.