Programar um fluxo de trabalho usando o Cloud Scheduler

Nesta página, mostramos como usar o Cloud Scheduler para executar um fluxo de trabalho em uma programação específica, como toda segunda-feira às 9h ou a cada 15 minutos. É possível configurar a programação no console do Google Cloud ou usando a CLI do Google Cloud.

Antes de começar

  1. Se você ainda não tiver um fluxo de trabalho que queira programar, crie e implante um.
  2. Enable the Cloud Scheduler API.

    Enable the API

  3. Ou, em um terminal, digite o seguinte comando:
    gcloud services enable cloudscheduler.googleapis.com

Programar um fluxo de trabalho

  1. Crie uma conta de serviço para que o Cloud Scheduler possa fazer solicitações à API Workflows:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

    Substitua SERVICE_ACCOUNT_NAME por um nome que tenha de 6 a 30 caracteres. Ele pode conter caracteres alfanuméricos minúsculos e traços. Depois de criar uma conta de serviço, não é possível alterar o nome dela.

  2. Para permitir que a principal que executará os comandos do Cloud Scheduler atue como uma conta de serviço do Identity and Access Management (IAM), conceda um papel que permita à principal personificar a conta de serviço.

  3. Conceda à nova conta de serviço o papel workflows.invoker para que a conta tenha permissão para acionar o fluxo de trabalho:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role roles/workflows.invoker

    Substitua:

    • PROJECT_ID: o ID do seu projeto do Google Cloud.
    • SERVICE_ACCOUNT_NAME: o nome da conta de serviço que você criou anteriormente.
  4. Use a conta de serviço criada anteriormente para autenticação para criar um job do Cloud Scheduler que acione o fluxo de trabalho.

    Se você estiver aplicando o registro de chamadas, será necessário configurar o registro de chamadas na página Fluxos de trabalho no console do Google Cloud. Para mais detalhes, consulte as etapas a seguir.

    Console

    1. Para programar um fluxo de trabalho, acesse a página Fluxos de trabalho no console do Google Cloud:

      Acessar fluxos de trabalho

    2. Na página Fluxos de trabalho, selecione um fluxo de trabalho para acessar a página de detalhes dele.

    3. Na página Detalhes do fluxo de trabalho, clique em Editar.

    4. Na página Editar fluxo de trabalho, selecione Adicionar novo gatilho > Cloud Scheduler.

      O painel Criar um job do Scheduler é aberto.

    5. Defina a programação:

      1. No campo Nome, insira um nome para o job do Cloud Scheduler. Precisa ser exclusivo nos jobs da mesma região.

      2. Na lista Região, selecione uma região apropriada. Por exemplo, us-central1.

      3. No campo Frequência, especifique um intervalo de tempo definido em um formato unix-cron. Por exemplo, para programar a execução do fluxo de trabalho a cada cinco minutos, digite */5 * * * *.

      4. Na lista Fuso horário, selecione o fuso horário que o Cloud Scheduler usará para interpretar a programação fornecida. Você pode pesquisar por país.

    6. Clique em Continuar.

    7. Configure a execução:

      1. No campo Argumento do fluxo de trabalho, especifique os argumentos de ambiente de execução que serão transmitidos para o fluxo de trabalho antes da execução. Os argumentos precisam estar no formato JSON. Por exemplo: {"firstName":"Sherlock", "lastName":"Holmes"} Se o fluxo de trabalho não usar argumentos de ambiente de execução, aceite o padrão de {} ou deixe o campo em branco.

      2. Na lista Nível de registro de chamadas do fluxo de trabalho, selecione o nível de registro de chamadas que você quer aplicar durante a execução do fluxo de trabalho:

        • Não especificado: nenhum nível de registro foi especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho é aplicado.
        • Somente erros: registra todas as exceções identificadas; ou quando uma chamada é interrompida devido a uma exceção.
        • Todas as chamadas: registre todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respectivos resultados.
        • Sem registros: nenhum registro de chamadas.
      3. Na lista Conta de serviço, selecione a conta de serviço que você criou anteriormente.

    8. Clique em Criar.

      Se você estiver atualizando um fluxo de trabalho, não é necessário reimplantá-lo.

      O job do Cloud Scheduler agora está listado na guia Gatilhos da página Detalhes do fluxo de trabalho.

    9. Para atualizar ou excluir o job, edite o fluxo de trabalho:

      1. Na página Detalhes do fluxo de trabalho, clique em Editar.
      2. Na seção Gatilhos, encontre o job que você quer atualizar ou excluir.
      3. Clique em Editar recurso ou Excluir recurso.

    gcloud

    1. Abra um terminal e digite o seguinte comando:

      gcloud scheduler jobs create http JOB_NAME \
          --schedule="FREQUENCY" \
          --uri="https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_NAME/workflows/WORKFLOW_NAME/executions" \
          --message-body="{\"argument\": \"DOUBLE_ESCAPED_JSON_STRING\"}" \
          --time-zone="TIME_ZONE" \
          --oauth-service-account-email="SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

      Substitua:

      • JOB_NAME: o nome que você está dando ao job do Cloud Scheduler.
      • FREQUENCY: um intervalo de tempo que você escolher, usando o formato unix-cron. Por exemplo, para programar a execução do fluxo de trabalho a cada cinco minutos, digite */5 * * * *.
      • PROJECT_ID: o ID do seu projeto do Google Cloud.
      • REGION_NAME: a região em que seu fluxo de trabalho está, como us-central1.
      • WORKFLOW_NAME: o nome do fluxo de trabalho para que você quer programar a execução.
      • DOUBLE_ESCAPED_JSON_STRING: uma codificação JSON de todos os argumentos que você estiver transmitindo. As aspas duplas dentro da string entre aspas são escapadas usando barras invertidas (\). Por exemplo: --message-body="{\"argument\": \"{\\\"foo\\\": \\\"bar\\\"}\"}"
      • TIME_ZONE: o fuso horário que o Cloud Scheduler usa para interpretar a programação fornecida. Por exemplo: America/New_York.
      • SERVICE_ACCOUNT_NAME: o nome da conta de serviço que você criou anteriormente.
    2. Liste todos os jobs de um projeto.

      gcloud scheduler jobs list

    3. Para excluir um job, siga estas etapas:

      gcloud scheduler jobs delete JOB_NAME

Agora seu fluxo de trabalho será executado de acordo com a frequência que você definiu.

A seguir