Desenvolver e criar um job do Go 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.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Como gravar o job de amostra
Para gravar um job no Go, faça o seguinte:
Crie um novo diretório com o nome
jobs
e altere o diretório nele:mkdir jobs cd jobs
No mesmo diretório, crie um arquivo
main.go
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 precisa 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.
Crie um arquivo
go.mod
com o seguinte conteúdo:
Seu código está completo e pronto para ser empacotado em um contêiner.
Criar contêiner de jobs e enviar para o repositório
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.
Use um buildpack para criar o contêiner:gcloud builds submit --pack image=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 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 --project=PROJECT_ID
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 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: