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:

  1. Crie um tópico do Pub/Sub para configurar como destino da tarefa do Cloud Scheduler.
  2. Crie uma tarefa cron com o Cloud Scheduler e configure uma programação recorrente para a tarefa.
  3. Execute a tarefa.
  4. 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

  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. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. 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.

  6. Verify that billing is enabled for your Google Cloud project.

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

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  8. Install the Google Cloud CLI.

  9. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  10. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  11. 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.

  12. Verify that billing is enabled for your Google Cloud project.

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

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  14. 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.

    1. Configure um tópico do Pub/Sub para usar como destino do seu trabalho cron:

      gcloud pubsub topics create cron-topic
      

      Esta ação cria um tópico denominado cron-topic.

    2. 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-topic
      

    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 num horário 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.

    1. Extraia mensagens do Pub/Sub de uma subscrição:

      gcloud pubsub subscriptions pull cron-sub --limit 5
      

      Se não forem extraídas mensagens inicialmente, execute o comando novamente.

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

    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:

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

      Substitua TOPIC_ID pelo ID do tópico do Pub/Sub a eliminar.

    3. 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_ID
      

      Substitua SUBSCRIPTION_ID pelo ID da subscrição do Pub/Sub a eliminar.

    O que se segue?