在 &SQS; 中使用队列 - AWS SDK for JavaScript

我们已宣布即将终止对 AWS SDK for JavaScript v2 的支持。建议您迁移到 AWS SDK for JavaScript v3。有关日期、其他详细信息以及如何迁移的信息,请参阅链接的公告。

在 &SQS; 中使用队列

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何获取所有消息队列的列表

  • 如何获取特定队列的 URL

  • 如何创建和删除队列

关于示例

在本示例中,使用了一系列 Node.js 模块来处理队列。这些 Node.js 模块使用 SDK for JavaScript 以启用队列来调用 AWS.SQS 客户端类的以下方法:

有关 Amazon SQS 消息的更多信息,请参阅《Amazon Simple Queue Service Developer Guide》中的 How Queues Work

先决条件任务

要设置和运行此示例,您必须先完成以下任务:

列出队列

创建文件名为 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 上的此处找到。