[英]Use SQS queueName instead of URL in case of AmazonSQS
我有以下代码来接收来自SQS的消息:
ReceiveMessageRequest receiveMessageRequest = new
ReceiveMessageRequest();
receiveMessageRequest.setQueueUrl(queueUrl);
receiveMessageRequest.setMaxNumberOfMessages(sqsBatchSize);
ReceiveMessageResult messageResult = sqsClient.receiveMessage(receiveMessageRequest);
有什么方法可以传递queueName而不是在ReceiveMessageRequest对象中传递queueURL吗?
奇怪的是,没有。
好吧,这实际上并不奇怪。 队列名称仅在每个AWS账户内的区域级别是唯一的(在一个账户或多个账户中不是全局唯一的),并且另一个账户可能会授予您访问其队列的权限,因此队列名称本身不足以提供信息以确定要访问的队列。 还需要帐号和地区。 (在SQS成立之初,该区域最初不是考虑因素,因为只有一个区域。)
大概是由于这个原因,SQS查询API(SDK使用的Web服务) 要求在请求中包含队列URL 。 这是一个唯一标识队列的值,因为帐户,区域和队列名称都嵌入其中。
ARN可能已经识别出队列,这也很有意义,但是有可能早在十年前SQS首次发布时就尚未发明ARN。 SQS是有史以来的第一个AWS服务, 有关此内容的此博客文章始于2006年,其中包含一个屏幕快照,该屏幕快照是无价的经典老式Amazon。 屏幕顶部的活动标签很难阅读,但似乎显示“赚钱”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.