问题描述
我是Azure的新手,目前正在研究IoT中心here的快速入门。
到目前为止,将遥测从设备发送到IoT中心并通过后端应用程序读取它的操作仍然有效。
我安装了vs代码扩展,并成功完成了Azure函数here的HTTP触发示例。
在下一步中,我尝试配置IoT中心(事件中心)Azure功能。在本地测试时会导致以下错误:
Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.funcexample'. Microsoft.WindowsAzure.Storage: No valid combination of account information found.
我在Event Hub-compatible endpoint
中添加了IoT中心的local.settings.json
字符串:
{
"IsEncrypted": false,"Values": {
"AzureWebJobsStorage": "Endpoint=sb://.../;SharedAccessKeyName=iothubowner;SharedAccessKey=...;EntityPath=...","FUNCTIONS_WORKER_RUNTIME": "node"
}
}
我注意到SharedAccessKey
至az iot hub policy show --name service --query primaryKey --hub-name {your IoT Hub name}
到Azure门户中的密钥不匹配。这两个键都会导致上述警告。
Edit1:SharedAccessKey
的服务和iothubowner有所不同。
Edit2:我认为我的主要问题与连接字符串有关。需要什么连接字符串以及如何格式化。而且,连接字符串应放在哪个文件/设置中?
这里是其他相关文件(大部分未修改)。 function.json
{
"bindings": [
{
"type": "eventHubTrigger","name": "IoTHubMessages","direction": "in","eventHubName": "samples-workitems","connection": "AzureWebJobsStorage","cardinality": "many","consumerGroup": "$Default"
}
]
}
index.js
module.exports = function (context,IoTHubMessages) {
context.log(`JavaScript eventhub trigger function called for message array: ${IoTHubMessages}`);
IoTHubMessages.forEach(message => {
context.log(`Processed message: ${message}`);
});
context.done();
};
host.json:
{
"version": "2.0","logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,"excludedTypes": "Request"
}
}
},"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle","version": "[2.*,3.0.0)"
}
}
proxies.json:
{
"$schema": "http://json.schemastore.org/proxies","proxies": {}
}
package.json:
{
"name": "funcexample","version": "1.0.0","description": "","scripts": {
"start": "func start","test": "echo \"No tests yet...\""
},"dependencies": {},"devDependencies": {}
}
我想念什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)