管理 Amazon SNS 中的主題 - AWS SDK for JavaScript

我們宣布即將推出 end-of-support AWS SDK for JavaScript v2。建議您遷移至 AWS SDK for JavaScript v3。如需日期、其他詳細資訊和如何遷移的資訊,請參閱連結公告。

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

管理 Amazon SNS 中的主題

JavaScript code example that applies to Node.js execution

這個 Node.js 程式碼範例會說明:

  • 如何在 Amazon SNS 中建立可以向其發佈通知的主題。

  • 如何刪除在 Amazon SNS 創建的主題。

  • 如何取得可用主題的清單。

  • 如何取得和設定主題屬性。

使用案例

在此範例中,您使用一系列 Node.js 模組來建立、列出和刪除 Amazon SNS 主題,以及處理主題屬性。Node.js 模組會使用 SDK JavaScript 來管理使用用AWS.SNS戶端類別的下列方法的主題:

先決條件任務

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

建立主題

在此範例中,使用 Node.js 模組建立 Amazon SNS 主題。以檔名 sns_createtopic.js 建立一個 Node.js 模組。依前述內容設定軟體開發套件。

建立一個物件,藉此將新主題的 Name 傳遞至 AWS.SNS 用戶端類別的 createTopic 方法。若要呼叫方createTopic法,請建立用於叫用 Amazon SNS 服務物件並傳遞參數物件的承諾。然後,在 promise 回呼中處理 response。promise 所傳回的 data 會包含主題 ARN。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create promise and SNS service object var createTopicPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .createTopic({ Name: "TOPIC_NAME" }) .promise(); // Handle promise's fulfilled/rejected states createTopicPromise .then(function (data) { console.log("Topic ARN is " + data.TopicArn); }) .catch(function (err) { console.error(err, err.stack); });

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

node sns_createtopic.js

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

列出 主題

在此範例中,使用 Node.js 模組列出所有 Amazon SNS 主題。以檔名 sns_listtopics.js 建立一個 Node.js 模組。依前述內容設定軟體開發套件。

建立空白物件,並將其傳遞至 AWS.SNS 用戶端類別的 listTopics 方法。若要呼叫方listTopics法,請建立用於叫用 Amazon SNS 服務物件並傳遞參數物件的承諾。然後,在 promise 回呼中處理 response。promise 所傳回的 data 會包含主題 ARN 陣列。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create promise and SNS service object var listTopicsPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .listTopics({}) .promise(); // Handle promise's fulfilled/rejected states listTopicsPromise .then(function (data) { console.log(data.Topics); }) .catch(function (err) { console.error(err, err.stack); });

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

node sns_listtopics.js

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

刪除主題

在此範例中,使用 Node.js 模組刪除 Amazon SNS 主題。以檔名 sns_deletetopic.js 建立一個 Node.js 模組。依前述內容設定軟體開發套件。

建立包含欲刪除主題 TopicArn 的物件,並將其傳遞至 AWS.SNS 用戶端類別的 deleteTopic 方法。若要呼叫方deleteTopic法,請建立用於叫用 Amazon SNS 服務物件並傳遞參數物件的承諾。然後,在 promise 回呼中處理 response

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create promise and SNS service object var deleteTopicPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .deleteTopic({ TopicArn: "TOPIC_ARN" }) .promise(); // Handle promise's fulfilled/rejected states deleteTopicPromise .then(function (data) { console.log("Topic Deleted"); }) .catch(function (err) { console.error(err, err.stack); });

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

node sns_deletetopic.js

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

取得主題屬性

在此範例中,使用 Node.js 模組擷取 Amazon SNS 主題的屬性。以檔名 sns_gettopicattributes.js 建立一個 Node.js 模組。依前述內容設定軟體開發套件。

建立包含欲刪除主題 TopicArn 的物件,並將其傳遞至 AWS.SNS 用戶端類別的 getTopicAttributes 方法。若要呼叫方getTopicAttributes法,請建立用於叫用 Amazon SNS 服務物件並傳遞參數物件的承諾。然後,在 promise 回呼中處理 response

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create promise and SNS service object var getTopicAttribsPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .getTopicAttributes({ TopicArn: "TOPIC_ARN" }) .promise(); // Handle promise's fulfilled/rejected states getTopicAttribsPromise .then(function (data) { console.log(data); }) .catch(function (err) { console.error(err, err.stack); });

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

node sns_gettopicattributes.js

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

設定主題屬性

在此範例中,使用 Node.js 模組來設定 Amazon SNS 主題的可變屬性。以檔名 sns_settopicattributes.js 建立一個 Node.js 模組。依前述內容設定軟體開發套件。

建立一個物件,其中包含用來更新屬性的參數,包括要設定屬性的主題 TopicArn、要設定的屬性名稱,以及該屬性的新數值。您只能設定 PolicyDisplayNameDeliveryPolicy 屬性。將參數傳遞至 AWS.SNS 用戶端類別的 setTopicAttributes 方法。若要呼叫方setTopicAttributes法,請建立用於叫用 Amazon SNS 服務物件並傳遞參數物件的承諾。然後,在 promise 回呼中處理 response

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create setTopicAttributes parameters var params = { AttributeName: "ATTRIBUTE_NAME" /* required */, TopicArn: "TOPIC_ARN" /* required */, AttributeValue: "NEW_ATTRIBUTE_VALUE", }; // Create promise and SNS service object var setTopicAttribsPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .setTopicAttributes(params) .promise(); // Handle promise's fulfilled/rejected states setTopicAttribsPromise .then(function (data) { console.log(data); }) .catch(function (err) { console.error(err, err.stack); });

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

node sns_settopicattributes.js

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