Com*_*ode 1 amazon-web-services aws-lambda amazon-cloudwatchlogs
我有一个将所有日志组导出到 s3 的 lambda,目前正在使用它cloudwatchlogs.describeLogGroups来列出所有日志组。
const logGroupsResponse = await cloudwatchlogs.describeLogGroups({ limit: 50 })
Run Code Online (Sandbox Code Playgroud)
问题是我们有 69 个日志组,有什么方法可以列出 aws 账户中的所有日志组(ID 和名称)。我发现可以有 1000 个日志组。这是我们控制台的屏幕截图:

为什么cloudwatchlogs.describeLogGroups只允许 50 个这个很小的限制?
假设您使用 AWS JS SDK v2,describeLogGroupsAPInextToken在其响应中提供nexToken. 该令牌用于通过发送多个请求来检索多个日志组(超过 50 个)。我们可以使用以下模式来完成此任务:
const cloudwatchlogs = new AWS.CloudWatchLogs({region: 'us-east-1'});
let nextToken = null;
do {
const logGroupsResponse = await cloudwatchlogs.describeLogGroups({limit: 50, nextToken: nextToken}).promise();
// Do something with the retrieved log groups
console.log(logGroupsResponse.logGroups.map(group => group.arn));
// Get the next token. If there are no more log groups, the token will be undefined
nextToken = logGroupsResponse.nextToken;
} while (nextToken);
Run Code Online (Sandbox Code Playgroud)
我们正在循环查询 AWS API,直到不再有日志组为止。
| 归档时间: |
|
| 查看次数: |
2200 次 |
| 最近记录: |