Programar e executar um cron job usando a CLI gcloud

Este guia de início rápido mostra como usar a CLI gcloud para realizar algumas operações básicas usando o Cloud Scheduler.

Neste guia de início rápido, você fará as seguintes tarefas:

  1. Crie um tópico do Pub/Sub para configurar como destino do job do Cloud Scheduler.
  2. Crie um cron job usando o Cloud Scheduler e configure uma programação recorrente para o job.
  3. Execute o job.
  4. 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. resultar em custos. Para mais informações, consulte Preços.

Antes de começar

  1. 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.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with 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_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Scheduler, Pub/Sub APIs:

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with 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_ID with your Google Cloud project name.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Cloud Scheduler, Pub/Sub APIs:

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com

Criar um tópico e uma assinatura do Pub/Sub

Um tópico do Pub/Sub é um recurso para o qual os editores podem enviar mensagens. Para receber as mensagens publicadas em um tópico, você precisa criar uma inscrição nele.

  1. 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.

  2. Para receber mensagens e conferir os resultados do job, crie uma assinatura do Pub/Sub:

    gcloud pubsub subscriptions create cron-sub --topic cron-topic
    

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 e fuso horário do cron job.

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 a programação especificada, 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.

  1. 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.

  2. 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[...]
    

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses 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:

  1. 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 associado.
  2. 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_ID pelo ID do tópico do Pub/Sub a ser excluído.

  3. 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_ID pelo ID da assinatura do Pub/Sub a ser excluída.

A seguir