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:
- Criar um tópico do Pub/Sub para configurar como destino do job do Cloud Scheduler.
- Criar um cron job usando o Cloud Scheduler e configurar uma programação recorrente para o job.
- Executar o job.
- Verificar se o job foi concluído com sucesso.
O Cloud Scheduler tem um nível sem custo financeiro. 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
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, você precisa do papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto do:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto do que você está criando. -
Selecione o Google Cloud projeto do que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto do.
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative as APIs Cloud Scheduler e Pub/Sub:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (
roles/serviceusage.serviceUsageAdmin), que contém aserviceusage.services.enablepermissão. Saiba como conceder papéis.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com -
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, você precisa do papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto do:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto do que você está criando. -
Selecione o Google Cloud projeto do que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto do.
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative as APIs Cloud Scheduler e Pub/Sub:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (
roles/serviceusage.serviceUsageAdmin), que contém aserviceusage.services.enablepermissão. Saiba como conceder papéis.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com
Funções exigidas
Para conseguir as permissões necessárias a fim de concluir o guia de início rápido, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Administrador do Cloud Scheduler (
roles/cloudscheduler.admin) - Editor do Pub/Sub (
roles/pubsub.editor)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
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.
Configure um tópico do Pub/Sub para usar como destino do cron job:
gcloud pubsub topics create cron-topicIsso criará um tópico chamado
cron-topic.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 the gcloud scheduler jobs create pubsub
comando 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-east1" \
--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-east1"
Observe que, devido a algumas configurações iniciais, a execução do primeiro job criado em um projeto pode levar alguns minutos.
Em seguida, você pode verificar se o tópico do Pub/Sub recebeu a mensagem.
Verificar os resultados no Pub/Sub
Verifique se o tópico do Pub/Sub está recebendo mensagens do job.
Receber mensagens de Pub/Sub de uma assinatura:
gcloud pubsub subscriptions pull cron-sub --limit 5Se nenhuma mensagem for extraída inicialmente, execute o comando novamente.
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 conta do Google Cloud pelos recursos usados nesta página, exclua o Google Cloud projeto do e os recursos.
Excluir um Google Cloud projeto do:
gcloud projects delete PROJECT_ID
Como alternativa, exclua os recursos criados para este guia de início rápido:
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 aplicativo associado.
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_IDSubstitua
TOPIC_IDpelo ID do tópico do Pub/Sub a ser excluído.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_IDSubstitua
SUBSCRIPTION_IDpelo ID da assinatura do Pub/Sub a ser excluída.
A seguir
Saiba mais sobre o Cloud Scheduler
Saiba como visualizar registros do Cloud Scheduler