You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Inspector Java SDK调用异常:nextToken有值但findingArns为空

AWS Inspector Java SDK调用问题排查与示例

问题分析

你遇到的hasFindingArns()返回true但findingArns()为空的情况,核心原因是默认ListFindings调用未指定筛选条件,AWS Inspector会返回空结果(即便存在nextToken),或者你的账号下当前无符合默认条件的扫描结果。另外nextToken仅为分页机制的一部分,无数据时也可能返回空或无效token。

关键参数补充

必须为ListFindingsRequest添加筛选条件,否则调用大概率返回空结果,核心必填/推荐参数:

  • filter: 指定扫描结果的筛选规则(如时间范围、严重程度、扫描目标ARN等)
  • maxResults: 控制单页返回结果数量,避免分页异常
  • nextToken: 仅当之前调用返回有效token时传入,用于获取下一批结果

修复后的完整示例代码

import software.amazon.awssdk.services.inspector.InspectorClient;
import software.amazon.awssdk.services.inspector.model.ListFindingsRequest;
import software.amazon.awssdk.services.inspector.model.ListFindingsResponse;
import software.amazon.awssdk.services.inspector.model.FindingFilter;
import java.time.Instant;

public class InspectorFindingsExample {
    public static void main(String[] args) {
        try (InspectorClient inspectorClient = InspectorClient.create()) {
            // 构建筛选条件:获取最近7天的所有扫描结果
            FindingFilter filter = FindingFilter.builder()
                    .creationTimeRange(range -> range
                            .beginDate(Instant.now().minusSeconds(7 * 24 * 3600))
                            .endDate(Instant.now()))
                    .build();

            String nextToken = null;
            do {
                ListFindingsRequest request = ListFindingsRequest.builder()
                        .filter(filter)
                        .maxResults(50) // 每页最多返回50条
                        .nextToken(nextToken)
                        .build();

                ListFindingsResponse response = inspectorClient.listFindings(request);

                // 处理返回结果
                if (!response.findingArns().isEmpty()) {
                    System.out.println("扫描结果ARN列表:");
                    response.findingArns().forEach(arn -> System.out.println("- " + arn));
                } else {
                    System.out.println("无符合条件的扫描结果");
                }

                nextToken = response.nextToken();
            } while (nextToken != null && !nextToken.isEmpty());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

额外注意事项

  • 确保IAM角色/用户拥有inspector:ListFindings权限,且权限范围覆盖查询资源
  • 若仍返回空结果,先通过AWS控制台确认Inspector存在已完成的扫描任务及结果
  • 可按需调整筛选条件,比如添加severities(CRITICAL、HIGH等)过滤特定严重级别的结果

内容的提问来源于stack exchange,提问作者JavaDuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 06:02:35