Azure 函数在本地工作但在上传到 azure 后不起作用

Azure function working in local but not after uploading to azure

我是 azure 函数和 azure 的新手。

我正在使用 azure 函数与 SignalR 服务进行交互,以便在 xamarin 表单应用程序中使用。我从 docs.MSDocs on serverless signalR service

借用了 azure 函数代码

在本地运行良好(测试了文档中提供的 Web 客户端,以及一个简单的控制台应用程序)。

但是当函数被移动到azure。最初我遇到 CORS 错误,修复了这些错误,然后遇到 502。无法调试或找到根本原因。经过几个小时的浏览发现azure本身就提供了signalR serverless连接的模板。

使用模板,使用 signalR 端点配置应用程序设置(我已经为 AzureSignalRConnectionString 设置了应用程序设置)。

仍然面临 502 错误,。 我怎样才能让它工作?或者如何找出失败的根本原因。

协商函数代码:

index.js

module.exports = async function (context, req, connectionInfo) {
    context.res.body = connectionInfo;
};

Function.json

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "methods": [
        "post"
      ],
      "name": "req"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "type": "signalRConnectionInfo",
      "name": "connectionInfo",
      "hubName": "messaage",
      "connectionStringSetting": "AzureSignalRConnectionString",
      "direction": "in"
    }
  ]
}

SignalR 服务需要 URL 才能在您使用 SignalR 服务触发器绑定时访问 Function App。 URL 格式:<Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY>。说明:Function_App_URL可以在Function App的Overview页面找到,API_KEY是由Azure Function生成的。您可以在功能应用程序的应用程序键blade中从signalr_extension获取API_KEY。

如果您对此还很陌生,请按照以下文章一步一步进行操作:https://github.com/aspnet/AzureSignalR-samples/tree/master/samples/BidirectionChat