Programar e executar um cron job usando a CLI gcloud
Neste guia de início rápido, mostramos como usar a CLI gcloud para realizar algumas operações básicas com o Cloud Scheduler.
Neste guia de início rápido, você fará as seguintes tarefas:
- Crie um tópico do Pub/Sub para configurar como destino do job do Cloud Scheduler.
- Crie um cron job usando o Cloud Scheduler e configure uma programação recorrente para ele.
- Execute o job.
- Verificar se o job foi concluído com sucesso.
O Cloud Scheduler tem um nível gratuito. Não convém executar este guia de início rápido. gerar custos. Para mais informações, consulte 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. 
- 
          Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada. 
- 
        Para inicializar a gcloud CLI, 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
      (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.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Cloud Scheduler, 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. 
- 
          Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada. 
- 
        Para inicializar a gcloud CLI, 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
      (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.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Cloud Scheduler, 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 
- Configure um tópico do Pub/Sub para usar como destino do cron job: - gcloud pubsub topics create cron-topic- Isso criará um tópico chamado - cron-topic.
- Para receber mensagens e ver os resultados do job, crie uma assinatura do Pub/Sub: - gcloud pubsub subscriptions create cron-sub --topic cron-topic
- Receber mensagens de Pub/Sub de uma assinatura: - gcloud pubsub subscriptions pull cron-sub --limit 5- Se nenhuma mensagem for extraída inicialmente, execute o comando novamente. 
- Veja os resultados da execução do job. A saída será semelhante a: - DATA: Hello world! MESSAGE_ID: 5028933846601543 ORDERING_KEY: ATTRIBUTES: DELIVERY_ATTEMPT: ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
- Exclua o cron job. No Cloud Shell ou na máquina em que você instalou a CLI gcloud, execute o comando: - gcloud scheduler jobs delete MY_JOB \ --location="LOCATION"- Substitua: - MY_JOB: o nome do job a ser excluído.
- LOCATION: o local do job. Por padrão, usa o local do aplicativo do App Engine do projeto atual, se houver um aplicativo associado.
 
- Exclua o tópico do Pub/Sub. No Cloud Shell ou na máquina em que você instalou a CLI gcloud, execute o comando: - gcloud pubsub topics delete TOPIC_ID- Substitua - TOPIC_IDpelo ID do tópico do Pub/Sub a ser excluído.
- Exclua a assinatura do Pub/Sub. No Cloud Shell ou na máquina em que você instalou a CLI gcloud, execute o comando: - gcloud pubsub subscriptions delete SUBSCRIPTION_ID- Substitua - SUBSCRIPTION_IDpelo ID da assinatura do Pub/Sub a ser excluída.
- Saiba mais sobre o Cloud Scheduler 
- Saiba como visualizar registros do Cloud Scheduler 
Criar um tópico e uma assinatura do Pub/Sub
Um tópico do Pub/Sub é um recurso em que os editores podem enviar mensagens. Para receber as mensagens publicadas em um tópico, você precisa criar uma inscrição nele.
Criar um cron job usando o Cloud Scheduler
Use o comando gcloud scheduler jobs create pubsub
para configurar uma unidade de trabalho conhecida como cron job, que é enviada a um
destino do Pub/Sub em uma programação recorrente. A programação é especificada
usando um formato baseado em unix-cron. Para mais informações, consulte
Formato de cron job 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"
Você criou um job que envia uma mensagem "Hello world" para o tópico do Pub/Sub às 16h30 aos domingos.
Agora você pode executar o job.
Executar o job
Além de executar de acordo com o cronograma especificado, você pode forçar a execução imediata do job:
gcloud scheduler jobs run my-cron-job --location="us-central1"
Devido a algumas configurações iniciais, a execução do primeiro job criado em um projeto pode levar alguns minutos.
Em seguida, verifique se o tópico do Pub/Sub recebeu a mensagem.
Verifique os resultados no Pub/Sub
Verifique se o tópico do Pub/Sub está recebendo mensagens do seu trabalho.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud e os recursos.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Como alternativa, exclua os recursos criados para este guia de início rápido: