Desenvolver e criar um job do Shell no Cloud Run
Antes de começar
- 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.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
Como gravar o job de amostra
Para gravar um job do Cloud Run que executa um script de shell. faça o seguinte:
Crie um novo diretório com o nome
jobs
e altere o diretório nele:mkdir jobs cd jobs
Crie um arquivo Dockerfile com o seguinte conteúdo:
No mesmo diretório, crie um arquivo
script.sh
para o código do job real. Copie as seguintes linhas de amostra:Os jobs do Cloud Run permitem que os usuários especifiquem o número de tarefas que o job vai executar. Esse exemplo de código mostra como usar a variável de ambiente
CLOUD_RUN_TASK_INDEX
integrada. Cada tarefa representa uma cópia em execução do contêiner. As tarefas geralmente são executadas em paralelo. É útil usar várias tarefas se cada uma delas puder processar independentemente um subconjunto dos dados.Cada tarefa está ciente do índice armazenado na variável de ambiente
CLOUD_RUN_TASK_INDEX
. A variável de ambienteCLOUD_RUN_TASK_COUNT
integrada contém o número de tarefas fornecidas no tempo de execução do job por meio do parâmetro--tasks
.O código mostrado também mostra como repetir tarefas, usando o método integrado
CLOUD_RUN_TASK_ATTEMPT
que contém o número de vezes que essa tarefa foi repetida, começando em 0 para a primeira tentativa e aumentando em 1 a cada nova tentativa, até--max-retries
de dados.O código também permite gerar falhas como uma maneira de testar novas tentativas e gerar registros de erro para que você possa ver como eles são.
Seu código está completo e pronto para ser empacotado em um contêiner.
Criar o código em uma imagem de contêiner e enviá-lo para um registro
Importante: este guia de início rápido pressupõe que você tenha papéis de proprietário ou editor no projeto que está usando para este guia. Caso contrário, consulte as permissões de implantação do Cloud Run, as permissões do Cloud Build e as permissões do Artifact Registry.
Criar com o Dockerfile:gcloud builds submit -t "gcr.io/PROJECT_ID/logger-job"
Criar um job no Cloud Run
Para criar um job usando o contêiner que você acabou de criar, faça o seguinte:
gcloud beta run jobs create job-quickstart \ --image gcr.io/PROJECT_ID/logger-job \ --tasks 50 \ --set-env-vars SLEEP_MS=10000 \ --set-env-vars FAIL_RATE=0.5 \ --max-retries 5 \ --region REGION
em que PROJECT_ID é o ID do projeto e REGION é a região, por exemplo, us-central1
. É possível mudar os vários parâmetros para os valores que você quer usar para fins de teste.
O SLEEP_MS
simula o trabalho, e FAIL_RATE
faz com que X
% das tarefas falhem. Assim, você
pode testar o paralelismo e tentar novamente tarefas com falha.
Executar um job no Cloud Run
Para executar o job que você acabou de criar:
gcloud beta run jobs execute job-quickstart
Quando a região for solicitada, selecione a região que preferir, por exemplo, us-central1
.
Testar localmente
Execute o job localmente:
docker run --rm -e FAIL_RATE=0.9 -e SLEEP_MS=1000 gcr.io/PROJECT_ID/logger-jobPROJECT_ID é o ID do projeto.
A seguir
Para mais informações sobre como criar um contêiner a partir do código-fonte e enviá-lo para um repositório, consulte: