簡體   English   中英

未調用AWS Lambda - PutItem Dynamo DB Callback

[英]AWS Lambda - PutItem Dynamo DB Callback not called

exports.handler = function(event, context) {
    var AWS = require('aws-sdk');
    var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
    var kafka = require('kafka-node');
    var Consumer = kafka.Consumer,
        // The client specifies the ip of the Kafka producer and uses
        // the zookeeper port 2181
        client = new kafka.KafkaClient({kafkaHost: '172.16.35.115:9092,172.16.35.217:9092,172.16.37.14:9092'});



        // The consumer object specifies the client and topic(s) it subscribes to
        consumer = new Consumer( client, [ { topic: 'BillKazTopic', partition: 0, fromOffset: 'latest'} ], { autoCommit: true });
        consumer.on('message', function (message) {
            console.log("hellow");
            console.log(message);

            // Add to Dynamo
            var tableName = "dev-AM-Appointment";   
            console.log(JSON.stringify(event, null, '  ')); 
            dynamodb.putItem({
                "TableName": tableName,
                "Item" : {
                    "appointment_id": {S: 'message=' + message.value}
                }
            }, function(err, data) {
                console.log("HELLO WORLD!!!!");
                if (err) {
                    console.log('Error putting item into dynamodb failed: '+err);
                    context.succeed('error');
                }
                else {
                    console.log('great success: '+JSON.stringify(data, null, '  '));
                    context.succeed('Done');
                }
            }); 

        });
};

我正在嘗試聽Kafka並消費消息(作品)。

但是putItem()的回調永遠不會被調用,所以聲明:console.log(“HELLO WORLD !!!!”);

永遠不會顯示 可能是什么問題呢?

您對DynamoDB的請求超時是因為您在VPC中運行Lambda函數,但您沒有提供NAT網關或VPC端點以允許Lambda函數訪問存在於VPC外部的DynamoDB。

我建議將VPC端點配置為DynamoDB。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM