在AWS SDK中从资源ID获取Authorizer Id遇空值问题排查
- 使用Java ApiGatewayClient调用
var res = apiGatewayClient.getResources(getResourcesRequest);获取所有资源 - 根据SDK文档,预期通过
res.items().get(0).resourceMethods().get("POST").authorizerId();获取Authorizer ID,但实际返回null - 已在AWS控制台确认该AuthID存在,但所有资源的authId均显示null
- 返回示例:
{ "path": "/dummy/v1", "id": "x977w7", "resourceMethods": { "POST": { "authorizerId": null, "httpMethod": null, "operationName": null } } }
可能的原因及解决方向
- getResources API默认不返回完整配置:AWS的
getResources接口默认不会返回resourceMethods的完整细节,需要在构建GetResourcesRequest时显式指定展开字段,比如调用getExpandRequest().add("resourceMethods")或者对应方法,确保接口返回完整的方法配置信息。 - 授权器配置层级不符:如果授权器是直接配置在具体API方法而非资源的默认方法上,需要调用
getMethod接口单独获取该方法的详细配置,而不是从getResources的结果中提取。 - SDK版本存在bug:检查使用的AWS Java SDK版本,旧版本可能存在字段序列化问题,尝试升级至最新的ApiGateway SDK版本后重新测试。
内容的提问来源于stack exchange,提问作者Chandan Bansal
相关产品推荐
相关产品推荐

