python-3.x - 如何强制本地 Azure 函数服务器使用 HTTP 2.0 而不是 1.1?

标签 python-3.x azure azure-functions http2 azure-cli

我在 Mac High Sierra 上使用 azure-cli v 2.8.0 和 Python 3.8。我有一个在本地运行的函数应用程序

func start

我用基本文件夹结构定义了我的函数......

my-func/__init__.py
my-func/function.json

其中 function.json 文件如下所示

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "post",
        "get"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "$return"
    }
  ]
}

我有一个看起来像这样的 host.json 文件

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[1.*, 2.0.0)"
  }
}

不确定如何/在哪里指定我想要使用 HTTP 2.0 协议(protocol),但据检查员告诉我,它会出现在我正在使用 http 1.1 的 Angular 应用程序向本地服务器发出的请求中

enter image description here

如何强制我的本地功能服务器使用 HTTP 2.0?

最佳答案

这似乎不可能:HTTP/2 支持是 Azure 中的 Azure Functions 网络基础结构提供的功能,并且在本地不可用。

请参阅this issue在 Azure Functions Core Tools Github 存储库上:开发人员没有提供答案,但他们也没有说出任何与贡献者意见相反的内容。

此外,正如您在 Azure Functions documentation page 中看到的那样,当他们谈论支持本地启动功能的不同选项时,不可能指出 HTTP/2 支持。

如果你看一下source code Azure Functions Core Tools Github repository 中的 StartHostAction.cs ,如果您使用 HTTPS(这是受支持的选项),似乎会在幕后启用 Krestrel。但即使在这种情况下,假设存在任何类型的环境配置属性或类似的东西来启用该功能,HTTP/2 is still unsupported在 MacOS 中。

也许,一种可能是在 Angular 应用程序和函数之间实现某种支持 HTTP/2 的代理,并通过它路由流量。

例如,考虑使用 nghttpx HTTP/2 proxy .

例如,您可以让 nghttpx 在端口 8443 监听 HTTP/2 请求,如果您的函数在端口 7071 上运行,像这样从命令行运行 nghttpx(该示例只是库文档中提供的示例的改编):

nghttpx -f0.0.0.0,8443 -b127.0.0.1,7071 /path/to/server.key /path/to/server.crt

您可以使用 brew 安装它或build it from source .

关于python-3.x - 如何强制本地 Azure 函数服务器使用 HTTP 2.0 而不是 1.1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64828408/

相关文章:

python-3.x - TensorFlow:dataset.train.next_batch 是如何定义的?

asp.net - 使用 Azure AD 保护 ASP.NET Core Web API

azure - 如何将 Azure Functions 部署到内部数据中心?

azure - 如何检查/记录 azure 应用程序服务的部署历史记录?

azure - 来自事件中心的系统日志数据未显示在 Azure 数据资源管理器中

在 Azure Function 中运行 R.NET

Botframework v4 函数

string - BeautifulSoup Div 类返回空

python-3.x - 输入功能不适用于 Vscode 中的 python

python - 如何使用Python计算字符串中单词出现的次数