我已在我的主目录中为我的AWS CLI工具配置了一个配置文件,我的区域设置为eu-west-1
,并且可以成功列出队列:
➜ ~ aws sqs list-queues
{
"QueueUrls": [
"https://eu-west-1.queue.amazonaws.com/9*********42/second"
]
}
我有以下方法:
void sendMessage(String msg) {
AmazonSQS sqs = AmazonSQSClientBuilder.standard()
.withRegion(Regions.EU_WEST_1)
.build();
CreateQueueRequest createQueueRequest = new CreateQueueRequest("second");
String myQueueURL = sqs.createQueue(createQueueRequest).getQueueUrl();
System.out.println("A list of queues...");
for (String qURL : sqs.listQueues().getQueueUrls()) {
System.out.println("Found queue: " + qURL);
}
System.out.println("Sending msg '" + msg + "' to Q: " + myQueueURL);
sqs.sendMessage(new SendMessageRequest(myQueueURL, msg));
sqs.sendMessage(new SendMessageRequest("https://sqs.eu-west-1.amazonaws.com/2*********73/second", msg + " with URL"));
}
运行此方法的输出是:
A list of queues...
Found queue: https://sqs.eu-west-1.amazonaws.com/9*********42/second
Sending msg 'test message' to Q: https://sqs.eu-west-1.queue.amazonaws.com/9*********42/second
我从AWS CLI和SDK获得的URL包含数字9 ... 42,但这不是我在AWS控制台中看到的。在控制台中,URL包含数字2 ... 73。
当我手动将控制台中的URL添加到我的方法时(如上所示),我可以成功向队列发送消息,但是当我尝试使用list-queues
操作给出的URL时,{{ 1}}操作无声地失败。
这些网址可能有何不同?
我还应该补充一点,还有另外两个队列("第一个"和#34; first.fifo")我现在已经删除但不再显示在控制台中,但两者都是我使用sqs.sendMessage()
时仍然列出。对于所有这些队列,控制台URL始终包含相同的2 ... 73号码,我从CLI和SDK获得的URL始终包含相同的9 ... 42号码。
我的问题是 - 这个号码是什么,为什么会有所不同?
答案 0 :(得分:2)
我几乎在发布问题时就找到了答案。号码是the AWS account number,我使用的是不同帐户的访问密钥/密钥组合到我预期的帐户。
队列没有消失的原因是我通过向他们发送消息而无意中创建了它们。
我的5
来电没有默默失败,邮件显示在另一个帐户的队列中。