У меня есть функция Azure, которая запускается концентратором событий.Вот фрагмент моего файла index.js.
module.exports = async function (context, eventHubMessages) {
context.log(`JavaScript eventhub trigger function called for message array ${eventHubMessages}`);
context.log('Event Hub Trigger: ', JSON.stringify(eventHubMessages));
const product = context.bindingData.propertiesArray[0].productFilter;
eventHubMessages.forEach(message =>
{
deviceId = message.deviceId;
context.log('For each message:', JSON.stringify(eventHubMessages));
context.log('Device ID is', deviceId);
});
context.log('Output Device ID is', deviceId);
if ( product == 'prod1') {
context.bindings.outputprod1 = eventHubMessages;
} else if ( product == 'prod2') {
context.bindings.prod2 = eventHubMessages;
else {
context.log("Product not found - " + product);
}
return context.done();
};
Во входящем сообщении есть свойство deviceId.Я хочу установить выходной путь BLOB-объекта на основе этого значения.
Вот мой файл function.json.
{
"bindings": [
{
"type": "blob",
"name": "outputprod1",
"path": "eventtoblobcontainer/prod1/{datetime:yyyy}/{datetime:MM}/{datetime:dd}/prod1_{rand-guid}",
"connection": "phiotrawdatadev_STORAGE",
"direction": "out"
},
{
"type": "blob",
"name": "outputBlobprod2",
"path": "eventtoblobcontainer/prod2/{datetime:yyyy}/{datetime:MM}/{datetime:dd}/prod2_{rand-guid}",
"connection": "phiotrawdatadev_STORAGE",
"direction": "out"
}
]
}
Если я добавлю {deviceId} в путь, функция выдаст мне сообщение об ошибкеНет значения для именованного параметра 'deviceId'.Я попытался использовать возвращаемое значение функции в выходной привязке, но это дало мне ту же ошибку.Как мне этого добиться?