处理 Azure 函数 table 绑定中的可选参数

Handling optional parameters in Azure function table bindings

我正在尝试对 Azure 函数使用筛选器,以根据可选路由参数在 table 中查找一行。如果未提供参数或与行不匹配,则应返回默认行。如果我提供匹配值或错误值,这将起作用,我会按预期获得一行。如果我根本不提供任何值,我会收到以下错误:

Exception while executing function: Functions.link. Microsoft.Azure.WebJobs.Extensions.Storage: Object reference not set to an instance of an object.

三个关键位 (AFAIU) 是:

有什么方法可以构造过滤器或路由,以便在未提供可选参数时获得过滤器的第二个子句?或者有更好的方法吗?

我的完整 function.json 看起来像这样:

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "route": "link/{ref?}",
      "direction": "in",
      "name": "req",
      "methods": [
        "get"
      ]
    },
    {
      "name": "emailRule",
      "type": "table",
      "take": "1",
      "filter": "Email eq '{ref}' or Default eq true",
      "tableName": "RedirectRules",
      "connection": "TestStorageConnectionAppSetting",
      "direction": "in"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    }
  ]
}

尝试使用这条路线"route": "link/{ref=''}",这样你就没有空值但总是空字符串