1
DynamoDB에서 Lambda AWS를 사용하여 데이터를 가져옵니다. 나는 안드로이드 응용 프로그램에서 람다로 보내 내 매개 변수에 매개 변수를 추가하려고 :Node.js- DynamoDB AWS- 파라미터 검색
if (typeof event.high_lat != "undefined") {
params.ExpressionAttributeValues = event.high_lat;
}
을하지만 오류가 발생합니다 :
[InvalidParameterType: Expected params.ExpressionAttributeValues to be a map]
message: 'Expected params.ExpressionAttributeValues to be a map',
누구나 그것을 해결하는 방법을 알고?
내 전체 코드 : 안드로이드 응용 프로그램에서 전송 된 코드의
var AWS = require('aws-sdk');
var db = new AWS.DynamoDB();
exports.handler = function(event, context) {
var params = {
TableName: "Events", //"StreamsLambdaTable",
ProjectionExpression: "ID, description, endDate, imagePath, locationLat, locationLon, #nm, startDate, #tp, userLimit", //specifies the attributes you want in the scan result.
FilterExpression: "locationLon between :lower_lon and :higher_lon and locationLat between :lower_lat and :higher_lat",
ExpressionAttributeNames: {
"#nm": "name",
"#tp": "type",
},
ExclusiveStartKey: {
"ID": {"S": event.LastEvaluatedKey}
},
ExpressionAttributeValues: {
":lower_lon": {"N": event.low_lon},
":higher_lon": {"N": event.high_lon},
":lower_lat": {"N": event.low_lat}
}
};
if (typeof event.high_lat != "undefined") {
params.ExpressionAttributeValues = event.high_lat;
}
db.scan(params, function(err, data) {
if (err) {
console.log(err); // an error occurred
}
else {
data.Items.forEach(function(record) {
console.log(
record.name.S + "");
});
context.succeed(data.Items);
}
});
};
예 : 단일 값으로지도 전체 ExpressionAttributeValues 멀리 불고
{
"low_lon": "16",
"high_lon": "17",
"low_lat": "52",
"high_lat": "53"
}
지금 내가 이러한 오류는 {[ValidationException는 : ExpressionAttributeValues는 잘못된 키가 포함되어 구문 오류를; 키 : "high_lat"] 메시지 : 'ExpressionAttributeValues에 잘못된 키가 있습니다 : 구문 오류; key : "high_lat" ', –
아 죄송합니다. 구문이 약간 누락되었습니다. 내 업데이트 답변을 참조하십시오. –
더 나은,하지만 지금은 얻을 : [ValidationException : 잘못된 FilterExpression : 식에 사용 된 식 특성 값이 정의되지 않은; 속성 값 : : higher_lat] message : '유효하지 않은 FilterExpression : 표현식에 사용 된 표현식 속성 값이 정의되지 않았습니다. attribute value : : higher_lat ', –