Azure Function模板中Blob路径Concat函数未正常执行问题
问题排查与解决方案
问题原因
Azure Functions的Blob输出绑定中,表达式函数的调用语法不符合规范:
- 绑定路径里的
**concat**({metaData.fileName},'')写法错误,Azure会将**concat**视为路径的普通文本,而非函数调用。 - 正确的函数调用语法应该是用
{函数名(参数)}的格式,不需要额外的加粗标记。
修正后的绑定配置
将输出Blob的path字段修改为正确的表达式格式:
{ "bindings": [ { "topicName": "%TOPIC_NAME%", "connection": "SERVICEBUS_CONNECTION_STRING", "name": "vCalcEvent", "subscriptionName": "%LMS_PUBLISH_SUBSCRIPTION_NAME%", "type": "serviceBusTrigger", "direction": "in" }, { "name": "myOutputBlob", "type": "blob", "path": "archive/{DateTime:yyyyMMdd}/{concat({metaData.fileName},'')}_{DateTime:yyyyMMddHHmmss}_{rand-guid}.json", "connection": "LMS_STORAGE_SHAREPOINT_CONNECTION_STRING", "direction": "out" } ], "scriptFile": "../dist/az-func-vc-lms-publish/index.js" }
补充说明
从你提供的实际输出结果[replace(testdata.xlsb,'.xlsb','')]_20230613221813_a4bdd27e-3aa1-4fba-8144-9297f2d39ad来看,可能之前的配置中使用了replace函数但同样存在语法问题。如果你的实际需求是替换文件名后缀,正确的replace函数调用格式应为:
"path": "archive/{DateTime:yyyyMMdd}/{replace({metaData.fileName}, '.xlsb', '')}_{DateTime:yyyyMMddHHmmss}_{rand-guid}.json"
绑定表达式函数的核心规则:
- 所有函数调用必须包裹在
{}内 - 函数参数可以直接引用触发器的绑定数据(如
{metaData.fileName}) - 字符串参数需要用单引号包裹
内容的提问来源于stack exchange,提问作者Adolfo Ruiz Ruiz
相关产品推荐
相关产品推荐

