Crie e crie uma tarefa Go 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.
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.
-
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, 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
-
In the Google Cloud console, on the project selector page, select or create 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.
-
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, 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
-
Enable the Cloud Run Admin API and Cloud Build 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.Depois de ativar a API Cloud Run Admin, a conta de serviço predefinida do Compute Engine é criada automaticamente.
- Conceda à conta de serviço do Cloud Build a seguinte função do IAM.
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 ePROJECT_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.
- Reveja os preços do Cloud Run ou estime os custos com a calculadora de preços.
Crie um novo diretório com o nome
jobs
e altere o diretório para este:mkdir jobs cd jobs
No mesmo diretório, crie um ficheiro
main.go
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
incorporada. 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 lhe permite gerar falhas como forma de testar as novas tentativas e gerar registos de erros para que possa ver como são.
Crie um ficheiro
go.mod
com o seguinte conteúdo:Na Google Cloud consola, aceda ao Cloud Run:
Localize a tarefa que quer eliminar na lista de tarefas e clique na caixa de verificação para a selecionar.
Clique em Eliminar. Esta ação termina todas as execuções de tarefas em curso e todas as instâncias de contentores em execução.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Escrever a tarefa de exemplo
Para escrever um trabalho em Go:
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
.
Limpar
Para evitar custos adicionais na sua conta do Google Cloud , elimine todos os recursos implementados com este início rápido.
Elimine o seu repositório
O Cloud Run só cobra pelo tempo de execução da sua tarefa. No entanto, ainda pode ser cobrado pelo armazenamento da imagem do contentor no Artifact Registry. Para eliminar repositórios do Artifact Registry, siga os passos em Eliminar repositórios na documentação do Artifact Registry.
Elimine a sua tarefa
As tarefas do Cloud Run só incorrem em custos quando uma tarefa está a ser executada. Para eliminar a tarefa do Cloud Run, siga um destes passos:
Consola
Para eliminar uma tarefa:
gcloud
Para eliminar uma tarefa, execute o seguinte comando:
gcloud run jobs delete JOB_NAME
Substitua JOB_NAME
pelo nome da tarefa.
Elimine o projeto de teste
A eliminação do seu projeto Google Cloud interrompe a faturação de todos os recursos nesse projeto. Para libertar todos os Google Cloud recursos no seu projeto, siga estes passos:
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: