【问题标题】:(AWS) Getting RDS state via Lambda(AWS) 通过 Lambda 获取 RDS 状态
【发布时间】:2018-11-06 04:20:14
【问题描述】:

我一直在尝试通过 RDS 中的 Lambda 检索 RDS 实例的状态,但由于无法解析响应,我一直在做空。我知道我在这里完全遗漏了一些显而易见的东西。代码如下:

var AWS = require('aws-sdk');
var rdsparams = {
  DBInstanceIdentifier: 'mysql1'
};
module.exports = (instanceId) => {
 var rds = new AWS.RDS();
 var params = {
  DBInstanceIdentifier: instanceId
};
var rdsResponse = rds.describeDBInstances(rdsparams, function (err, 
 data) {
  if (err) console.log(err, err.stack); // an error occurred
    else console.log(data);           // successful response
  });

var resultData = {};
rds.describeDBInstances(rdsparams, function(err, data) {
  if (err)
    return context.done(err, null);

  var rdsarray = {};
  var rdsarray = (data);
  console.log(rdsarray);
  var ins = rdsarray[0];
  console.log("Status: " + ins.DBInstanceStatus);

});
};

【问题讨论】:

  • 错误信息是什么?
  • TypeError:无法读取响应时未定义的属性“DBInstanceStatus”。
  • (在这一行 console.log("Status: " + ins.DBInstanceStatus);)

标签: aws-lambda aws-sdk amazon-rds


【解决方案1】:

那里的代码发生了很多事情!

具体问题是data 不是数组。在此处查看文档的响应:https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/RDS.html#describeDBInstances-property

返回值的数组在data.DBInstances 中。所以最后几行可能是:

  var rdsarray = data.DBInstances;
  console.log(rdsarray);
  var ins = rdsarray[0];
  console.log("Status: " + ins.DBInstanceStatus);

【讨论】:

  • 谢谢,我知道它必须像这样简单......就像你说的那样,那里发生了太多事情 - 这可能是我的主要问题!
猜你喜欢
  • 2018-03-18
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
  • 2017-12-27
  • 1970-01-01
  • 2022-11-30
  • 2019-09-15
相关资源
最近更新 更多