我正在尝试运行来自亚马逊网络服务的Java教程,可以在这里找到:https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started.java.tutorial.html
在本指南的第一步中,我必须将区域和端点添加到"getClient“方法中,以使其运行。在第二步中,我在连接到账本时出错。
Exception in thread "main" com.amazonaws.services.qldbsession.model.AmazonQLDBSessionException: Unable to determine service/operation name to be authorized (Service: AmazonQLDBSession; Status Code: 403; Error Code: AccessDeniedException; Request ID我知道我的IAM用户拥有正确的权限,因为我可以使用它添加账本,并且现在它拥有对QLDB的完全访问权限。我已经尝试在"createQldbDriver“方法中设置区域和端点,并设置" credentials”,以确保它使用的是我想要的IAM用户,即使我知道我的凭据在aws/credentials文件中是正确的。无论我尝试什么,我都会得到上面所示的异常。
我希望有人能给我指明正确的方向。
发布于 2020-03-12 06:36:39
我想知道您的应用程序中是否存在依赖问题,例如QLDB驱动程序和AWS SDK的不兼容版本。您能否确认这些版本(至少)与https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started.java.html#getting-started.java.prereqs中的指南相符
dependencies {
compile group: 'software.amazon.qldb', name: 'amazon-qldb-driver-java', version: '1.0.2'
compile group: 'com.amazonaws', name: 'aws-java-sdk-qldb', version: '1.11.628'
compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-ion', version: '2.10.0.pr1'
}如果这不起作用,请您使用更多信息更新您的问题,例如您对教程代码所做的更改(如果您选择内联它们,请确保不包括任何凭据!)和全栈跟踪。公开分享一个请求id是可以的。
更新:另一个秘密:您是否有可能在构建客户端驱动程序时自定义端点?如果是这样,您是不是把控制端点和会话端点搞混了?
发布于 2020-05-18 02:14:33
QLDB有不同的服务端点,请参考下面的示例端点。请检查您是否使用了正确的端点进行连接。请查看下面的QLDB documentation
控制平面: qldb.us-east-1.amazonaws.com
事务数据平面: session.qldb.us-east-2.amazonaws.com
发布于 2020-08-14 02:50:09
在CreateLedger或ConnectToLEdger类中不需要修改端点或区域变量。
只需修改以下内容:
在CreateLedger.getClient方法中:
返回构建器.withRegion(Regions.US_EAST_1) .build();
在ConnectToLedger.getAmazonQldbSessionClientBuilder方法中:
返回builder.region(Region.US_EAST_1);
通过这些更改,您可以让SDK为控制平面事务数据平面找到正确的端点。
https://stackoverflow.com/questions/60585945
复制相似问题