我有一個配置文件配置我的AWS CLI工具在我的主目錄與我的區域設置爲eu-west-1
並能成功地列出隊列:AWS CLI和Java SDK返回不正確的網址,SQS隊列
➜ ~ 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
操作給出的網址,則sqs.sendMessage()
操作默默地失敗。
這些網址可能會有所不同嗎?
我還應該補充說,還有兩個其他隊列(「first」和「first.fifo」),我現在已經刪除並且不再顯示在控制檯中,但是當我使用list-queues
時,這兩個隊列仍然列出。對於所有這些隊列,控制檯URL始終包含相同的2 ... 73編號,而我從CLI和SDK獲得的URL始終包含相同的9 ... 42編號。
我的問題是 - 這個數字是什麼,爲什麼它會不同?
感謝您發佈解決方案。我們大多數人在管理多個AWS賬戶時犯了這個錯誤。 –
刪除這個問題並隱藏我的恥辱肯定是很有誘惑力的,但我認爲這是停止深夜工作的另一個原因! – Mike