2017-10-27 1 views
0

아래 코드를 사용하여 JSON 문자열을 Azure 테이블 저장소의 열로 변환했습니다.하늘색 테이블의 json 문자열

2017-10-27T06 : 27 : Functions.fnConvertJsonToTable : 기능 실행 동안 예외 02.134

'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(); 
}; 

이 아직 아래 실패를 나타낸다. Microsoft.Azure.WebJobs.Host : 오류 함수가 반환 된 후 _binder 매개 변수를 처리하는 중 :. Microsoft.WindowsAzure.Storage : 일괄 처리의 요소 0이 예기치 않은 응답 코드 을 반환했습니다. 2017-10-27T06 : 27 : 02.196 기능 (아이디 = 7870d04d-4cc2-4474-8ffa-d67add613f6c, 지속 시간 = 145ms 실패)

올바른 해결책을 제시하세요 을 완료했다. 미리 감사드립니다.

+0

context.log outputTable이 무엇입니까? – Sage

답변

0

나는 이것을 최대한 재현했으며, 문제점이나 오류를받지 못했습니다.

Azure Table with Data

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(); 
}; 

난 당신이 한주의 후행 '+' ''deviceData에서 각 변수의 끝,하지만 심지어 그와 나는 오류가 didnt는.

Azure Table Storage 출력 바인딩에 문제가 있는지 궁금합니다.