在 &Amazon SQS; 中使用队列的队列 - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon SDK for JavaScriptV3 API 参考指南详细描述了Amazon SDK for JavaScript版本 3 (V3) 的所有 API 操作。

从 2022 年 10 月 1 日起,Amazon SDK for JavaScript(v3) 将终止对 Internet Explorer 11(IE 11)的支持。有关详细信息,请参阅 Amazon SDK for JavaScript(v3) 中宣布终止对 Internet Explorer 11 的支持

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 &Amazon SQS; 中使用队列的队列

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

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

  • 如何获取特定队列的 URL。

  • 如何创建和删除队列。

关于示例

在本示例中,使用了一系列 Node.js 模块来处理队列。Node.js 模块使用软件开发工具包用于 JavaScript 使队列能够调用以下方法SQS客户端类:

有关 Amazon SQS 消息的更多信息,请参阅队列的工作原理中的Amazon Simple Sueue.

先决条件任务

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

  • 设置项目环境来运行这些 Node TypeScript 示例,并安装所需的Amazon SDK for JavaScript和第三方模块。按照上的说明进行操作 GitHub.

  • 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证

重要

这些示例演示了如何使用 ECMAScript6 (ES6) 导入/导出客户端服务对象和命令。

列出您的队列

创建libs目录并创建文件名为模块文件名为模块 Node.jssqsClient.js. 将以下代码复制并粘贴到其中,这将创建 Amazon SQS 客户端对象。Replace领域此处Amazon区域。

import { SQSClient } from "@aws-sdk/client-sqs"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SQS service object. const sqsClient = new SQSClient({ region: REGION }); export { sqsClient };

这个例子可以在以下网站找到下载内容:。此处 GitHub.

创建文件名为 sqs_listqueues.js 的 Node.js 模块。确保按前面所示配置工具包,包括下载所需的客户端和软件包。创建一个包含列出队列所需的参数的 JSON 对象,默认情况下这是个空对象。调用 ListQueuesCommand 方法以检索队列的列表。该函数将返回所有队列的 URL。

// Import required AWS SDK clients and commands for Node.js import { ListQueuesCommand } from "@aws-sdk/client-sqs"; import { sqsClient } from "./libs/sqsClient.js"; const run = async () => { try { const data = await sqsClient.send(new ListQueuesCommand({})); console.log("Success", data); return data; // For unit tests. } catch (err) { console.error(err, err.stack); } }; run();

要运行示例,在命令提示符处,输入以下内容。

node sqs_listqueues.js

这个例子可以在以下网站找到下载内容:。此处 GitHub.

创建队列

创建libs目录并创建文件名为模块文件名为模块 Node.jssqsClient.js. 将以下代码复制并粘贴到其中,这将创建 Amazon SQS 客户端对象。Replace领域此处Amazon区域。

import { SQSClient } from "@aws-sdk/client-sqs"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SQS service object. const sqsClient = new SQSClient({ region: REGION }); export { sqsClient };

这个例子可以在以下网站找到下载内容:。此处 GitHub.

创建libs目录并创建文件名为模块文件名为模块 Node.jssqsClient.js. 将以下代码复制并粘贴到其中,这将创建 Amazon SQS 客户端对象。Replace领域此处Amazon区域。

import { SQSClient } from "@aws-sdk/client-sqs"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SQS service object. const sqsClient = new SQSClient({ region: REGION }); export { sqsClient };
import { SQSClient } from "@aws-sdk/client-sqs"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const sqsClient = new SQSClient({ region: REGION }); export { sqsClient };

这个例子可以在以下网站找到下载内容:。此处 GitHub.

创建文件名为 sqs_createqueue.js 的 Node.js 模块。确保按前面所示配置工具包,包括下载所需的客户端和软件包。创建一个包含列出队列所需的参数的 JSON 对象,这必须包括所创建队列的名称。参数也可以包含队列的属性,例如消息发送延迟的秒数或者保留所收到消息的秒数。调用 CreateQueueCommand 方法。函数将返回已创建队列的 URL。

注意

ReplaceSQS_QUEUE_NAME使用Amazon SNS 队列的名称,DelaySeconds消息传递延迟的秒数,以及MessageRetentionPeriod保留收到的消息的秒数。

// Import required AWS SDK clients and commands for Node.js import { CreateQueueCommand } from "@aws-sdk/client-sqs"; import { sqsClient } from "./libs/sqsClient.js"; // Set the parameters const params = { QueueName: "SQS_QUEUE_NAME", //SQS_QUEUE_URL Attributes: { DelaySeconds: "60", // Number of seconds delay. MessageRetentionPeriod: "86400", // Number of seconds delay. }, }; const run = async () => { try { const data = await sqsClient.send(new CreateQueueCommand(params)); console.log("Success", data); return data; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

要运行示例,在命令提示符处,输入以下内容。

node sqs_createqueue.js

这个例子可以在以下网站找到下载内容:。此处 GitHub.

获取队列的 URL

创建libs目录并创建文件名为模块文件名为模块 Node.jssqsClient.js. 将以下代码复制并粘贴到其中,这将创建 Amazon SQS 客户端对象。Replace领域此处Amazon区域。

import { SQSClient } from "@aws-sdk/client-sqs"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SQS service object. const sqsClient = new SQSClient({ region: REGION }); export { sqsClient };

这个例子可以在以下网站找到下载内容:。此处 GitHub.

创建文件名为 sqs_getqueueurl.js 的 Node.js 模块。确保按前面所示配置工具包,包括下载所需的客户端和软件包。创建一个包含列出队列所需的属性的 JSON 对象,这必须包括您需要其 URL 的队列的名称。调用 GetQueueUrlCommand 方法。函数将返回指定队列的 URL。

注意

替换和SQS_QUEUE_NAME使用 SQS 队列名称。

// Import required AWS SDK clients and commands for Node.js import { GetQueueUrlCommand } from "@aws-sdk/client-sqs"; import { sqsClient } from "./libs/sqsClient.js"; // Set the parameters const params = { QueueName: "SQS_QUEUE_NAME" }; const run = async () => { try { const data = await sqsClient.send(new GetQueueUrlCommand(params)); console.log("Success", data); return data; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

要运行示例,在命令提示符处,输入以下内容。

node sqs_getqueueurl.js

这个例子可以在以下网站找到下载内容:。此处 GitHub.

删除队列

创建libs目录并创建文件名为模块文件名为模块 Node.jssqsClient.js. 将以下代码复制并粘贴到其中,这将创建 Amazon SQS 客户端对象。Replace领域此处Amazon区域。

import { SQSClient } from "@aws-sdk/client-sqs"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SQS service object. const sqsClient = new SQSClient({ region: REGION }); export { sqsClient };

这个例子可以在以下网站找到下载内容:。此处 GitHub.

创建文件名为 sqs_deletequeue.js 的 Node.js 模块。请确保按前面所示配置开发工具包,其中包括下载所需的客户端和包。创建一个包含删除队列所需的参数的 JSON 对象,这包括您要删除的队列的 URL。调用 DeleteQueueCommand 方法。

注意

ReplaceSQS_QUEUE_URL使用Amazon SQS 队列的 URL。

// Import required AWS SDK clients and commands for Node.js import { DeleteQueueCommand } from "@aws-sdk/client-sqs"; import { sqsClient } from "./libs/sqsClient.js"; // Set the parameters const params = { QueueUrl: "SQS_QUEUE_URL" }; //SQS_QUEUE_URL e.g., 'https://sqs.REGION.amazonaws.com/ACCOUNT-ID/QUEUE-NAME' const run = async () => { try { const data = await sqsClient.send(new DeleteQueueCommand(params)); console.log("Success", data); return data; // For unit tests. } catch (err) { console.error(err, err.stack); } }; run();

要运行示例,在命令提示符处,输入以下内容。

node sqs_deletequeue.js

这个例子可以在以下网站找到下载内容:。此处 GitHub.