You need to enable JavaScript to run this app. 如何使用Azure定时器函数触发运行自定义Python脚本?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Azure定时器函数触发运行自定义Python脚本?

Azure Python定时器触发器自定义代码放置方案

你在main函数里标注#is this where my function goes?的位置是完全正确的,只要补全自定义函数的导入/定义、修正代码错误即可正常触发执行。

完整可运行的__init__.py示例

import datetime
import logging
import os
import pandas as pd
import requests
# 补全缺失的依赖导入
from hubspot import HubSpot
# 根据你实际使用的analytics库补充对应导入
import analytics

import azure.functions as func

# 自定义业务函数统一放在main函数外
def HubspotIngest():
    df = pd.DataFrame()
    print(9)
    # 密钥从Azure函数的环境变量读取,不要硬编码
    hubspot_key = os.getenv("HUBSPOT_API_KEY")
    api_client = HubSpot(api_key=hubspot_key)
    x = requests.get('替换为你实际的请求地址')
    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}
        # 修正原有笔误:df1改为df2,dfappend改为df.append
        df = df.append(df2, ignore_index = True)

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

    # 此处调用自定义业务函数的位置完全正确
    HubspotIngest()

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

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

配套配置要求

  • 你现有的function.json配置可正常使用,当前设置的触发规则为每天UTC时间0点执行,如果需要调整触发时间直接修改schedule的cron表达式即可。
  • 必须在函数项目根目录的requirements.txt里添加所有用到的依赖,示例:
azure-functions
pandas
requests
hubspot-api-client
# 补充你用到的analytics相关依赖包名
  • 密钥HUBSPOT_API_KEY需要在Azure门户的函数应用→配置→应用程序设置里添加,不要直接写在代码里避免泄露。

原有代码的错误修正点

  • 原来的dfappend(df1, ignore_index = True)是笔误,正确写法是df.append(df2, ignore_index = True)
  • 缺失HubSpot、analytics相关的依赖导入
  • 重复导入了datetime包
  • 存在密钥硬编码风险

内容的提问来源于stack exchange,提问作者NandaPanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 20:45:04