AWS SDK for JavaScript V3 API參考指南詳細描述 AWS SDK for JavaScript 第 3 版 (V3) 的所有API操作。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon SNS 中發佈訊息
這個 Node.js 程式碼範例會說明:
-
如何將訊息發佈到 Amazon SNS 主題。
使用案例
在此範例中,您使用一系列 Node.js 模組將來自 Amazon SNS 的訊息發佈到主題端點、電子郵件或電話號碼。Node.js 模組會使用 SDK 來使用用SNS
戶端類別的這個方法 JavaScript 來傳送訊息:
先決條件任務
若要設定和執行此範例,您必須先完成這些任務:
-
設置項目環境以運行這些節點 TypeScript 示例,並安裝所需AWS SDK for JavaScript的第三方模塊。按照上的說明進行操作 GitHub
。 -
透過使用者登入資料建立共用組態檔。有關提供共用認證檔案的詳細資訊,請參閱 AWSSDK 和工具參考指南中的共用設定和認證檔案。
重要
這些範例示範如何使用 ECMAScript6 (ES6) 匯入/匯出用戶端服務物件和指令。
這需要 Node.js 版本 13.x 或更高版本。要下載並安裝最新版本的 Node.js,請參閱 Node.js 下載。
。 如果您偏好使用 CommonJS 語法,請參閱JavaScript 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({});
您可以在這裡
以檔名 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
您可以在這裡