【问题标题】:Unable to send message on SQS through AWS Java SDK无法通过 AWS Java SDK 在 SQS 上发送消息
【发布时间】:2018-08-17 20:01:00
【问题描述】:

我无法通过 AWS Java SDK 在 SQS 队列上发送消息。这是我正在使用的代码:

    final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();
    try {
        String queueUrl = "My sqs queue url"
        sqs.sendMessage(new SendMessageRequest(queueUrl, "This is my message text."));
    } catch (final AmazonServiceException ase) {
        //log error message here                
    } catch (final AmazonClientException ace) {
        //log error message here
    }

这个 sn-p 抛出 AmazonServiceException 并带有消息:我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅服务文档

在 SDK 文档中,没有提到如何签署请求。 此外,对于身份验证,我导出了包含 AWS 访问密钥和秘密值的环境变量 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。

我从AWS documentation 中挑选了这个示例代码

谁能帮我解决这个问题?

【问题讨论】:

  • 尝试同时指定区域 AWS_DEFAULT_REGION
  • @gusto2,我刚刚尝试指定区域,但没有帮助。
  • 您使用哪个版本的 SDK?您确定传递给 SQS 客户端的凭据是您期望的(它们没有在某处被覆盖)吗?您的 SQS 队列在哪个区域? (默认区域为us-west-2

标签: amazon-web-services amazon-sqs


【解决方案1】:

我的凭据有问题。当我尝试创建一个新帐户并使用一对新的密钥和密钥时,事情就开始起作用了。 我将要求我所在组织的 AWS 客户经理重新生成密钥-秘密对。 感谢@gusto2 和@AlexandreDupriez。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多