Ste*_*itz 7 cloud messaging spring access-denied amazon-sqs
我目前在尝试使用 Spring Cloud 和 Spring Boot 连接到 AWS SQS 队列时遇到连接问题。我相信我的一切配置都很好,但我得到:
2015-07-01 18:12:11,926 [警告] [-] org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext [487] - 上下文初始化期间遇到异常 - 取消刷新尝试 org.springframework.context.ApplicationContextException:失败启动 bean 'simpleMessageListenerContainer';嵌套异常为 com.amazonaws.AmazonServiceException:对资源 https://sqs.us-west-2.amazonaws.com/ {Number}/{Queue Name} 的访问被拒绝。(服务:AmazonSQS;状态代码:403;错误代码:AccessDenied;请求 ID:87312428-ec0f-5990-9f69-6a269a041b4d)
@Configuration
@EnableSqs
public class CloudConfiguration {
private static final Logger log = Logger.getLogger(CloudConfiguration.class);
@MessageMapping("QUEUE")
public void retrieveProvisionMessages(User user) {
log.warn(user.firstName);
}
}
Run Code Online (Sandbox Code Playgroud)
YML
cloud:
aws:
credentials.accessKey: AccessKey
credentials.secretKey: SecretKey
region.static: us-west-2
credentials.instanceProfile: true
Run Code Online (Sandbox Code Playgroud)
当它尝试连接时,我看到标头值为:
AWS4-HMAC-SHA256 Credential=accesskey/20150701/us-west-2/sqs/aws4_request, SignedHeaders=host;user-agent;x-amz-date, Signature=signature
Run Code Online (Sandbox Code Playgroud)
请求发送后:
HTTP/1.1 403 Forbidden [Server: Server, Date: Wed, 01 Jul 2015 22:51:25 GMT, Content-Type: text/xml, Content-Length: 349, Connection: keep-alive, x-amzn-RequestId: Request Id] org.apache.http.conn.BasicManagedEntity@37e55df6
Run Code Online (Sandbox Code Playgroud)
我已经检查了所有 AIM 政策,它们都是正确的。
使用:
private AmazonSQS establishQueue(){
AmazonSQS sqs = new AmazonSQSClient(new BasicAWSCredentials(accessKey, secretKey));
sqs.setRegion(RegionUtils.getRegion(region));
return sqs;
}
AmazonSQS sqs = establishQueue();
return sqs.receiveMessage(sqs.getQueueUrl(userProductPurchase).getQueueUrl());
Run Code Online (Sandbox Code Playgroud)
具有相同的凭据工作正常。任何帮助是极大的赞赏。
谢谢
| 归档时间: |
|
| 查看次数: |
3225 次 |
| 最近记录: |