管理 Amazon SNS 中的主题 - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

帮助我们改进Amazon SDK for JavaScript版本 3 (V3) 文档,方法是使用反馈链接,或者在上创建议题或拉取请求GitHub.

这些区域有:Amazon SDK for JavaScriptV3 API 参考指南详细描述了Amazon SDK for JavaScript版本 3 (V3)。

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

管理 Amazon SNS 中的主题


                    JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何在 Amazon SNS 中创建可以将通知发布到的主题。

  • 如何删除在 Amazon SNS 中创建的主题。

  • 如何获取可用主题的列表。

  • 如何获取和设置主题属性。

情景

在本示例中,您使用一系列 Node.js 模块来创建、列出和删除 Amazon SNS 主题,以及处理主题属性。Node.js 模块使用开发工具包通 JavaScript 以下方法来管理主题。SNS客户端类:

先决条件任务

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

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

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

重要

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

创建主题

在本示例中,使用 Node.js 模块创建 Amazon SNS 主题。

创建libs目录,并创建文件名为的 Node.js 模块snsClient.js。将下面的代码复制并粘贴到其中,这将创建 Amazon SNS 客户端对象。Replace区域使用您的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 包含主题的 ARN。

注意

Replace主题名称替换为主题的名称。

// 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 客户端对象。Replace区域使用您的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 资源名称 (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 客户端对象。Replace区域使用您的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 客户端服务对象并传递参数对象。

注意

Replace主题-ARN,并提供要删除主题的 Amazon 资源名称 (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 客户端对象。Replace区域使用您的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 客户端服务对象并传递参数对象。

注意

Replace主题-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 客户端对象。Replace区域使用您的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、要设置的属性的名称以及该属性的新值。您只能设置 PolicyDisplayNameDeliveryPolicy 属性。将参数传递到 SNS 客户端类的 SetTopicAttributesCommand 方法。若要调用SetTopicAttributesCommand方法,请创建一个异步函数来调用 Amazon SNS cleint 服务对象并传递参数对象。

注意

Replace属性名称替换为正在设置的属性的名称,主题-ARN与要设置其属性的主题的 Amazon 资源名称 (ARN),并新属性值替换为该属性的新值。

// 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 上)