Amazon SDK for JavaScriptV3 API 参考指南详细描述了Amazon SDK for JavaScript版本 3 (V3) 的所有 API 操作。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在Amazon SNS 中管理话题
此 Node.js 代码示例演示:
-
如何在 Amazon SNS 中创建可以向其发布通知的主题。
-
如何删除在 Amazon SNS S S S 中创建的主题。
-
如何获取可用主题的列表。
-
如何获取和设置主题属性。
情景
在此示例中,您使用一系列 Node.js 模块来创建、列出和删除 Amazon SNS 主题,并处理主题属性。Node.js 模块使用的 JavaScript SDK 使用SNS
客户端类的以下方法管理主题:
先决条件任务
要设置和运行此示例,您必须先完成以下任务:
-
设置项目环境以运行这些节点 TypeScript 示例,并安装所需的模块Amazon SDK for JavaScript和第三方模块。按照上的说明进行操作 GitHub
。 -
使用用户凭证创建共享配置文件。有关提供凭证 JSON 文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证。
这些示例演示了如何使用 ECMAScript6 (ES6) 导入/导出客户端服务对象和命令。
这需要 Node.js 13.x 或更高版本。要下载并安装最新版本的 Node.js,请参阅 Node.js
。 如果你更喜欢使用 CommonJS 语法,请参阅JavaScript es6/CommonJS 语法。
创建主题
在此示例中,使用 NS 主题来创建 Amazon SNS 主题。Node.js
创建一个libs
目录,然后使用该文件名创建 Node.js 模块snsClient.js
。将以下代码复制并粘贴到其中,这将创建 Amazon SNS 客户端对象。将 RE G
ION 替换为您的Amazon区域。
import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };
此示例代码可以在此处找到 GitHub
创建文件名为 sns_createtopic.js
的 Node.js 模块。如前所示配置 SDK,包括安装所需的客户端和软件包。
创建对象,将新主题的 Name
传递到 SNS
客户端类的 CreateTopicCommand
方法。要调用该CreateTopicCommand
方法,请创建一个调用 Amazon SNS 服务对象并传递参数对象的异步函数。data
返回的内容包含主题的 ARN。
将 TOPIC_NAM
E 替换为主题的名称。
// Import required AWS SDK clients and commands for Node.js import {CreateTopicCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { Name: "TOPIC_NAME" }; //TOPIC_NAME const run = async () => { try { const data = await snsClient.send(new CreateTopicCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
要运行示例,请在命令提示符处输入以下内容。
node sns_createtopic.js
此示例代码可以在此处找到 GitHub
列出主题
在此示例中,使用 Node.js 模块列出所有 Amazon SNS 主题。
创建一个libs
目录,然后使用该文件名创建 Node.js 模块snsClient.js
。将以下代码复制并粘贴到其中,这将创建 Amazon SNS 客户端对象。将 RE G
ION 替换为您的Amazon区域。
import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };
此示例代码可以在此处找到 GitHub
创建文件名为 sns_listtopics.js
的 Node.js 模块。如前所示配置 SDK,包括安装所需的客户端和软件包。
创建一个空对象以传递到 SNS
客户端类的 ListTopicsCommand
方法。要调用该ListTopicsCommand
方法,请创建一个调用 Amazon SNS 服务对象并传递参数对象的异步函数。data
返回的内容包含您的主题Amazon Resource Name (ARN) 的数组。
// Import required AWS SDK clients and commands for Node.js import {ListTopicsCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; const run = async () => { try { const data = await snsClient.send(new ListTopicsCommand({})); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
要运行示例,请在命令提示符处输入以下内容。
node sns_listtopics.js
此示例代码可以在此处找到 GitHub
删除主题
在此示例中,使用 Node.js 模块删除 Amazon SNS 主题。
创建一个libs
目录,然后使用该文件名创建 Node.js 模块snsClient.js
。将以下代码复制并粘贴到其中,这将创建 Amazon SNS 客户端对象。将 RE G
ION 替换为您的Amazon区域。
import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };
此示例代码可以在此处找到 GitHub
创建文件名为 sns_deletetopic.js
的 Node.js 模块。如前所示配置 SDK,包括安装所需的客户端和软件包。
创建包含要删除的主题的 TopicArn
的对象,将其传递到 SNS
客户端类的 DeleteTopicCommand
方法。要调用该DeleteTopicCommand
方法,请创建一个调用 Amazon SNS 客户端服务对象并传递参数对象的异步函数。
将 TOPIC_ARN
替换为要删除主题的 Amazon Resource Name (ARN)。
// Load the AWS SDK for Node.js // Import required AWS SDK clients and commands for Node.js import {DeleteTopicCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { TopicArn: "TOPIC_ARN" }; //TOPIC_ARN const run = async () => { try { const data = await snsClient.send(new DeleteTopicCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
要运行示例,请在命令提示符处输入以下内容。
node sns_deletetopic.js
此示例代码可以在此处找到 GitHub
获取主题属性
在此示例中,使用 Node.js 模块检索 Amazon SNS 主题的属性。
创建一个libs
目录,然后使用该文件名创建 Node.js 模块snsClient.js
。将以下代码复制并粘贴到其中,这将创建 Amazon SNS 客户端对象。将 RE G
ION 替换为您的Amazon区域。
import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };
此示例代码可以在此处找到 GitHub
创建文件名为 sns_gettopicattributes.js
的 Node.js 模块。按前面所示配置开发工具包。
创建包含要删除主题的 TopicArn
的对象,将其传递到 SNS
客户端类的 GetTopicAttributesCommand
方法。要调用该GetTopicAttributesCommand
方法,请调用 Amazon SNS 客户端服务对象,传递参数对象。
将 TOPIC_ARN
替换为主题的 ARN。
// Import required AWS SDK clients and commands for Node.js import {GetTopicAttributesCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { TopicArn: "TOPIC_ARN" }; // TOPIC_ARN const run = async () => { try { const data = await snsClient.send(new GetTopicAttributesCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
要运行示例,请在命令提示符处输入以下内容。
node sns_gettopicattributes.js
此示例代码可以在此处找到 GitHub
设置主题属性
在此示例中,使用 Node.js 模块来设置 Amazon SNS 主题的可变属性。
创建一个libs
目录,然后使用该文件名创建 Node.js 模块snsClient.js
。将以下代码复制并粘贴到其中,这将创建 Amazon SNS 客户端对象。将 RE G
ION 替换为您的Amazon区域。
import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };
此示例代码可以在此处找到 GitHub
创建文件名为 sns_settopicattributes.js
的 Node.js 模块。按前面所示配置开发工具包。
创建包含用于属性更新参数的对象,这包括要设置其属性的主题的 TopicArn
、要设置的属性的名称以及该属性的新值。您只能设置 Policy
、DisplayName
和 DeliveryPolicy
属性。将参数传递到 SNS
客户端类的 SetTopicAttributesCommand
方法。要调用该SetTopicAttributesCommand
方法,请创建一个调用 Amazon SNS 客户端服务对象的异步函数,传递参数对象。
将 AT TRIBUTE_
NAME 替换为您正在设置的属性的名称,将
VALUE 替换为该属性的新值。TOPIC_ARN
替换为要设置其属性的主题的亚马逊资源名称 (ARN),将 NEW_ATTRIBUTE_
// Import required AWS SDK clients and commands for Node.js import {SetTopicAttributesCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { AttributeName: "ATTRIBUTE_NAME", // ATTRIBUTE_NAME TopicArn: "TOPIC_ARN", // TOPIC_ARN AttributeValue: "NEW_ATTRIBUTE_VALUE", //NEW_ATTRIBUTE_VALUE }; const run = async () => { try { const data = await snsClient.send(new SetTopicAttributesCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
要运行示例,请在命令提示符处输入以下内容。
node sns_settopicattributes.js
此示例代码可以在此处找到 GitHub