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:
Antes de começar
- 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.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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 theresourcemanager.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.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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 theresourcemanager.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.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
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 criar, ver e eliminar empregos:
-
Editor de tarefas de lote (
roles/batch.jobsEditor
) no projeto -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço predefinida do Compute Engine
-
Editor de tarefas de lote (
-
Para criar, ver e eliminar contentores do Cloud Storage:
Administrador de armazenamento (
roles/storage.admin
) no projeto -
Para ver registos de tarefas:
Visualizador de registos (
roles/logging.viewer
) no projeto
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 criar, ver e eliminar empregos:
-
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:
-
Batch Agent Reporter (
roles/batch.agentReporter
) no projeto -
Para permitir que as tarefas acedam a contentores do Cloud Storage:
Administrador de armazenamento (
roles/storage.admin
) no projeto -
Para permitir que as tarefas gerem registos no Logging:
Escritor de registos (
roles/logging.logWriter
) no projeto
-
Batch Agent Reporter (
-
-
Clone o
repositório git em lote para o diretório atual:
git clone https://github.com/GoogleCloudPlatform/batch-samples.git
-
Aceda ao diretório
transcoding
:cd batch-samples/transcoding/
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/...
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
Num editor de texto à sua escolha, abra o ficheiro de configuração
job.json
.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" } }
Guarde as alterações e feche o editor de texto.
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.Na Google Cloud consola, aceda à página Lista de tarefas.
Na coluna Nome da tarefa, clique em transcode.
É apresentada a página Detalhes do trabalho.
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.Opcional: para atualizar a página, clique em
Atualizar.Na Google Cloud consola, aceda à página Recipientes.
Na coluna Nome, clique em BUCKET_NAME.
É apresentada a página Detalhes do contentor.
Na coluna Nome, clique em
output/ e, de seguida, clique num dos ficheiros de vídeo codificados.É apresentada a página Detalhes do objeto.
Para ver o vídeo codificado, clique em Pré-visualizar e, de seguida, clique em
Reproduzir.Saiba como começar a usar o Batch.
Saiba mais sobre a criação e a execução de tarefas.
Prepare as entradas de tarefas
Crie um trabalho
Monitorize o trabalho
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
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