在 Amazon SNS 中發佈訊息 - AWS SDK for JavaScript

AWS SDK for JavaScript V3 API參考指南詳細描述 AWS 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 模組會使用 SDK 來使用用SNS戶端類別的這個方法 JavaScript 來傳送訊息:

先決條件任務

若要設定和執行此範例,您必須先完成這些任務:

  • 設置項目環境以運行這些節點 TypeScript 示例,並安裝所需AWS SDK for JavaScript的第三方模塊。按照上的說明進行操作 GitHub

  • 透過使用者登入資料建立共用組態檔。有關提供共用認證檔案的詳細資訊,請參閱 AWSSDK 和工具參考指南中的共用設定和認證檔案。

重要

這些範例示範如何使用 ECMAScript6 (ES6) 匯入/匯出用戶端服務物件和指令。

發佈訊息至 SNS 主題

在此範例中,使用 Node.js 模組將訊息發佈到 Amazon SNS 主題。

創建一個libs目錄,並使用文件名創建一個 Node.js 模塊snsClient.js。將下列程式碼複製並貼到其中,以建立 Amazon SNS 用戶端物件。以您的地區取代「AWS地區」。

import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});

您可以在這裡找到此範例程式碼 GitHub。

以檔名 publish-topic.js 建立一個 Node.js 模組。依前述內容設定軟體開發套件。

建立一個物件,其中包含用於發佈訊息的參數,包括訊息文字和 Amazon SnStoPic 的亞馬遜資源名稱 (ARN)。如需可用簡訊屬性的詳細資訊,請參閱 SetSMSAttributes

將參數傳遞給用SNS戶端類別的PublishCommand方法。建立叫用 Amazon SNS 用戶端服務物件的非同步函數,並傳遞參數物件。

注意

將訊息文字取代為訊息文字,並將主題取代為 SNS 主題的 ARN

import { PublishCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string | Record<string, any>} message - The message to send. Can be a plain string or an object * if you are using the `json` `MessageStructure`. * @param {string} topicArn - The ARN of the topic to which you would like to publish. */ export const publish = async ( message = "Hello from SNS!", topicArn = "TOPIC_ARN", ) => { const response = await snsClient.send( new PublishCommand({ Message: message, TopicArn: topicArn, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: 'e7f77526-e295-5325-9ee4-281a43ad1f05', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // MessageId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' // } return response; };

若要執行範例,請在命令提示字元中輸入下列命令。

node publish-topic.js

您可以在這裡找到此範例程式碼 GitHub。