首页 > 解决方案 > 如何使用 Azure 计时器功能运行 python 脚本?

问题描述

我对 Azure 非常陌生,并且能够生成以下init .py 文件:

import datetime
import logging

import azure.functions as func

def main(mytimer: func.TimerRequest) -> None:

utc_timestamp = datetime.datetime.utcnow().replace(
    tzinfo=datetime.timezone.utc).isoformat()

HubspotIngest() #is this where my function goes? Send help pls.

if mytimer.past_due:
    logging.info('The timer is past due!')

logging.info('Python timer trigger function ran at %s', utc_timestamp)

连同相关的 function.json:

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "mytimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 0 0 * * *"
    }
  ]
}

但不知道在哪里输入我的代码,所以 Azure 知道当计时器触发时要运行什么:

from numpy import dtype
import pandas as pd
import requests
import datetime

def HubspotIngest():
    df = pd.DataFrame()
    print(9)
    api_client = HubSpot(api_key= key)
    x = requests.get('link')
    data = x.json()

    for i in range(0, len(data['objects'])):
        Id = data['objects'][i]['id']
        sent = data['objects'][i]['publishDate']
        From = data['objects'][i]['fromName']
        subject = data['objects'][i]['subject']
        analytics.track('Newsletter', {'datasource': 'hubspot', 'timestamp': datetime.datetime.now(),'id': Id, 'sent':sent, 'from': From, 'subject': subject})
        df2 = {'datasource': 'hubspot', 'id': Id, 'sent':sent, 'from': From, 'subject': subject}
        df = dfappend(df1, ignore_index = True)

感谢您的时间!

标签: pythonazure

解决方案


如果我理解正确,您可以将代码HubspotIngest放入__init__.py

import datetime
import logging
from numpy import dtype
import pandas as pd
import requests
import datetime
import azure.functions as func


def main(mytimer: func.TimerRequest) -> None:
    utc_timestamp = datetime.datetime.utcnow().replace(
        tzinfo=datetime.timezone.utc).isoformat()

    if mytimer.past_due:
        logging.info('The timer is past due!')

    logging.info('Python timer trigger function ran at %s', utc_timestamp)
    HubspotIngest()


def HubspotIngest():
    df = pd.DataFrame()
    print(9)
    api_client = HubSpot(api_key= key)
    x = requests.get('link')
    data = x.json()

    for i in range(0, len(data['objects'])):
        Id = data['objects'][i]['id']
        sent = data['objects'][i]['publishDate']
        From = data['objects'][i]['fromName']
        subject = data['objects'][i]['subject']
        analytics.track('Newsletter', {'datasource': 'hubspot', 'timestamp': datetime.datetime.now(),'id': Id, 'sent':sent, 'from': From, 'subject': subject})
        df2 = {'datasource': 'hubspot', 'id': Id, 'sent':sent, 'from': From, 'subject': subject}
        df = dfappend(df1, ignore_index = True)

推荐阅读