需要有关如何将Python集成到Azure(特别是ASP.NET Web应用程序环境)中的建议

时间:2018-11-04 07:20:53

标签: python azure

需要有关如何将Python集成到Azure ASP.NET Web应用程序环境中的建议。请原谅这个问题,但是我是Azure的新手,我不清楚如何继续。我所研究的每个选项都看起来很有希望,但它们似乎都有自己的问题。以下是更详尽的说明,但要解决的问题是,我拥有一个具有各种功能的Azure帐户,通过App Service运行的成熟的ASP.NET(C#)Web应用程序,我是Azure的新手(但不是Python)和我希望将Python功能添加到整个设置中。简而言之:

  • 我想在此设置中添加Python,主要是为了运行计划的作业,并从ASP.NET Web表单提交中触发Python代码
  • 理想情况下,我想要一个类似于非云设置的解决方案。我知道这听起来很傻,但是我发现云/ Azure功能是细微而不是简单的。我想要一个放置一堆Python脚本,运行,编辑,计划并从ASP.NET触发它们的地方
    • 例如:我创建了一个手动运行的WebJob,从文档中尚不清楚应如何调用它。我刚刚发现您需要使用基本身份验证(以及提供的凭据)进行POST。
    • !此外,Azure CMD不喜欢其中带有“下划线_”的文件!您不能使用带下划线的py文件提交Web Job,也不能使用带下划线的文件写输出
    • !而且,我没有看到该Web作业运行Python 3.6.4(通过扩展安装)的选项。现在它正在使用2.7.15 ...
    • !此外,Azure中的CRON表达式有六个*,而不是五个加命令。同样,还有更多奇怪的事情要担心
    • 我尝试了these instructions,但是网页Web.config文件的更新破坏了ASP.NET网页
  • 理想的最具成本效益的选择


任何信息都将不胜感激

更多详细说明
当前,我有一个通过Azure App Service运行的ASP.NET站点,我想添加Python脚本以及可能的Flask / Rest功能。请注意,我不希望通过Python提供任何内容,并且将很大程度上按计划运行Python脚本,或者从ASP.NET调用它们。事实上,这很重要,我希望在提交Web表单时让ASP.NET触发/运行Python脚本。我意识到,如果我对运行Python的Rest api进行网络调用,将会获得类似的效果。无论如何,我无法确定是否应该

  • 在运行网页的当前App Service中添加Python扩展(我尝试过此操作),或者
    • 我确实通过pip安装了Python 3.6.4和一些软件包
    • These instructions很有用,但是网页Web.config文件的更新破坏了ASP.NET网页
  • 设置将具有所有Python代码的VM(但是,如何在VM中让.NET网页调用Python?)或
  • 使用Azure函数(这是我的新手,必须承认我更喜欢使用旧式Python环境,尽管我看到使用函数的好处。但是如何处理日志和调试?)
  • 或者自定义Windows容器(Docker)呢?
    • 这需要安装VS Code,这是可以的,但是我正在寻找一种解决方案,其他用户可以在尽可能减少干扰的情况下进入


想法是增加Python的使用,尽管正如我所说,我不希望Python提供任何Web内容。它将用于在后台运行和运行计划的作业。将Python功能添加到Azure的最健壮,最希望实现的最简单方法是什么(最重要的是能够从运行.NET的App Service触发/使用Python的方法?)?到目前为止,我已经在线搜索并发现堆栈溢出的有趣发现,但我并不喜欢。

  • 例如,以下链接讨论了如何计划WebJob。我刚刚创建了一个手册,当我调用webhook时,收到消息:“没有为'/ api / triggeredwebjobs / TestPython / run'注册的路由” How to schedule python web jobs on azure
  • Docker方法看起来非常有前途,但是,我正在寻找一个简单的解决方案,因为还有其他人将参与所有这些工作,并且他正在忙于其他项目

    非常感谢你!

1 个答案:

答案 0 :(得分:0)

尽管我愿意接受更多信息,但我找到了解决方案。就像我在帖子中提到的那样,我使用“添加扩展”工具将Python 3.6.4添加到了我的Azure(安装在D:\ home \ python364x64中)。

然后我通过pip安装了一堆软件包,这些软件包安装在D:\ home \ python364x64 \ Lib \ site-packages中。

我在webpages \ Python中创建了一个Python文件夹,用于放置脚本

最后,在ASP.NET中,使用Diagnostics.Process调用在〜\ webpages \ Python \ somecode_2.py中运行我的代码

主要问题是Azure随附安装了Python 2.7.15。出于某种原因,当我执行Python代码时,它使用的是3.4(那个版本来自我)。因此,对于每个脚本,我必须创建一个_2.py版本,在其中只需执行以下操作即可通过Python 3.6.4调用原始脚本。看起来有点讨厌,但可以。因此,就像我说的那样,我将欢迎更多信息,以寻求更好的方法...

-
导入操作系统
os.system(“ D:\ home \ python364x64 \ python.exe SomePython.py {0}”。format(在此处添加参数)