这个错误通常是由于未正确设置Lambda函数的权限所导致。
请确保您在Lambda函数代码中正确设置了AWS SDK的凭证,例如通过环境变量或配置文件:
// 设置AWS凭证
AWSCredentials credentials = new BasicAWSCredentials(accessKeyId, secretAccessKey);
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(Regions.US_EAST_1)
.build();
如果您仍然遇到问题,请检查您的Lambda函数是否具有所需的IAM角色权限,例如DynamoDB的读取权限,以及是否已为Lambda函数正确配置策略。
另外,如果您的Lambda函数不涉及APIGateway,则可以忽略掉与API网关相关的代码或设置,例如在Lambda函数代码中调用以下内容:
String authorizationHeader = input.getHeaders().get("Authorization");
if (authorizationHeader == null) {
throw new RuntimeException("Missing authorization token!");
}
String bearerToken = authorizationHeader.split(" ")[1];
将这些代码删除即可。