在 Azure Functions 中使用 Python 3

2023-11-26

我的目标是让一些 Python 3 代码作为 Azure Functions 运行,但我无法让 Python 3 工作(我意识到 Azure Functions 中的 python 支持仍处于实验阶段)。

这是我尝试过的。

  1. 创建一个新的函数应用程序 - 我给它起了一个名称,并将其他所有内容保留为默认值。

  2. 创建一个Python Http Trigger函数,代码如下:

    import sys
    import os
    
    response = open(os.environ['res'], 'w')
    response.write(sys.version)
    response.close()    
    

运行该函数给出的输出为"2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)]"正如预期的那样,因为 2.7.8 是 Azure Functions 环境中安装的默认 python 版本。

  1. 然后,我使用 Kudu 将 python 3.6.1 的可嵌入版本上传到 d:\site\tools,如中所述此 Azure 维基页面

当我再次运行该函数时,我得到输出"3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)]"- 所以那里一切都很好。

但是,如果我重新启动函数应用程序(或者只是将其单独放置一段时间以使其关闭),那么一切都会崩溃。运行该函数给出:

{
  "id": "dd7c4462-0d73-49e0-8779-67b15a9bba82",
  "requestId": "ff553805-501d-4ea6-93f6-7bd6fa445a37",
  "statusCode": 500,
  "errorCode": 0,
  "message": "Exception while executing function: Functions.HttpTriggerPython31 -> "
}

日志显示:

2017-11-09T17:37:04.988 Function started (Id=941e5bef-e5e0-4604-8533-dd2a5fcaddf0)
2017-11-09T17:37:05.348 Exception while executing function: Functions.HttpTriggerPython31. Microsoft.Azure.WebJobs.Script: .
2017-11-09T17:37:05.364 Function completed (Failure, Id=941e5bef-e5e0-4604-8533-dd2a5fcaddf0, Duration=363ms)

如果我从 d:\site\tools 中删除 python 文件,则函数将再次开始工作,但以 v2.7.8 运行

但是,我可以从 Kudu 控制台运行 python 3.x:

D:\home\site\tools>python -c "import sys;print(sys.version)"
3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)]

还有其他人在 Azure Functions 中成功运行 Python 3 吗?我需要做什么才能使其正常工作?


目前有一个悬而未决的问题:

  • 添加更改 Python 版本的功能

但作为一种解决方法,一切都可以解释here(所有版权归作者所有:穆拉特·埃肯)

  1. 创建您的函数。
  2. 使用替代 Python 版本安装站点扩展并配置处理程序映射以默认使用该安装。

    2.1.转到“平台功能 > 所有设置 > 扩展 > + 添加

    2.2.安装“Python 3.6.2 x86”扩展。

    2.3.转到“平台功能 > 应用程序设置”

    2.4.添加处理程序映射:
    扩展名:fastCgi
    处理器:D:\home\python362x86\python.exe
    参数:D:\home\python362x86\wfastcgi.py

Azure Function - Handler mapping to use a specific python version

2.5 添加一个名为 WEBSITE_USE_PLACEHOLDER 的应用程序设置并将其值设置为 0。这是解决问题所必需的Azure Functions 问题导致 Python 扩展在函数应用卸载后停止工作.

2.6。保存您的应用程序设置。

这是我的函数的输出"3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)]"

您可以使用自动化这些步骤ARM 模板,这是模板中有趣的部分:

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
  "contentVersion": "1.0.0.0",
  "parameters": {
    //...
  },
  "variables": {
    // ...
  },
  "resources": [
    // ...
    {
      "type": "Microsoft.Web/sites",
      // ...
      "kind": "functionapp",
      "properties": {
        // ...
        "siteConfig": {
          "handlerMappings": [{
            "arguments": "D:\\home\\python362x86\\wfastcgi.py",
            "extension": "fastCgi",
            "scriptProcessor": "D:\\home\\python362x86\\python.exe"
          }]
          // ...
        },
        "resources": [{
          "name": "python362x86",
          "type": "siteextensions",
          "apiVersion": "2016-08-01",
          "properties": {}
          // ...
        }]
        // ...
      }
    }
  ]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Azure Functions 中使用 Python 3 的相关文章

随机推荐

  • 在 64 位计算机上使用 C# 和“BUILD x86”访问注册表

    我有一个应用程序 用 C 编写 在 Windows Server 2008 64 位 上运行 在此应用程序中 我必须检查一些有关 IIS 的注册表项 除其他外 我想访问密钥HKEY LOCAL MACHINE Software Micros
  • UnknownEntityTypeException:无法找到持久化器

    我想在 Wildfly 上使用 JPA 和 Spring 我尝试了这个配置 应用程序属性 spring jmx enabled false spring datasource jndi name java global production
  • 如何从 shell 检测 Mac OS X 中的当前区域设置

    我需要从命令行检测 OS X 中的当前区域设置 在 Linux Unix 上 我可以依赖 LANG 但并不总是设置它 http henrik nyh se 2007 10 displaying utf 8 Correctly in leop
  • 这两个查询是否相同 - GROUP BY 与 DISTINCT?

    这两个查询似乎返回相同的结果 这是巧合还是它们真的是一样的 1 SELECT t ItemNumber SELECT TOP 1 ItemDescription FROM Transactions WHERE ItemNumber t It
  • Android 自定义键盘 - 预览视图受限于父布局

    我创建了一个自定义键盘 它工作正常 除了顶部两行按键的预览视图显示得不够高 它们的垂直位置受到父布局的限制 这些屏幕截图说明了问题 0 和 8 的预览位置很好 但对于 5 和 2 则不然 键 0 的预览显示在按钮上方 键 8 的预览也显示在
  • 设备管理接收器在某些版本中无法工作

    我正在开发一款安全应用程序 可以保护设备免受陌生人的侵害 在我的应用程序中 如果用户尝试使用错误的 PIN 图案 密码解锁设备 我有一个功能应该从前置摄像头捕获图像 我有一个类似这样的代码 public class MyAdminRecei
  • 在 cython 中生成高斯随机数的最有效和可移植的方法是什么?

    我正在编写一个 cython 应用程序 我需要在紧密的嵌套循环中动态生成高斯随机变量 我希望在不引入任何额外依赖项 例如 GSL 的情况下执行此操作 对于我目前能够做到这一点的最小版本均匀随机即时数字 from libc stdlib ci
  • 带连接的 Codeigniter 活动记录更新语句

    这是我试图通过活动记录实现的查询 UPDATE Customer donations cd join Invoices i on i cd id cd cd id set cd amount 4 cd amount verified 1 W
  • Redis 和查询值

    Redis 在概念上与我使用的传统 SQL 数据库不同 我试图弄清楚它是否适合我的项目 我一直在四处寻找 但似乎找不到我的问题的答案 我需要存储一组用户 每个用户都有一个唯一的 ID 和多个与其关联的值 例如他们的姓名 看来我可以简单地将它
  • linq中如何处理空值?

    recordsList ListOfRecords new StudentRecordsBAL GetStudentsList Select q gt new StudentRecords RollNumber q RollNumber C
  • 如何为具有单个可为空成员的案例类编写 Play JSON 写入转换器

    在 Play 2 3 中 我有一个带有单个可选双成员的案例类 case class SomeClass foo Option Double 我需要一个 JSON 写入转换器来将成员处理为可为空 implicit val someClassW
  • 是否可以使用管道发送 ffmpeg 图像?

    我想将图像作为输入发送到 ffmpeg 并且希望 ffmpeg 将视频输出到流 webRtc 格式 我找到了一些信息 根据我的理解 这表明这是可能的 我相信 ffmpeg 可以从管道接收图像 有谁知道这是如何做到的 我想要发送图像作为输入到
  • Thread.Sleep() 不冻结 UI

    首先 我是初学者C 我想做这个 class2 method 79 null RoomItem 0 num num2 0 false true true System Threading Thread Sleep 250 class2 met
  • Gson 并反序列化其中包含数组的对象数组

    我正在尝试使用 Gson 反序列化从我的 web 服务返回的 json 字符串 该结构将返回为TypeDTO where TypeDTO is like int id String name ArrayList
  • python dict str() 函数可靠地对键进行排序吗?

    在Python中 两个字典 1 1 2 2 3 3 and 3 3 2 2 1 1 产生 1 1 2 2 3 3 str 何时执行 我可以依赖这种排序 或者至少依赖这样一个事实 包含相同键 值对的字典在通过 str 函数时会生成相同的字符串
  • x:Bind 中 ElementName 与 DataTemplates 的替代方案

    使用传统的 Binding 语法时 您可以指定元素名称以指向页面上的特定控件 并能够访问其属性 例如 如果页面名为page你可以这样做 Binding ElementName Page Path Name 随着 x Bind 它说的语法 使
  • 如何解决 WPF 设计器错误“类型 {0} 不支持直接内容”。

    以下 XAML 如下 在资源中定义了一个自定义集合 并尝试使用自定义对象填充它
  • 在 iPhone 应用程序中验证用户身份

    我正在为我们的 Web 应用程序开发 HTTP API 最初 API 的主要使用者将是我们正在开发的 iPhone 应用程序 但我在设计它时考虑到了未来的用途 例如其他平台的移动应用程序 我正在尝试确定对用户进行身份验证的最佳方式 以便他们
  • 如何从每组中选择前 5%?

    我有一个这样的示例表 CREATE TABLE TEMP Category VARCHAR 100 Name VARCHAR 100 INSERT INTO TEMP VALUES A John INSERT INTO TEMP VALUE
  • 在 Azure Functions 中使用 Python 3

    我的目标是让一些 Python 3 代码作为 Azure Functions 运行 但我无法让 Python 3 工作 我意识到 Azure Functions 中的 python 支持仍处于实验阶段 这是我尝试过的 创建一个新的函数应用程