【问题标题】:Options for running Python scripts in Azure在 Azure 中运行 Python 脚本的选项
【发布时间】:2017-08-16 14:47:47
【问题描述】:

我有一个 Python 脚本,它从 Google Analytics 获取数据并将其放入 CSV 文件中。我目前在本地计算机上运行此脚本,但我想在我的公司 Azure 租户中运行该脚本。我可以/应该使用什么 Azure 服务来每天运行此脚本?

【问题讨论】:

    标签: python azure


    【解决方案1】:

    根据您的需要,我建议您在 Web Apps Service 中使用 Web Jobs

    它有两种类型的 Azure Web Jobs 供您选择: 连续触发。 根据您的需要,应该采用触发器

    您可以参考文档here 了解更多详情。此外,here 展示了如何在 WebJobs 中运行任务。

    我创建了一个简单的 Trigger webjob 供您参考。

    第一步:我写了一个 Sample.py 如下:

    我使用python第三方模块virtualenv创建了一个隔离的python环境,并使用pip install requests命令行下载了请求所依赖的libs包。

    ​ 然后将 Sample.py 统一压缩到一个文件夹中,其中包含依赖于您所依赖的请求的 libs 包。

    第 2 步:在 Web 应用服务中创建 webjob。在这里,我选择了Triggered Type并设置了cron表达式0/5 * * * * *,这意味着该作业将每5秒执行一次。

    您将在成功创建后看到 Web Job 列表。

    第 3 步:您可以通过 Logs 按钮查看正在运行的 Web 作业的状态和日志,如下所示:

    【讨论】:

    • activate.bat 中有什么内容(第 1 步,第二张截图)?
    • @Mike 那是 Python 中的 Virtualenv,请看这个文档:virtualenv.pypa.io/en/stable/userguide
    • 是的,应该检查屏幕截图中的路径。我以为你已经为它创建了一个自定义包装器。谢谢
    • 截图地址好像失效了?你会编辑它吗?
    • 使用 Python Runtime 栈需要使用 Linux App 实例,目前不支持 WebJobs docs.microsoft.com/en-us/azure/app-service/webjobs-create
    【解决方案2】:

    除了第一个答案之外,您还可以使用带有计时器的 azure 函数,该计时器基本上是 cronjob 上的脚本,没有完整的机器并通过调用付费。 https://docs.microsoft.com/en-us/azure/azure-functions/functions-overview

    【讨论】:

    • 谢谢,这看起来比 VM 更好,但似乎 Timer 触发器 - 脚本按计划运行所必需的 - 不适用于 Python(仅限 C#、Javascript 和 F# )
    • 值得一提的是,Azure Functions 现在支持 Python 中的计时器触发器
    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 2022-11-03
    相关资源
    最近更新 更多