如何获取 RDS 标签?
Posted
技术标签:
【中文标题】如何获取 RDS 标签?【英文标题】:How to get RDS tags? 【发布时间】:2019-05-05 10:28:21 【问题描述】:我正在尝试获取 rds 实例的标签。 我使用节点 js,它作为异步工作,所以我无法正确获得结果。 请回复报价
补充说: 一个 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)
)
)
【问题讨论】:
代码运行了吗?data
响应是什么?有错误吗?请编辑您的问题以提供更多信息。
不要忽略错误,访问数据前检查错误!
【参考方案1】:
我已经用 async 和 await 语法修复了它。 感谢 cmets。
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)
)
【讨论】:
以上是关于如何获取 RDS 标签?的主要内容,如果未能解决你的问题,请参考以下文章