Este tutorial mostra como agendar uma função HTTP do Cloud Run segmentando um ponto final HTTP no Cloud Scheduler. Use uma função HTTP quando precisar que a sua função tenha um ponto final de URL e responda a pedidos HTTP, como para webhooks.
Em alternativa, se criou uma função CloudEvents, use acionadores de eventos do Eventarc para agendar a resposta da sua função a eventos no seu projeto. O Eventarc pode acionar mensagens num tópico do Pub/Sub, alterações num contentor do Cloud Storage e muito mais. Para mais informações, consulte Tipos de funções do Cloud Run.
O agendamento da execução de uma função do Cloud Run é um exemplo de utilização comum do Cloud Scheduler. Neste tutorial, vai:
Custos
Neste documento, usa os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custos com base na sua utilização projetada,
use a calculadora de preços.
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.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
-
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.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
-
Cloud Run Source Developer (
roles/run.sourceDeveloper
) -
Administrador do Cloud Scheduler (
roles/cloudscheduler.admin
) -
Aceder à vista de registos (
roles/logging.viewAccessor
) -
Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) -
Administrador da conta de serviço (
roles/iam.serviceAccountAdmin
) -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) -
Na Google Cloud consola, aceda à página IAM.
Aceda ao IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email da Conta Google usado para implementar o serviço do Cloud Run.
- Na lista Selecionar uma função, selecione uma função.
- Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
- Clique em Guardar.
- PROJECT_NUMBER com o número do seu Google Cloud projeto.
- PROJECT_ID com o seu Google Cloud ID do projeto.
- PRINCIPAL com a conta à qual está a adicionar a associação. Normalmente, trata-se do endereço de email da Conta Google que é usado para implementar o serviço do Cloud Run.
- ROLE com a função que está a adicionar à conta do implementador.
Na Google Cloud consola, aceda à página Cloud Run.
Clique em Escrever uma função.
Na secção Configurar, faça o seguinte:
- No campo Nome do serviço, introduza um nome para a função.
- Na lista Região, selecione uma região.
- Não modifique o idioma de tempo de execução predefinido.
Para autenticação, selecione Exigir autenticação.
Se estiver ao abrigo de uma política da organização de restrição de domínio que restringe as invocações não autenticadas para o seu projeto, tem de aceder ao serviço implementado conforme descrito em Testar serviços privados.
Para mais informações, consulte o artigo Autentique-se para a invocação.
Aceite as outras predefinições e clique em Criar.
Copie o URL HTTP da função.
Na Google Cloud consola, aceda à página Cloud Scheduler.
Clique em
Criar tarefa.Introduza um nome para a tarefa.
Na lista Região, selecione uma região.
Especifique a frequência da tarefa, usando um formato unix-cron:
30 16 * * 7
Para mais informações, consulte o artigo Formato de tarefa cron e fuso horário.
Na lista Fuso horário, selecione um fuso horário.
Clique em Continuar.
Na lista Tipo de destino, selecione HTTP.
No campo URL, introduza o URL HTTP da função que copiou anteriormente.
Na lista Cabeçalho de autorização, selecione Adicionar token OIDC.
Na lista Conta de serviço, selecione a conta de serviço que criou anteriormente.
No campo Público-alvo, introduza o URL HTTP da função que copiou anteriormente.
Clique em Criar.
Na Google Cloud consola, aceda à página Cloud Scheduler.
Selecione a caixa de verificação da tarefa que criou e clique em Forçar execução.
Quando é invocado inicialmente, o primeiro trabalho criado num projeto pode demorar alguns minutos a configurar e executar.
Após a execução da tarefa, o Estado da última execução deve indicar
Success
.Na Google Cloud consola, aceda à página Cloud Run.
Selecione Filtrar serviços > Tipo de implementação > Função. Isto filtra a lista de serviços para mostrar apenas funções.
Clique no nome da função.
É apresentada a página Detalhes do serviço, que apresenta as métricas do serviço.
Clique no separador Registos.
Deve ver uma entrada de registo semelhante a:
POST 200 146 B 5 ms Google-Cloud-Scheduler https://FUNCTION_NAME
- 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.
Na Google Cloud consola, aceda à página Cloud Scheduler.
Selecione a caixa de verificação junto ao seu trabalho.
Clique em
Eliminar e confirme a eliminação.Na Google Cloud consola, aceda à página Cloud Run.
Selecione a caixa de verificação junto ao seu serviço.
Clique em
Eliminar e confirme a eliminação.Na Google Cloud consola, aceda à página Contas de serviço.
Selecione a caixa de verificação junto à conta de serviço que criou.
Clique em
Eliminar e confirme a eliminação.- Use o Cloud Scheduler para acionar o Cloud Run de acordo com um horário
- Escreva funções CloudEvents para agendar a sua função para responder a eventos no seu projeto.
Tenha em atenção que tem de conceder a função de invocador do Cloud Run porque, nas funções do Cloud Run, as autorizações de invocação estão disponíveis através da gestão do serviço do Cloud Run subjacente.
Funções necessárias
Para receber as autorizações de que precisa para concluir o tutorial, peça ao seu administrador para lhe conceder as seguintes funções da IAM no seu 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.
Conceda as funções
Consola
gcloud
Para conceder as funções de IAM necessárias à sua conta no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Substituir:
Crie uma função HTTP do Cloud Run
Crie uma função HTTP acionada pelo Cloud Scheduler.
Crie uma tarefa do Cloud Scheduler
Crie uma tarefa do Cloud Scheduler que aciona uma ação através de HTTP.
Criou uma tarefa cron que executa a sua função do Cloud Run aos domingos às 16:30.
Execute a sua tarefa do Cloud Scheduler
Agora, pode executar a tarefa que criou.
Valide os resultados nas funções do Cloud Run
Pode verificar se a função do Cloud Run é acionada e executada com êxito pela tarefa cron.
Limpar
Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.