Criar e executar um job de exemplo

Saiba como criar e executar um exemplo de job de transcodificação de vídeo no Batch.


Para seguir as instruções passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


Antes de começar

  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. Confirme se você e a conta de serviço do job têm as permissões para concluir este tutorial. Este tutorial usa a conta de serviço padrão para um job, que é a conta de serviço padrão do Compute Engine.

    • Para receber as permissões necessárias para concluir este tutorial, faça o seguinte: peça ao administrador para conceder a você os seguintes papéis do IAM:

      Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

      Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

    • Para garantir que a conta de serviço padrão do Compute Engine tenha as permissões necessárias para concluir este tutorial, peça ao administrador para conceder à conta de serviço padrão do Compute Engine os seguintes papéis do IAM:

  13. Clone o Coloque o repositório git em lote no diretório atual:
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
  14. Acesse o diretório transcoding:
    cd batch-samples/transcoding/

Preparar entradas de jobs

  1. Crie um bucket do Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME
    

    Substitua BUCKET_NAME por um nome globalmente exclusivo para a do Google Cloud.

    O resultado será assim:

    Creating gs://BUCKET_NAME/...
    
  2. Copie o script transcode.sh e a pasta que contém os arquivos de vídeo para seu bucket do Cloud Storage:

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

    O resultado será assim:

    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
    

Criar um job

  1. Em um editor de texto de sua escolha, abra o arquivo de configuração job.json.

  2. Defina o valor do campo remotePath como o nome do bucket do 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. Salve as alterações e feche o editor de texto.

  4. Crie o job transcode:

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

    O resultado será assim:

    Job transcode-7a1654ca-211c-40e8-b0fb-8a00 was successfully submitted.
    ...
    

    O job executa três tarefas ao mesmo tempo. Cada tarefa executa o script transcode.sh, que codifica um de três arquivos de vídeo e o envia para o do bucket do Cloud Storage.

Monitorar o job

  1. No console do Google Cloud, acesse a página Lista de jobs.

    Acessar a lista de jobs

  2. Na coluna Nome do job, clique em transcodificação.

    A página Detalhes do job será aberta.

  3. Clique na guia Eventos.

    Na seção Lista de eventos, é possível monitorar o status do transcode trabalho. O tempo que o job leva para ser colocado na fila, programado e da execução varia com base em vários fatores. Neste exemplo, o job será concluído em aproximadamente cinco minutos.

  4. Opcional: para atualizar a página, clique em Atualizar.

Antes de prosseguir para a próxima etapa, verifique se o status do job está definido como Concluído. Se o job falhar, consulte Solução de problemas.

Visualizar os vídeos codificados

  1. No console do Google Cloud, acesse a página Buckets.

    Acessar buckets

  2. Na coluna Nome, clique em BUCKET_NAME.

    A página Detalhes do bucket é aberta.

  3. Na coluna Nome, clique em output/ e depois clique em um dos arquivos de vídeo codificados.

    A página Detalhes do objeto é aberta.

  4. Para exibir o vídeo codificado, clique em Visualizar e em Jogar.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.

Exclua o projeto

A maneira mais fácil de eliminar o faturamento é excluir o projeto usado neste tutorial.

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

Excluir recursos individuais

Se quiser continuar usando o projeto atual, exclua o projeto recursos usados neste tutorial.

Excluir o job

Depois que o job em lote terminar a execução, exclua o Job transcode:

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

O resultado será assim:

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

A exclusão de um job também exclui os detalhes e o histórico dele. Os registros do job são excluídos automaticamente no final do Período de armazenamento de registros do Cloud Logging.

Excluir o bucket

Se você não precisar mais do bucket do Cloud Storage usado neste tutorial e do conteúdo dele, exclua o bucket:

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

O resultado será assim:

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

Excluir o repositório do Git

Se você não precisar mais do repositório do git do Batch clonado para este tutorial, exclua-o:

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

A seguir