簡體   English   中英

如果是AmazonSQS,請使用SQS queueName而不是URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM