我正在尝试获取rds实例的标记。请用引号回复
新增:一个rds实例可以有多个标签。我只想从rds实例的标签中导入特定的标签。但是,实例和标签不匹配,因为它异步工作。
var AWS = require('aws-sdk');
var request = require("request");
AWS.config.update({region:'ap-northeast-1'});
var credentials = new AWS.SharedIniFileCredentials({profile: 'test'});
AWS.config.credentials = credentials;
var rds = new AWS.RDS();
rds.describeDBInstances(function(err, data) {
for(var i=0; i<data.DBInstances.length; i++) {
var instance = data.DBInstances[i];
var clusterName = instance.DBClusterIdentifier;
var instanceName = instance.DBInstanceIdentifier;
var resourceName = 'arn:aws:rds:ap-northeast-1:231497262134:db:' + instanceName;
var params = {
ResourceName: resourceName,
};
rds.listTagsForResource(params, function(err, data) {
var serviceTag = ''
data.TagList.forEach((tag) => {
if (tag.Key.toLowerCase() === 'service' && tag.Value.length > 0) {
serviceTag = tag.Value;
}
})
console.log(instanceName, serviceTag)
})
}
})发布于 2018-12-05 13:26:40
我已经用async和await语法修复了它。谢谢你的评论。
var AWS = require('aws-sdk');
var request = require("request");
AWS.config.update({region:'ap-northeast-1'});
var credentials = new AWS.SharedIniFileCredentials({profile: 'test'});
AWS.config.credentials = credentials;
var rds = new AWS.RDS();
rds.describeDBInstances(async (err, data) => {
for(var i=0; i<data.DBInstances.length; i++) {
var instance = data.DBInstances[i];
var clusterName = instance.DBClusterIdentifier;
var instanceName = instance.DBInstanceIdentifier;
var resourceName = 'arn:aws:rds:ap-northeast-1:231497262134:db:' + instanceName;
let params = {
ResourceName: resourceName,
};
let tags = await rds.listTagsForResource(params).promise();
var serviceTag = ''
tags.TagList.forEach((tag) => {
if (tag.Key.toLowerCase() === 'service' && tag.Value.length > 0) {
serviceTag = tag.Value;
}
})
console.log(clusterName + ',' + instanceName + ',' + serviceTag)
}
})https://stackoverflow.com/questions/53605430
复制相似问题