AWS лямбда-нод, показывающий ошибку при использовании X-RAY - PullRequest
0 голосов
/ 30 октября 2018

У меня есть следующий код:

var AWSXRay = require('aws-xray-sdk');
    var AWS = AWSXRay.captureAWS(require('aws-sdk'));
    const client = AWSXRay.captureAWSClient(new AWS.DynamoDB.DocumentClient({region : 'eu-west-1'}));
    exports.handler = function(event, context, callback) {

        AWSXRay.captureFunc('annotations', function(subsegment){
        subsegment.addAnnotation('User', **);
        subsegment.addAnnotation('Name', **);
      });

         var params = {
            TableName: "****",
            ** all params **
            };
     client.query(params, function(err, data) {
       if (err) console.log(err, err.stack); // an error occurred
       else{
            callback(null,data);
            }
        });
    }

При выполнении кода выше выдается следующая ошибка:

Response:
{
  "errorMessage": "service.customizeRequests is not a function",
  "errorType": "TypeError",
  "stackTrace": [
    "Object.<anonymous> (/var/task/index.js:5:24)",
    "Module._compile (module.js:570:32)",
    "Object.Module._extensions..js (module.js:579:10)",
    "Module.load (module.js:487:32)",
    "tryModuleLoad (module.js:446:12)",
    "Function.Module._load (module.js:438:3)",
    "Module.require (module.js:497:17)",
    "require (internal/module.js:20:19)"
  ]
}

следующие журналы функции:

Function Logs:
START RequestId: Version: $LATEST
module initialization error: TypeError
    at Object.captureAWSClient (/var/task/node_modules/aws-xray-sdk-core/lib/patchers/aws_p.js:55:11)
    at Object.<anonymous> (/var/task/index.js:5:24)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
END

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 05 ноября 2018

Размещение кратковременного решения для улучшения видимости.

const ddbClient = AWSXray.captureAWSClient(new AWS.DynamoDB({...}));
const client = new AWS.DynamoDB.DocumentClient({
  service: ddbClient
});
client.service = ddbClient;

См. Некоторые рассуждения и обсуждения здесь https://forums.aws.amazon.com/thread.jspa?messageID=821510&#821510

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...