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 Google Cloud CLI.
Antes de começar
- Se você ainda não tiver um fluxo de trabalho que queira programar, crie e implante um.
-
Enable the Cloud Scheduler API.
Ou, em um terminal, digite o seguinte comando:
gcloud services enable cloudscheduler.googleapis.com
Programar um fluxo de trabalho
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.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.
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.
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
Para programar um fluxo de trabalho, acesse a página Workflows no console do Google Cloud:
Na página Fluxos de trabalho, selecione um fluxo de trabalho para acessar a página de detalhes dele.
Na página Detalhes do fluxo de trabalho, clique em edit Editar.
Na página Editar fluxo de trabalho, selecione Adicionar novo gatilho > Cloud Scheduler.
O painel Criar um job do Scheduler é aberto.
Defina a programação:
No campo Nome, insira um nome para o job do Cloud Scheduler. Precisa ser exclusivo nos jobs da mesma região.
Na lista Região, selecione uma região apropriada. Por exemplo, us-central1.
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 * * * *
.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.
Clique em Continuar.
Configure a execução:
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:
. Se o fluxo de trabalho não usar argumentos de ambiente de execução, aceite o padrão de{"firstName":"Sherlock", "lastName":"Holmes"}
{}
ou deixe o campo em branco.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.
Na lista Conta de serviço, selecione a conta de serviço que você criou anteriormente.
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.
Para atualizar ou excluir o job, edite o fluxo de trabalho:
- Na página Detalhes do fluxo de trabalho, clique em edit Editar.
- Na seção Gatilhos, encontre o job que você quer atualizar ou excluir.
- Clique em edit Editar recurso ou delete Excluir recurso.
gcloud
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á, comous-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.
Liste todos os jobs de um projeto.
gcloud scheduler jobs list
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
- Usar o IAM para controlar o acesso
- Transmitir argumentos de ambiente de execução em uma solicitação de execução
- Tutorial: como programar fluxos de trabalho com o Cloud Scheduler