Я бы хотел добиться следующего сценария в Azure.
Имитированное устройство IoT отправляет некоторые сообщения в концентратор IoT, и я сохраняю их в CosmosDB. Пока эта штука работает. Для этого я использовал функцию Azure.
Следующим шагом является создание новой функции Azure с триггером подачи изменений из CosmosDB и передача ее в концентратор событий Azure.
Я создал на портале соответствующий function.json
{
"bindings": [
{
"type": "eventHub",
"name": "outputEventHubMessage",
"connection": "dev-euwest_all_EVENTHUB",
"eventHubName": "forwardedmessages",
"direction": "out"
},
{
"type": "cosmosDBTrigger",
"name": "inputDocuments",
"connectionStringSetting": "cdb-euwest_DOCUMENTDB",
"databaseName": "iot",
"collectionName": "messages",
"leaseCollectionName": "forwardedmessages",
"createLeaseCollectionIfNotExists": true,
"direction": "in"
}
],
"disabled": false
}
Тогда у меня есть index.js
module.exports = async function (context, documents) {
if (!!documents && documents.length > 0) {
context.log('Document Id: ', documents[0].id);
}
}
Когда я запускаю его, нет ошибки, но я несм. любой идентификатор документа.
Это мой пример исходного сообщения с использованием устройства Azure IoT Python Azure Python Simulator
{
"_id" : ObjectId("5da47cd2b19c571e106a040c"),
"temperature" : 34.78470937343868,
"humidity" : 79.96610016503291
}
Что я здесь не так делаю? Как правильно подобрать сообщения?