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 en esta tarea directamente en la consola de Google Cloud, haz clic en Guiarme:

GUIARME


Antes de comenzar

  1. 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.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. 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
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. 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.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. 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
  12. Asegúrate de que tú y la cuenta de servicio del trabajo tengan los permisos necesarios permisos 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 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 mediante roles personalizados o cualquier otro rol predefinido.

    • Para garantizar que la cuenta de servicio predeterminada de Compute Engine tenga permisos para completar este instructivo, solicita a tu administrador que otorgue a la cuenta de servicio predeterminada de Compute Engine el los siguientes roles de IAM:

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

Prepara entradas de trabajo

  1. Crea un bucket de Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME
    

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

    El resultado es similar a este:

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

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

    El resultado es similar a este:

    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. Establece el valor del campo remotePath en 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 a este:

    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 a la bucket de Cloud Storage.

Supervisa el trabajo

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

    Ir a la lista de trabajos

  2. En la columna Nombre del trabajo, haz clic en transcode.

    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 de transcode. el trabajo. 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.

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

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

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.

Delete a Google Cloud project:

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 se haya ejecutado el trabajo por lotes, borra el trabajo transcode:

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

El resultado es similar a este:

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 de la Período de retención de registros de Cloud Logging.

Borra el bucket

Si ya no necesitas el bucket de Cloud Storage que usaste instructivo y su contenido, borra el bucket:

gcloud storage rm gs://BUCKET_NAME \
    --recursive

El resultado es similar a este:

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?