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 detalhadas desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. Instale a CLI do Google Cloud.
  3. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  4. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  5. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  6. Ative as APIs Batch, Compute Engine, Logging and Cloud Storage:

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  7. Instale a CLI do Google Cloud.
  8. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  9. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  10. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  11. Ative as APIs Batch, Compute Engine, Logging and Cloud Storage:

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  12. Verifique se você e a conta de serviço do job têm as permissões necessárias para concluir este tutorial. Neste tutorial, usamos 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, peça ao administrador para conceder a você os seguintes papéis do IAM:

      Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

      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 repositório git em lote (link em inglês) 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 do job

  1. Crie um bucket do Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME
    

    Substitua BUCKET_NAME por um nome globalmente exclusivo para o bucket.

    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 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 job transcode. 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 5 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 em um dos arquivos de vídeo codificados.

    A página Detalhes do objeto é aberta.

  4. Para ver o vídeo codificado, clique em Visualizar e, em seguida, em Reproduzir.

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 evitar cobranças é excluindo o projeto usado neste tutorial.

Exclua um projeto do Google Cloud:

gcloud projects delete PROJECT_ID

Excluir recursos individuais

Para continuar usando o projeto atual, exclua os recursos individuais usados neste tutorial.

Excluir o job

Após a conclusão da execução do job do Batch, 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 git

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

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

A seguir