json字符串到azure表中的列

时间:2017-10-27 06:32:12

标签: javascript json azure-table-storage

我使用以下代码将JSON字符串转换为Azure表存储中的列。

'use strict';
// This function is triggered each time a message is received in the IoT hub.
// The message payload is persisted in an Azure storage table

module.exports = function (context, iotHubMessage) 
{
    context.log('Message received: ' + JSON.stringify(iotHubMessage));
    var date = Date.now();
    var deviceData = {
        "partitionKey": Math.floor(date / (24 * 60 * 60 * 1000)) + '',
        "rowKey": date + '',
    };

    Object.keys(iotHubMessage).forEach(function(key) {
        deviceData[key] = iotHubMessage[key];
    });

    context.bindings.outputTable = deviceData;
    context.done();
};

这仍然显示失败如下:

  

2017-10-27T06:27:02.134执行功能时出现异常:   Functions.fnConvertJsonToTable。 Microsoft.Azure.WebJobs.Host:错误   在函数返回后处理参数_binder:   Microsoft.WindowsAzure.Storage:批处理中的元素0返回了一个   意外的响应代码。 2017-10-27T06:27:02.196功能完成   (失败,Id = 7870d04d-4cc2-4474-8ffa-d67add613f6c,持续时间= 145ms)

请建议正确的解决方案。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我尽可能地重新创建了这个,并没有收到任何问题或错误;

module.exports = function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

    if (req.query.name || (req.body && req.body.name)) {

        var message = req.body;
        context.log(message);

        var
            date = Date.now(),
            key = Math.floor(date / (24 * 60 * 60 * 1000));

        context.log(date);
        context.log(key);
        var tableData = {
            "partitionKey": Math.floor(date / (24 * 60 * 60 * 1000)),
            "rowKey": date
        };
        Object.keys(message).forEach(function(key) {
            tableData[key] = message[key];
        });
        context.log(tableData);
        context.bindings.outputTable = tableData;

        context.log("Output Documents Bound");

        context.res = {
            status: 200, /* Defaults to 200 */
            body: message
        };

    }
    else {
        context.res = {
            status: 400,
            body: "Please pass a name on the query string or in the request body"
        };
    }
    context.done();
};

Azure Table with Data

我注意到你在deviceData中的每个变量的末尾都有一个尾随的“+”',但即使是那些我没有得到错误。

这让我想知道您的Azure表存储输出绑定是否有问题。