ラムダ関数を使ってダイナモテーブルを取得し、セールスフォースにデータをプッシュします。これはうまく動作します。関数が5分に制限されているのは、sqsから電子メール(またはクライアントIDを一度に1つずつ取り出して、各電子メールごとに1回ずつラムダ関数を実行し、制限を超えて実行しないようにすることです。ループと私のチームメイトが試したいくつかの他の方法として。私のラムダ関数を一度に1つ1つのsqs内のすべてのメールに呼び出す方法
function receive() {
var aws = require('aws-sdk');
var sqs = new aws.SQS({"region": "us-west-2"});
var params = {
QueueUrl: "https://sqs.us-west-2.amazonaws.com/*****/****",
MaxNumberOfMessages: 1
};
sqs.receiveMessage(params, function(err, data) {
// var message = JSON.load(data['Message'])
// var message = JSON.load(data);
// var message = data;
var message = data.Messages[0],
body = JSON.parse(message.Body);
console.log(body.client_id);
get_client_from_dynamo(body.client_id);
// console.log("Raw" + data)
});
}
この方法では、ここでは動作しますが、唯一のリストの最後の電子メールのためのラムダ関数を呼び出します。任意の提案は役立つだろう、私はまだ多少新しいですとセールスフォースとラムダにも私が愛している最後の数週間で良いことを学んだ。必要に応じてより多くのコードを追加します。
ラムダが5分以内に処理を完了できない場合は、遅い処理またはデータスループットの制限が原因であるかどうかを確認してください。処理が遅いため、最大1.5GBのRAMをプロビジョニングできます。 – mootmoot