Criar e executar um job de exemplo

Saiba como criar e executar um exemplo de job de processamento em lote que transcodifica vídeos usando o Batch para Google Cloud.


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. 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. Se você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

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

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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
  8. Install the Google Cloud CLI.

  9. Se você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.

  10. Para inicializar a CLI gcloud, execute o seguinte comando:

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

  12. Verify that billing is enabled for your Google Cloud project.

  13. 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
  14. Verifique se você e a conta de serviço do job têm as permissões necessárias 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 conseguir 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 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 a ela os seguintes papéis do IAM:

  15. Clone o repositório git do Batch no diretório atual:
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
  16. Acesse o diretório transcoding:
    cd batch-samples/transcoding/
  17. Preparar entradas de 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 com 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 seu 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 Google Cloud , acesse a página Lista de jobs.

      Acessar a lista de jobs

    2. Na coluna Nome do job, clique em transcode.

      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 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 a Solução de problemas.

    Visualizar os vídeos codificados

    1. No console 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 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 os recursos.

    Excluir o projeto

    A maneira mais fácil de evitar cobranças é excluir o projeto usado neste tutorial.

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Excluir recursos individuais

    Se você quiser continuar usando o projeto atual, exclua os recursos individuais usados neste tutorial.

    Excluir o job

    Depois que o job do Batch terminar de ser executado, 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
    

    Ao excluir um job, os detalhes e o histórico dele também são excluídos. Os registros do job são excluídos automaticamente no final do período de retenção 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 git do Batch que clonou para este tutorial, exclua-o:

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

    A seguir