Я пытаюсь настроить панель поиска на моем веб-фронте, которая позволит пользователю искать данные в моей таблице DynamodB, используя ключ, а затем возвращает результаты на веб-сайт.
Я попытался создать функцию API POST, которая дает значение искомого ключа лямбда-функции. результирующие данные из лямбда-функции затем представляются в веб-интерфейсе через API GET.
здесь приведен соответствующий java-скрипт, html-код и соответствующий код из лямбда-функции.
Большое спасибо тем, кто решил помочь, я очень ценю это
HTML
<table id='table' style="width:50%">
<thead>
<tr>
<th>pKey</th>
<th>Message</th>
<th>Password</th>
</tr>
</thead>
<tbody id="myunipolapi">
</tbody>
</table>
<form>
<textarea id="srch" placeholder="Search Data"></textarea>
</form>
<div>
<button id='searchButton'>Search</button>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
Javascript AJAX GET
$(document).ready(function(){
$.ajax({
type: 'GET',
url: API_URL,
success: function(data){
$('#myunipolapi').html('');
data.Items.forEach(function(HeartbeatItem){
$('#myunipolapi').append(
'<tr id="TT"><td id="TT">' + HeartbeatItem.pKey + '</td><td id="TT">' + HeartbeatItem.message + '</td><td id="TT">' + HeartbeatItem.password + '</td></tr>'
);
})
}
});
});
Javascript AJAX POST
$('#searchButton').on('click',function() {
$.ajax({
type: 'POST',
url: API_URL,
data: JSON.stringify({"search": $('#srch').val()}),
contentType: "application/json",
success: function(data){
$('#TT').load('#myunipolapi');
}
});
});
Лямбда
console.log('starting function');
const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region: 'eu-west-2'});
exports.handler = function(event, ctx, callback) {
console.log(event);
var queryParams = {
TableName: 'Heartbeat',
Key: {
"pKey": event.search
}
};
docClient.get(queryParams, function(err, data){
if(err){
callback(err, null);
}else{
callback(null, data);
}
});
};
API
{
"message": $input.json('$.message'),
"password": $input.json('$.password'),
"pKey": $input.json('$.pKey'),
"search": $input.json('$.search')
}