Crie e execute um exemplo de tarefa

Saiba como criar e executar uma tarefa de processamento em lote de exemplo que transcodifica vídeos com o Batch para Google Cloud.


Para seguir orientações passo a passo para esta tarefa diretamente na Google Cloud consola, clique em Orientar-me:

Visita guiada


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 estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

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

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • 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:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  8. Install the Google Cloud CLI.

  9. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

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

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • 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:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  14. Certifique-se de que a sua conta e a conta de serviço da tarefa têm as autorizações necessárias para concluir este tutorial. Este tutorial usa a conta de serviço predefinida para uma tarefa, que é a conta de serviço predefinida do Compute Engine.

    • Para receber as autorizações de que precisa para concluir este tutorial, peça ao seu administrador que lhe conceda as seguintes funções do IAM:

      Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

      Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

    • Para garantir que a conta de serviço predefinida do Compute Engine tem as autorizações necessárias para concluir este tutorial, peça ao seu administrador para conceder à conta de serviço predefinida do Compute Engine as seguintes funções do IAM:

  15. Clone o repositório git em lote para o diretório atual:
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
  16. Aceda ao diretório transcoding:
    cd batch-samples/transcoding/
  17. Prepare as entradas de tarefas

    1. Crie um contentor do Cloud Storage:

      gcloud storage buckets create gs://BUCKET_NAME
      

      Substitua BUCKET_NAME por um nome exclusivo a nível global para o contentor.

      O resultado é semelhante ao seguinte:

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

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

      O resultado é semelhante ao seguinte:

      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
      

    Crie um trabalho

    1. Num editor de texto à sua escolha, abra o ficheiro de configuração job.json.

    2. Defina o valor do campo remotePath para o nome do seu contentor 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. Guarde as alterações e feche o editor de texto.

    4. Crie o trabalho transcode:

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

      O resultado é semelhante ao seguinte:

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

      O trabalho executa 3 tarefas em simultâneo. Cada tarefa executa o script transcode.sh, que codifica 1 de 3 ficheiros de vídeo e carrega-o para o contentor do Cloud Storage.

    Monitorize o trabalho

    1. Na Google Cloud consola, aceda à página Lista de tarefas.

      Aceda à lista de trabalhos

    2. Na coluna Nome da tarefa, clique em transcode.

      É apresentada a página Detalhes do trabalho.

    3. Clique no separador Eventos.

      Na secção Lista de eventos, pode monitorizar o estado da tarefa.transcode O tempo que a tarefa demora a terminar a colocação em fila, o agendamento e a execução varia com base em vários fatores. Neste exemplo, pode esperar que a tarefa esteja concluída em aproximadamente 5 minutos.

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

    Antes de avançar para o passo seguinte, certifique-se de que o estado da tarefa está definido como Concluído. Se a tarefa falhar, consulte a secção Resolução de problemas.

    Veja os vídeos codificados

    1. Na Google Cloud consola, aceda à página Recipientes.

      Aceda a Recipientes

    2. Na coluna Nome, clique em BUCKET_NAME.

      É apresentada a página Detalhes do contentor.

    3. Na coluna Nome, clique em output/ e, de seguida, clique num dos ficheiros de vídeo codificados.

      É apresentada a página Detalhes do objeto.

    4. Para ver o vídeo codificado, clique em Pré-visualizar e, de seguida, clique em Reproduzir.

    Limpar

    Para evitar incorrer em custos na sua Google Cloud conta pelos recursos usados nesta página, elimine o Google Cloud projeto com os recursos.

    Elimine o projeto

    A forma mais fácil de eliminar a faturação é eliminar o projeto que usou neste tutorial.

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Elimine recursos individuais

    Se quiser continuar a usar o projeto atual, elimine os recursos individuais usados neste tutorial.

    Elimine a tarefa

    Depois de a tarefa em lote terminar a execução, elimine a tarefa transcode:

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

    O resultado é semelhante ao seguinte:

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

    A eliminação de uma tarefa também elimina os detalhes e o histórico da tarefa. Os registos da tarefa são eliminados automaticamente no final do período de retenção de registos do Cloud Logging.

    Elimine o contentor

    Se já não precisar do contentor do Cloud Storage que usou neste tutorial e do respetivo conteúdo, elimine o contentor:

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

    O resultado é semelhante ao seguinte:

    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
    

    Elimine o repositório Git

    Se já não precisar do repositório git do Batch que clonou para este tutorial, pode eliminá-lo:

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

    O que se segue?