

 適用於 JavaScript 的 AWS SDK v2 已end-of-support。我們建議您遷移至 [適用於 JavaScript 的 AWS SDK v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/)。如需如何遷移的其他詳細資訊和資訊，請參閱此[公告](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amazon SNS 中發佈訊息
<a name="sns-examples-publishing-messages"></a>

![JavaScript code example that applies to Node.js execution](http://docs.aws.amazon.com/zh_tw/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**這個 Node.js 程式碼範例會說明：**
+ 如何將訊息發佈至 Amazon SNS 主題。

## 使用案例
<a name="sns-examples-publishing-messages-scenario"></a>

在此範例中，您可以使用一系列 Node.js 模組，將訊息從 Amazon SNS 發佈到主題端點、電子郵件或電話號碼。Node.js 模組使用適用於 JavaScript 的 SDK，使用此`AWS.SNS`用戶端類別的方法傳送訊息：
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property)

## 先決條件任務
<a name="sns-examples-publishing-messages-prerequisites"></a>

若要設定和執行此範例，您必須先完成這些任務：
+ 安裝 Node.js。如需安裝 Node.js 的詳細資訊，請參閱 [Node.js 網站](http://nodejs.org)。
+ 透過使用者登入資料建立共用組態檔。如需有關提供登入資料 JSON 檔案的詳細資訊，請參閱 [從共用登入資料檔案中在 Node.js 中載入登入資料](loading-node-credentials-shared.md)。

## 將訊息發佈至 Amazon SNS 主題
<a name="sns-examples-publishing-text-messages"></a>

在此範例中，使用 Node.js 模組將訊息發佈至 Amazon SNS 主題。以檔名 `sns_publishtotopic.js` 建立一個 Node.js 模組。依前述內容設定軟體開發套件。

建立包含發佈訊息參數的物件，包括訊息文字和 Amazon SNS 主題的 ARN。如需可用簡訊屬性的詳細資訊，請參閱 [SetSMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setSMSAttributes-property)。

接著，將參數傳遞至 `AWS.SNS` 用戶端類別的 `publish` 方法。建立叫用 Amazon SNS 服務物件、傳遞參數物件的承諾。接著在 promise 回呼中處理回應。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create publish parameters
var params = {
  Message: "MESSAGE_TEXT" /* required */,
  TopicArn: "TOPIC_ARN",
};

// Create promise and SNS service object
var publishTextPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .publish(params)
  .promise();

// Handle promise's fulfilled/rejected states
publishTextPromise
  .then(function (data) {
    console.log(
      `Message ${params.Message} sent to the topic ${params.TopicArn}`
    );
    console.log("MessageID is " + data.MessageId);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

若要執行範例，請在命令列中輸入以下內容。

```
node sns_publishtotopic.js
```

您可以在 [GitHub 上](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_publishtotopic.js)找到這個範本程式碼。