Agende e execute uma tarefa cron com a CLI gcloud
Este início rápido mostra como usar a CLI gcloud para realizar algumas operações básicas com o Cloud Scheduler.
Neste início rápido:
- Crie um tópico do Pub/Sub para configurar como destino da tarefa do Cloud Scheduler.
- Crie uma tarefa cron com o Cloud Scheduler e configure uma programação recorrente para a tarefa.
- Execute a tarefa.
- Verifique se a tarefa foi executada com êxito.
O Cloud Scheduler tem um nível gratuito e a execução deste início rápido não deve incorrer em custos. Para mais informações, consulte a secção 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.
-
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 -
Create or select 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Se estiver a usar um projeto existente para este guia, verifique se tem as autorizações necessárias para concluir este guia. Se criou um novo projeto, já tem as autorizações necessárias.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Scheduler and Pub/Sub APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com -
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 -
Create or select 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Se estiver a usar um projeto existente para este guia, verifique se tem as autorizações necessárias para concluir este guia. Se criou um novo projeto, já tem as autorizações necessárias.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Scheduler and Pub/Sub APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com -
Administrador do Cloud Scheduler (
roles/cloudscheduler.admin) -
Editor do Pub/Sub (
roles/pubsub.editor) Configure um tópico do Pub/Sub para usar como destino do seu trabalho cron:
gcloud pubsub topics create cron-topicEsta ação cria um tópico denominado
cron-topic.Para receber mensagens e ver os resultados da sua tarefa, crie uma subscrição do Pub/Sub:
gcloud pubsub subscriptions create cron-sub --topic cron-topicExtraia mensagens Pub/Sub de uma subscrição:
gcloud pubsub subscriptions pull cron-sub --limit 5Se não forem extraídas mensagens inicialmente, execute o comando novamente.
Veja os resultados da execução da tarefa. O resultado deve ser semelhante ao seguinte:
DATA: Hello world! MESSAGE_ID: 5028933846601543 ORDERING_KEY: ATTRIBUTES: DELIVERY_ATTEMPT: ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]Elimine a tarefa cron. No Cloud Shell ou na máquina onde instalou a CLI gcloud, execute o comando:
gcloud scheduler jobs delete MY_JOB \ --location="LOCATION"Substitua o seguinte:
MY_JOB: o nome da tarefa a eliminar.LOCATION: a localização do trabalho. Por predefinição, usa a localização da app do App Engine do projeto atual se existir uma app associada.
Elimine o tópico Pub/Sub. No Cloud Shell ou na máquina onde instalou a CLI gcloud, execute o comando:
gcloud pubsub topics delete TOPIC_IDSubstitua
TOPIC_IDpelo ID do tópico do Pub/Sub a eliminar.Elimine a subscrição do Pub/Sub. No Cloud Shell ou na máquina onde instalou a CLI gcloud, execute o comando:
gcloud pubsub subscriptions delete SUBSCRIPTION_IDSubstitua
SUBSCRIPTION_IDpelo ID da subscrição do Pub/Sub a eliminar.Saiba mais sobre o Cloud Scheduler
Saiba como ver os registos do Cloud Scheduler
Funções necessárias
Para receber as autorizações de que precisa para concluir este início rápido, peça ao seu administrador que lhe conceda 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.
Crie um tópico e uma subscrição do Pub/Sub
Um tópico Pub/Sub é um recurso para o qual os publicadores podem enviar mensagens. Para receber mensagens publicadas num tópico, tem de criar uma subscrição desse tópico.
Crie uma tarefa cron com o Cloud Scheduler
Use o comando gcloud scheduler jobs create pubsub
para configurar uma unidade de trabalho conhecida como tarefa cron que é enviada para um destino do Pub/Sub numa programação recorrente. O horário é especificado
através de um formato baseado no unix-cron. Para mais informações, consulte o artigo
Formato de tarefa cron e fuso horário.
gcloud scheduler jobs create pubsub my-cron-job \
--schedule="30 16 * * 7" \
--topic=cron-topic \
--location="us-central1" \
--message-body="Hello world"
Criou uma tarefa que envia uma mensagem "Olá, mundo" para o seu tópico do Pub/Sub às 16:30 aos domingos.
Agora, pode executar a tarefa.
Execute a tarefa
Além de ser executado de acordo com a programação especificada, pode forçar a execução imediata da tarefa:
gcloud scheduler jobs run my-cron-job --location="us-central1"
Tenha em atenção que, devido a alguma configuração inicial, a primeira tarefa criada num projeto pode demorar alguns minutos a ser executada.
Em seguida, pode verificar se o seu tópico do Pub/Sub recebeu a mensagem.
Valide os resultados no Pub/Sub
Verifique se o tópico do Pub/Sub está a receber mensagens da tarefa.
Limpar
Para evitar incorrer em custos na sua Google Cloud conta pelos recursos usados nesta página, elimine o Google Cloud projeto com os recursos.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Em alternativa, elimine os recursos que criou para este início rápido: