处理 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) 是:
- http触发路由:
"link/{ref?}"
- Table 过滤器:
"Email eq '{ref}' or Default eq true"
- 端点URL:
https://[subdomain].azurewebsites.net/api/link/(ref)
有什么方法可以构造过滤器或路由,以便在未提供可选参数时获得过滤器的第二个子句?或者有更好的方法吗?
我的完整 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=''}",
这样你就没有空值但总是空字符串
我正在尝试对 Azure 函数使用筛选器,以根据可选路由参数在 table 中查找一行。如果未提供参数或与行不匹配,则应返回默认行。如果我提供匹配值或错误值,这将起作用,我会按预期获得一行。如果我根本不提供任何值,我会收到以下错误:
Exception while executing function: Functions.link. Microsoft.Azure.WebJobs.Extensions.Storage: Object reference not set to an instance of an object.
三个关键位 (AFAIU) 是:
- http触发路由:
"link/{ref?}"
- Table 过滤器:
"Email eq '{ref}' or Default eq true"
- 端点URL:
https://[subdomain].azurewebsites.net/api/link/(ref)
有什么方法可以构造过滤器或路由,以便在未提供可选参数时获得过滤器的第二个子句?或者有更好的方法吗?
我的完整 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=''}",
这样你就没有空值但总是空字符串