Azure持久功能(Node.JS)错误“ Microsoft.Azure.WebJobs.Host:无法将参数'data'绑定为类型'System.String'。”

时间:2019-12-12 05:46:19

标签: javascript node.js azure azure-functions azure-durable-functions

我正在Azure Function App平台上运行一组持久函数(由Node.js编写)。
节点版本为10,函数运行时为2。
其中一些配置了触发器:

  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "post"
      ]
    },


{
  "bindings": [
    {
      "name": "name",
      "type": "activityTrigger",
      "direction": "in"
    }
  ],
  "scriptFile": "../.../index.js"
}

从昨天开始,该函数在尝试打开它时显示以下错误:

Function (func4/Create) Error: Microsoft.Azure.WebJobs.Host: Error indexing method  
 'Functions.Create'. Microsoft.Azure.WebJobs.Host: Can't bind parameter 'data' to type  
 'System.String'.
    Session Id: 9b3d1a97c12b4c86b751b08ab17c06da

Timestamp: 2019-12-11T19:04:49.345Z

我不知道是什么原因引起的。
Kudu日志也充满了相同的错误,但没有详细信息。

已更新(依赖项):

 "dependencies": {
    "axios": "^0.19.0",
    "durable-functions": "^1.3.1",
    "moment": "^2.24.0",
    "momentjs": "^2.0.0",
    "request": "^2.88.0",
    "request-promise-native": "^1.0.8",
    "xml-js": "^1.6.11"
  },
  "devDependencies": {
    "@azure/functions": "^1.0.2-beta2",
    "typescript": "^3.3.3"
  }

2 个答案:

答案 0 :(得分:0)

请注意, Azure durable functions 不支持 typescript

如果使用JavaScript,它可以支持Azure持久功能。

看看Offical doc

enter image description here

答案 1 :(得分:0)

问题出在data名词中,该名词似乎是Azure Functions中的保留字。
当我将名称从data更改为另一个名称(此处为context)时,错误消失了:

{
  "bindings": [
    {
      "name": "context",
      "type": "activityTrigger",
      "direction": "in"
    }
  ],
  "scriptFile": "../dist/Container/index.js"
}

不幸的是,此信息在任何地方都没有记录,当尝试检验不同的假设时,我得到了提示。