【问题标题】:How can I get lambda functions by tags in nodejs?如何通过 nodejs 中的标签获取 lambda 函数?
【发布时间】:2021-07-09 14:17:37
【问题描述】:
【问题讨论】:
标签:
amazon-web-services
aws-lambda
【解决方案1】:
您需要使用 Resource Groups Tagging API 来查找(任何)具有特定标签的资源。
const AWS = require('aws-sdk')
const resourcegroupstaggingapi = new AWS.ResourceGroupsTaggingAPI();
exports.handler = async function(event) {
const params = {
ResourceTypeFilters: ['lambda'],
TagFilters: [{
Key: '<your-key>',
Values: ['<value-to-match>']
}],
};
try {
while (true) {
const resources = await resourcegroupstaggingapi.getResources(params).promise();
resources.ResourceTagMappingList.forEach(r => {
console.log(r.ResourceARN);
});
if (resources.PaginationToken === "") {
break;
}
params.PaginationToken = resources.PaginationToken;
};
} catch (error) {
console.log(error);
}
return ""
}
【解决方案2】:
我有办法吗?
不是通过单个 API 调用。您必须分两步:
- 使用
listFunctions 获取函数列表
- 对于每个函数,使用其 ARN 获取标签,使用 listTags 并找到您需要的标签。