如何从asp.net Azure应用程序服务调用python脚本?
我在Azure上拥有一个现有的.NET核心/asp.NET应用程序服务。我需要(按需)调用一个python脚本来返回基于自定义用户输入的数据 我似乎不能使用IronPython,因为我需要在CPython中构建的python模块,不幸的是IronPython不支持这些模块 我看到的两个选择是:如何从asp.net Azure应用程序服务调用python脚本?,python,asp.net,azure,Python,Asp.net,Azure,我在Azure上拥有一个现有的.NET核心/asp.NET应用程序服务。我需要(按需)调用一个python脚本来返回基于自定义用户输入的数据 我似乎不能使用IronPython,因为我需要在CPython中构建的python模块,不幸的是IronPython不支持这些模块 我看到的两个选择是: 我可能能够在应用程序服务上安装正确的python版本和库,并从.NET代码调用它。这似乎是不推荐的: 我可以为python脚本创建一个全新的独立应用程序服务,并从.NET应用程序服务中按需调用RESTA
- 我可能能够在应用程序服务上安装正确的python版本和库,并从.NET代码调用它。这似乎是不推荐的:
- 我可以为python脚本创建一个全新的独立应用程序服务,并从.NET应用程序服务中按需调用RESTAPI。这似乎有些过分,并引入了公开开放一个全新服务的问题,这是我不想做的。这似乎还有一个局限性,即Flask不适合生产,因此一次承载多个调用实际上是不可行的
从Azure上的.NET应用程序服务按需调用python脚本的最佳方法是什么?根据我的经验,有两种方法可以在没有IronPython的情况下调用C#中的python脚本
System.Diagnostics.Process
,运行与SO线程相同的命令,通过解析流程标准输出的内容获得结果。简单地说,您可以使用将Python脚本包装为.exe
文件,以避免在Azure应用程序服务上安装Python模块和设置环境变量。然而,考虑到并发性,这并不是一个提高性能的好主意https://.azurewebsites.net/pyapi
可通过HttpClient
从ASP.NET调用。我尝试过这个解决方案,它是有效的注意:由于Azure Web App sandbox的限制,您必须使用
.azurewebsites.net
作为主机名,而不是localhost
或127.0.0.1
根据我的经验,有两种方法可以在没有IronPython的情况下在C#中调用Python脚本
System.Diagnostics.Process
,运行与SO线程相同的命令,通过解析流程标准输出的内容获得结果。简单地说,您可以使用将Python脚本包装为.exe
文件,以避免在Azure应用程序服务上安装Python模块和设置环境变量。然而,考虑到并发性,这并不是一个提高性能的好主意https://.azurewebsites.net/pyapi
可通过HttpClient
从ASP.NET调用。我尝试过这个解决方案,它是有效的注释:由于Azure Web应用程序沙箱的限制,您必须使用<代码> .AzuryStudio.NET/COD>作为主机名,既不<代码>本地主机或<代码> 127.0.0.1 .< /P>如果Python脚本简单,您可以考虑Azure自动化。虽然脚本很简单,但它需要使用的库肯定不简单。如果它不能导入高级库,它将无法工作。这也是我不能使用IronPython的原因。好的,如果在运行手册中有任何问题,你可以告诉我。幸运的是:看起来这确实是Azure自动化的,这不是我正在试图解决的问题,也不会作为点播服务(SaaS)工作。如果Python脚本很简单,你可以考虑Azure自动化。虽然脚本很简单,但它需要使用的库肯定不简单。如果它不能导入高级库,它将无法工作。这也是我不能使用IronPython的原因。好的,如果在运行手册中有任何问题,你可以告诉我。祝你好运:)看起来这只适用于Azure automation,这不是我试图解决的问题,也不会作为一种按需服务(SaaS)工作。