在Amazon SNS 中发布消息 - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

在Amazon SNS 中发布消息


                    JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何将消息发布到 Amazon SNS 主题。

情景

在此示例中,您使用一系列 Node.js 模块将来自 Amazon SNS 的消息发布到主题终端节点、电子邮件或电话号码。Node.js 模块使用的 JavaScript SDK 使用SNS客户端类的以下方法发送消息:

先决条件任务

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

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

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

重要

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

将消息发布到 SNS 主题

在此示例中,使用 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_publishtotopic.js 的 Node.js 模块。按前面所示配置开发工具包。

创建一个包含发布消息的参数的对象,包括消息文本和 Amazon SNopic 的 Amazon Resource Name (ARN)。有关可用 SMS 属性的详细信息,请参阅SetSMSAttributes

将参数传递给SNS客户端类PublishCommand的方法。创建调用 Amazon SNS 客户端服务对象的异步函数,传递参数对象。

注意

MESSAGE_ TEXT 替换为消息文本,将 TOPIC_AR N 替换为 SNS 主题的 ARN。

// Import required AWS SDK clients and commands for Node.js import {PublishCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters var params = { Message: "MESSAGE_TEXT", // MESSAGE_TEXT TopicArn: "TOPIC_ARN", //TOPIC_ARN }; const run = async () => { try { const data = await snsClient.send(new PublishCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

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

node sns_publishtotopic.js

此示例代码可以在此处找到 GitHub