如何在Azure Function App v2中将表存储设置为输出?

时间:2019-01-16 13:48:48

标签: javascript azure azure-functions azure-table-storage

我已经使用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.

请在需要更改的地方提出建议。谢谢!

1 个答案:

答案 0 :(得分:0)

您可能已经错过了用于生成扩展程序元数据的软件包。

<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.*" />

添加此行后,重复tutorial中的安装步骤。