1
をDynamoDBのは?私はそれを毎分をトリガーするCloudWatchのを使用してラムダ関数を作ってみました。私はこの作業を完了するためにAWSの他のサービスを利用することに門戸を開いています。私はただ見落としているという簡単な説明があると確信しています。転送データがSQSから私が手にメッセージを転送し、DynamoDBのにそれらを介して送信する方法はあり
*私は私のコードに修正またはこれを達成するための別の解決策のいずれかを探しています、私のコードは動作しません編集します。
**編集作業それを得ました。
'use strict';
const AWS = require('aws-sdk');
const SQS = new AWS.SQS({ apiVersion: '2012-11-05' });
const Lambda = new AWS.Lambda({ apiVersion: '2015-03-31' });
const QUEUE_URL = 'SQS_URL';
const PROCESS_MESSAGE = 'process-message';
const DYNAMO_TABLE = 'TABLE_NAME';
function poll(functionName, callback) {
const params = {
QueueUrl: QUEUE_URL,
MaxNumberOfMessages: 10,
VisibilityTimeout: 10
};
// batch request messages
SQS.receiveMessage(params, function(err, data) {
if (err) {
return callback(err);
}
// parse each message
data.Messages.forEach(parseSQSMessage);
})
.promise()
.then(function(){
return Lambda.invokeAsync({})
.promise()
.then(function(data){
console.log('Recursion');
})
}
)
.then(function(){context.succeed()}).catch(function(err){context.fail(err, err.stack)});
}
// send each event in message to dynamoDB.
// remove message from queue
function parseSQSMessage(msg, index, array) {
// delete SQS message
var params = {
QueueUrl: QUEUE_URL,
ReceiptHandle: msg.ReceiptHandle
};
SQS.deleteMessage(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
}
// store atomic event JSON directly to dynamoDB
function storeEvent(event) {
var params = {
TableName : DYNAMO_TABLE,
Item: event
};
var docClient = new AWS.DynamoDB.DocumentClient();
docClient.put(params, function(err, data) {
if (err) console.log(err);
else console.log(data);
});
}
exports.handler = (event, context, callback) => {
try {
// invoked by schedule
poll(context.functionName, callback);
} catch (err) {
callback(err);
}
};
SQSからメッセージを引き出し、DynamoDBのに保存したノードで書かれたAWSラムダ関数との関連githubのプロジェクト:https://github.com/leaflevellabs/aws-lambda-sqs-dynamodb。 – jarmod
コードは機能しませんか?エラーメッセージが表示されますか?あなたの質問は何です - あなたはそれが可能だかどうか尋ねている、またはあなたのコードがない理由/動作しませんか?質問を編集して明確にしてください。 –