Crea y ejecuta un trabajo de ejemplo

Aprende a crear y ejecutar un trabajo de transcodificación de video de ejemplo en Batch.


Para seguir la guía paso a paso sobre esta tarea de forma directa en la consola de Google Cloud, haz clic en Guiarme:

Guiarme


Antes de comenzar

  1. 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.
  2. Instala Google Cloud CLI.
  3. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  4. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  6. Habilita las APIs de Batch, Compute Engine, Logging and Cloud Storage:

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  7. Instala Google Cloud CLI.
  8. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  9. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  10. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  11. Habilita las APIs de Batch, Compute Engine, Logging and Cloud Storage:

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  12. 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:

      Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

      Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.

    • 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 a la cuenta de servicio predeterminada de Compute Engine:

  13. Clona el repositorio de Git por lotes en el directorio actual:
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
    
  14. Ve al directorio transcoding:
    cd batch-samples/transcoding/
    

Prepara las entradas de los trabajos

  1. Crea un bucket de Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME
    

    Reemplaza BUCKET_NAME por un nombre global único para el bucket.

    El resultado es similar al siguiente:

    Creating gs://BUCKET_NAME/...
    
  2. Copia la secuencia de comandos transcode.sh y la carpeta que contiene los archivos de video en el bucket de Cloud Storage:

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

    El resultado es 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
    

Crea un trabajo

  1. En el editor de texto que prefieras, abre el archivo de configuración job.json.

  2. Configura el valor del campo remotePath con 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"
      }
    }
    
  3. Guarda los cambios y cierra el editor de texto.

  4. Crea el trabajo transcode:

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

    El resultado es similar al 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

  1. En la consola de Google Cloud, ve a la página Lista de trabajos.

    Ir a Lista de trabajos

  2. En la columna Nombre del trabajo, haz clic en Transcodificación.

    Se abrirá la página Detalles del trabajo.

  3. 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 unos 5 minutos.

  4. Para actualizar la página, haz clic en Actualizar (opcional).

Antes de continuar con el siguiente paso, asegúrate de que el estado del trabajo sea Sin errores. Si tu trabajo falla, consulta Solución de problemas.

Ve los videos codificados

  1. En la consola de Google Cloud, ve a la página Buckets.

    Ir a Buckets

  2. En la columna Nombre, haz clic en BUCKET_NAME.

    Se abrirá la página Detalles del bucket.

  3. 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.

  4. Para ver el video codificado, haz clic en Vista previa y, luego, en Reproducir.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página, borra el proyecto de 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 proyecto de Google Cloud:

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

Cuando el trabajo por lotes termine de ejecutarse, borra el trabajo transcode:

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

El resultado es similar al siguiente:

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

Si borras un trabajo, también se borrarán los detalles y el historial de este. Los registros del trabajo se borran de forma automática 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 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

Borra el repositorio de Git

Si ya no necesitas el repositorio de Git de Batch que clonaste para este instructivo, puedes borrarlo con el siguiente comando:

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

¿Qué sigue?