我已经使用JavaScript在azure门户上创建了功能应用,这是index.js
文件中的代码
module.exports = function (context, iotHubMessage) {
context.log('IotMessage ' + JSON.stringify(iotHubMessage));
var date = Date.now();
var partitionKey = Math.floor(date / (24 * 60 * 60 * 1000)) + '';
var rowKey = date + '';
context.bindings.ParamMessageLog = {
"partitionKey": partitionKey,
"rowKey": rowKey,
"MsgCount": iotHubMessage.length,
"data": JSON.stringify(iotHubMessage)
};
context.done();
};
我还按照here
的说明手动安装了存储包 function.json
文件中的片段
{
"type": "table",
"name": "ParamMessageLog",
"tableName": "MessageLog",
"connection": "<storage account name>_STORAGE",
"direction": "out"
}
extensions.csproj
文件的内容如下
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<WarningsAsErrors />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="3.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.0" />
</ItemGroup>
</Project>
问题是当我重新启动应用程序时,我看到以下错误,并且无法运行/测试功能。
Error:
Function (PBDataGateway) Error: The binding type(s) 'eventHubTrigger, table' are not registered. Please ensure the type is correct and the binding extension is installed.
请在需要更改的地方提出建议。谢谢!
答案 0 :(得分:0)
您可能已经错过了用于生成扩展程序元数据的软件包。
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.*" />
添加此行后,重复tutorial中的安装步骤。