Crie uma tarefa Java no Cloud Run
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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Ative a API Cloud Run Admin e a API Cloud Build:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com
Depois de ativar a API Cloud Run Admin, a conta de serviço predefinida do Compute Engine é criada automaticamente.
Crie um novo diretório com o nome
jobs
e altere o diretório para este:mkdir jobs cd jobs
Num diretório de subdiretório denominado
src/main/java/com/example
, crie um ficheiroJobsExample.java
para o código do trabalho real. Copie as seguintes linhas de exemplo para o ficheiro:As tarefas do Cloud Run permitem que os utilizadores especifiquem o número de tarefas que a tarefa deve executar. Este código de exemplo mostra como usar a variável de ambiente
CLOUD_RUN_TASK_INDEX
integrada. Cada tarefa representa uma cópia em execução do contentor. Tenha em atenção que as tarefas são normalmente executadas em paralelo. A utilização de várias tarefas é útil se cada tarefa puder processar independentemente um subconjunto dos seus dados.Cada tarefa tem conhecimento do respetivo índice, armazenado na variável de ambiente
CLOUD_RUN_TASK_INDEX
. A variável de ambienteCLOUD_RUN_TASK_COUNT
incorporada contém o número de tarefas fornecidas no momento da execução do trabalho através do parâmetro--tasks
.O código apresentado também mostra como repetir tarefas, usando a variável de ambiente
CLOUD_RUN_TASK_ATTEMPT
incorporada, que contém o número de vezes que esta tarefa foi repetida, começando em 0 para a primeira tentativa e aumentando 1 para cada repetição sucessiva, até--max-retries
.O código também permite gerar falhas como forma de testar novas tentativas e gerar registos de erros para que possa ver o aspeto dos mesmos.
Crie um ficheiro
pom.xml
com o seguinte conteúdo:Crie um ficheiro
project.toml
com o seguinte conteúdo para criar com a versão Java suportada pelo Buildpack:
Clique para ver as funções necessárias para a conta de serviço do Cloud Build
O Cloud Build usa automaticamente a
conta de serviço predefinida do Compute Engine como a conta de serviço predefinida do Cloud Build para compilar o seu código-fonte e o
recurso do Cloud Run, a menos que substitua este comportamento. Para que o Cloud Build compile as suas origens, peça ao administrador para conceder a função
Cloud Run Builder
(roles/run.builder
) à conta de serviço predefinida do Compute Engine no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Substitua PROJECT_NUMBER
pelo seu Google Cloud
número do projeto e PROJECT_ID
pelo seu Google Cloud
ID do projeto. Para ver instruções detalhadas sobre como encontrar o ID e o número do projeto,
consulte o artigo Criar
e gerir projetos.
A concessão da função de criador do Cloud Run à conta de serviço predefinida do Compute Engine demora alguns minutos a propagar.
Escrever a tarefa de exemplo
Para escrever um trabalho em Java:
O seu código está completo e pronto para ser incluído num contentor.
Crie um contentor de tarefas de compilação, envie-o para o Artifact Registry e implemente-o no Cloud Run
Importante: este início rápido pressupõe que tem funções de proprietário ou editor no projeto que está a usar para o início rápido. Caso contrário, consulte a função de programador de origem do Cloud Run para ver as autorizações necessárias para implementar um recurso do Cloud Run a partir da origem.
Este início rápido usa a implementação a partir da origem, que cria o contentor, carrega-o para o Artifact Registry e implementa a tarefa no Cloud Run:
gcloud run jobs deploy job-quickstart \ --source . \ --tasks 50 \ --set-env-vars SLEEP_MS=10000 \ --set-env-vars FAIL_RATE=0.1 \ --max-retries 5 \ --region REGION \ --project=PROJECT_ID
onde PROJECT_ID é o ID do seu projeto e REGION é a sua região, por exemplo, europe-west1
. Tenha em atenção que pode alterar os vários parâmetros para os valores que quiser usar para fins de teste. SLEEP_MS
simula o trabalho e FAIL_RATE
faz com que X
% das tarefas falhem para que possa experimentar o paralelismo e tentar novamente as tarefas com falhas.
Execute uma tarefa no Cloud Run
Para executar a tarefa que acabou de criar:
gcloud run jobs execute job-quickstart --region REGION
Substitua REGION pela região que usou quando criou e implementou a tarefa, por exemplo, europe-west1
.
O que se segue?
Para mais informações sobre a criação de um contentor a partir do código-fonte e o envio para um repositório, consulte: