AWS QLDB-Java教程步骤2(ConnectToLeger)-无法确定要授权的服务/操作名称
我正在尝试从AWS运行Java教程,在这里可以找到: 在指南的第一步中,我必须将区域和端点添加到“getClient”方法中,以使其运行。在第二步,我在连接到分类账时出错AWS QLDB-Java教程步骤2(ConnectToLeger)-无法确定要授权的服务/操作名称,java,amazon-web-services,amazon-iam,amazon-qldb,Java,Amazon Web Services,Amazon Iam,Amazon Qldb,我正在尝试从AWS运行Java教程,在这里可以找到: 在指南的第一步中,我必须将区域和端点添加到“getClient”方法中,以使其运行。在第二步,我在连接到分类账时出错 Exception in thread "main" com.amazonaws.services.qldbsession.model.AmazonQLDBSessionException: Unable to determine service/operation name to be authorized (Servic
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”方法中设置特定于区域和端点的“凭据”,以确保它使用的是我想要的IAM用户,即使我知道我的凭据在aws/credentials文件中是正确的。
无论我尝试什么,我都会得到上面显示的异常
我希望有人能给我指出正确的方向。我想知道您的应用程序中是否存在依赖性问题,例如QLDB驱动程序和AWS SDK的版本不兼容。您能否确认版本是否(至少)符合中的指南 如果这不起作用,请使用更多信息更新您的问题,例如您对教程代码所做的更改(如果您选择内联,请确保不包含任何凭据!)和完整堆栈跟踪。可以公开共享请求id
更新:黑暗中的另一个镜头:您是否可以在构建客户端驱动程序时自定义端点?如果是这样,您是否将控制端点和会话端点混合在一起?QLDB有不同的服务端点,请参见下面的示例端点。请检查是否使用了正确的端点进行连接。请检查下面的QLDB 控制平面:qldb.us-east-1.amazonaws.com
事务数据平面:session.qldb.us-east-2.amazonaws.com不需要在CreateLedger或ConnectToLEdger类中修改端点或区域变量 只需修改以下内容: 在CreateLedger.getClient方法中: 返回生成器 .withRegion(Regions.US_EAST_1) .build() 在ConnectToLedger.getAmazonQldbSessionClientBuilder方法中: 返回生成器。区域(区域。美国东部1) 通过这些更改,您可以让SDK为控制平面和事务数据平面找到正确的端点
请查看请检查您的AWS访问密钥ID是否订阅了此服务。同时检查这个。嗨,谢谢你的输入。我已经在AWS控制台中注册了QLDB,IAM用户可以完全访问QLDB,正如前面提到的,我还与该IAM用户创建了一个分类账,我可以在控制台中看到。我从常见的错误开始,但它们似乎都与我的问题无关。
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'
}