我们已宣布
在 &SQS; 中使用队列
此 Node.js 代码示例演示:
如何获取所有消息队列的列表
如何获取特定队列的 URL
如何创建和删除队列
关于示例
在本示例中,使用了一系列 Node.js 模块来处理队列。这些 Node.js 模块使用 SDK for JavaScript 以启用队列来调用 AWS.SQS
客户端类的以下方法:
有关 Amazon SQS 消息的更多信息,请参阅《Amazon Simple Queue Service Developer Guide》中的 How Queues Work。
先决条件任务
要设置和运行此示例,您必须先完成以下任务:
安装 Node.js。有关安装 Node.js 的更多信息,请参阅 Node.js 网站
。 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证。
列出队列
创建文件名为 sqs_listqueues.js
的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 Amazon SQS,请创建 AWS.SQS
服务对象。创建一个包含列出队列所需的参数的 JSON 对象,默认情况下这是个空对象。调用 listQueues
方法以检索队列的列表。回调函数将返回所有队列的 URL。
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = {}; sqs.listQueues(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.QueueUrls); } });
要运行示例,请在命令行中键入以下内容。
node sqs_listqueues.js
此示例代码可在 GitHub 上的此处
创建队列
创建文件名为 sqs_createqueue.js
的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 Amazon SQS,请创建 AWS.SQS
服务对象。创建一个包含列出队列所需的参数的 JSON 对象,这必须包括所创建队列的名称。参数也可以包含队列的属性,例如消息发送延迟的秒数或者保留所收到消息的秒数。调用 createQueue
方法。回调函数将返回已创建队列的 URL。
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { QueueName: "SQS_QUEUE_NAME", Attributes: { DelaySeconds: "60", MessageRetentionPeriod: "86400", }, }; sqs.createQueue(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.QueueUrl); } });
要运行示例,请在命令行中键入以下内容。
node sqs_createqueue.js
此示例代码可在 GitHub 上的此处
获取队列的 URL
创建文件名为 sqs_getqueueurl.js
的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 Amazon SQS,请创建 AWS.SQS
服务对象。创建一个包含列出队列所需的属性的 JSON 对象,这必须包括您需要其 URL 的队列的名称。调用 getQueueUrl
方法。回调函数将返回指定队列的 URL。
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { QueueName: "SQS_QUEUE_NAME", }; sqs.getQueueUrl(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.QueueUrl); } });
要运行示例,请在命令行中键入以下内容。
node sqs_getqueueurl.js
此示例代码可在 GitHub 上的此处
删除队列
创建文件名为 sqs_deletequeue.js
的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 Amazon SQS,请创建 AWS.SQS
服务对象。创建一个包含删除队列所需的参数的 JSON 对象,这包括您要删除的队列的 URL。调用 deleteQueue
方法。
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { QueueUrl: "SQS_QUEUE_URL", }; sqs.deleteQueue(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
要运行示例,请在命令行中键入以下内容。
node sqs_deletequeue.js
此示例代码可在 GitHub 上的此处