我正在使用ElasticMQ在我的本地開發機器上模擬AWS SQS。我在Docker容器中運行ElasticMQ,使用docker-osx-dev在Linux VM上託管Docker容器。這意味着我在VM的IP上訪問本地ElasticMQ實例,而不是本地IP。爲什麼創建本地隊列時Node.js AWS-SDK返回錯誤的SQS隊列URL
當我嘗試使用下面的代碼在EMQ中創建一個隊列時,它會在localhost返回一個隊列URL,而不是託管docker容器的虛擬機的IP。
var AWS = require('aws-sdk');
var config = {
endpoint: new AWS.Endpoint('http://192.168.59.103:9324'),
accessKeyId: 'na',
secretAccessKey: 'na',
region: 'us-west-2'
}
var sqs = new AWS.SQS(config);
var params = {
QueueName: 'test_queue'
};
sqs.createQueue(params, function(err, data) {
if (err) {
console.log(err);
} else {
console.log(data.QueueUrl);
}
});
目前該代碼返回:http://localhost:9324/queue/test_queue
,但它應該返回http://192.168.59.103:9324/queue/test_queue
。如果我將URL中的'localhost'替換爲實際的IP地址,我可以成功訪問帶有該URL的隊列,表明它確實被創建,但這是一個非常討厭的黑客行爲。在上面的代碼中需要更改哪些內容才能解決此問題?
感謝。今天真的需要這個。 – RichS