aws Nodejs sdk :: autoscaling.describeAutoScalingGroups

时间:2017-11-02 10:01:51

标签: node.js amazon-web-services sdk autoscaling

我需要获取自动扩展组进程的状态(无论它们是否被暂停或恢复)。我编写了以下脚本,该脚本返回给定ASG的属性,但SuspendedProcesses:值为" [Object]"。如何展开对象。 ASG我查询的终止进程已暂停,因此我希望在脚本的输出中看到这一点:

var AWS = require('aws-sdk');
var uuid = require('uuid');
AWS.config.update({ region: 'eu-west-1' });

AWS.config.apiVersions = {
  autoscaling: '2011-01-01',
};

var autoscaling = new AWS.AutoScaling();
var params = {
AutoScalingGroupNames: ["myAutoScalingGroup"]
};

function status() {
   autoscaling.describeAutoScalingGroups(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data);           // successful response 
});
}

status(); 

这是上述脚本的回复:

C:\Node.js\NodeJsSamples\package01>node SuspendProcess.js
{ ResponseMetadata: { RequestId: 'myRequestId' },
  AutoScalingGroups:
   [ { AutoScalingGroupName: 'myAutoScalingGroupName',
       AutoScalingGroupARN: 'arn:aws:autoscaling:eu-west-
1:myAccNumber:autoScalingGroup:myAutoScalingGroupName',
       LaunchConfigurationName: 'myLaunchConfigurationName',
       MinSize: 1,
       MaxSize: 1,
       DesiredCapacity: 1,
       DefaultCooldown: 300,
       AvailabilityZones: [Object],
       LoadBalancerNames: [Object],
       TargetGroupARNs: [],
       HealthCheckType: 'ELB',
       HealthCheckGracePeriod: 300,
       Instances: [Object],
       CreatedTime: 2017-11-02T08:08:31.364Z,
       SuspendedProcesses: [Object],
       VPCZoneIdentifier: 'subnet-########,subnet-########,subnet-########',
       EnabledMetrics: [],
       Tags: [Object],
       TerminationPolicies: [Object],
       NewInstancesProtectedFromScaleIn: false } ] }

如何扩展[Object]值?

感谢。

3 个答案:

答案 0 :(得分:0)

使用此片段。是本地人。

console.log('string', require('util').inspect(<variable>, 1, 10, 1));

在您的代码中:

function status() {
   autoscaling.describeAutoScalingGroups(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log('output', require('util').inspect(data, 1, 10, 1));           // successful response 
});
}

答案 1 :(得分:0)

您需要JSON.stringify(data)而不是仅在else子句中打印数据。 如果在其他情况下打印console.log(JSON.stringify(data)),您将获得正确的响应。

答案 2 :(得分:-1)

使用JSON.stringify -

var obj = { "name":"John", "age":function () {return 30;}, "city":"New York"}; console.log(JSON.stringify(obj));