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 Google Cloud console ou usando a Google Cloud CLI.

Antes de começar

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

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

    Ativar a 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 Google Cloud projeto.
    • 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 registro de chamadas, configure registro de chamadas na página Workflows no Google Cloud console. Para mais detalhes, consulte as etapas a seguir.

    Console

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

      Acessar fluxos de trabalho

    2. Na página Workflows, 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. É possível 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 ao 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 será 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 Google Cloud projeto.
      • 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