Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Configurar script py no google scheduler

Boa tarde! Estou com muita dificuldade em configurar um job/ scheduler para rodar alguns scripts em python que estão dentro do cloud shell editor e populam tabelas dentro do bigquery, esses scripts autenticam automaticamente pois já estão dentro da conta que estou logada. Já tentei criar função no Cloud Functions, tentei criar um arquivo Shell, e não funciona. Acredito que deve ter uma maneira muito simples de executar isso, mas sou iniciante em GCP e está bem difícil de fazer funcionar. Então se alguém puder me ajudar com um passo a passo dessa execução e se esse realmente é o melhor caminho, eu agradeço.

0 2 232
2 REPLIES 2

Hi, Juliana. I have recently set up a Google Cloud Function and set up a weekly trigger with Cloud Scheduler to call that function.

I am sure you can find some tutorials on YouTube, but here some tricks that will help you:

  • pay attention to the default Cloud Function and try to imitate the structure on your own
  • using python my function looks like this, even though I do not use the request parameter:
def main(request):
    # YOUR CODE
  • remember to add your dependencies on a `requirements.txt` file
  • before setting Cloud Scheduler, assure your function works as expected. So go to the testing tab of the Cloud Function and perform some tests. Also, output/log the variables so that you can find any error. I usually use something like `print(f'Var:{var}')`
  • for the Cloud Scheduler you will need to look for the trigger that look something like `https://{region}-{projectId}.cloudfunctions.net/{cloudFunctionId}` . Select HTTP POST method
  • maybe you will have to set up a Service Account that will run the function

I hope you can succeed

Bom dia! Muito obrigada pela sua ajuda! O caminho que eu estava tentando era criar um tópico no Pub/Sub usando a conta de serviço com o final compute@developer.gserviceaccount.com, depois eu criei a function e no arquivo main.py eu criei uma função principal:

 

 

def bonificacao_lideres(event, context):

 

e atualizei o arquivo requirements.txt com as dependências:

 

functions-framework==3.*
google-auth
google-auth-oauthlib
pandas
datetime
pandas
google-api-python-client
google-cloud-bigquery

 

O problema que está ocorrendo é justamente na function, por algum motivo ela apresenta erros. Eu tenho um json de autenticação no google drive que não está dando certo (já rodei o script pelo cloud shell e está funcionando normalmente). Você acha que o melhor caminho é ir direto com a o método HTTP passando a url da function? O que pode estar errado no código?

O Scheduler está funcionando, não apresenta erros, mas não executa o que está no script.
Agradeço se puder dar uma olhada ou me mandar um modelo de como eu devo incluir os arquivos na function.
Obrigada!