我們宣布
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理 Amazon SNS 中的主題
這個 Node.js 程式碼範例會說明:
-
如何在 Amazon SNS 中建立可以向其發佈通知的主題。
-
如何刪除在 Amazon SNS 創建的主題。
-
如何取得可用主題的清單。
-
如何取得和設定主題屬性。
使用案例
在此範例中,您使用一系列 Node.js 模組來建立、列出和刪除 Amazon SNS 主題,以及處理主題屬性。Node.js 模組會使用 SDK JavaScript 來管理使用用AWS.SNS
戶端類別的下列方法的主題:
先決條件任務
若要設定和執行此範例,您必須先完成這些任務:
-
安裝 Node.js。如需安裝 Node.js 的詳細資訊,請參閱 Node.js 網站
。 -
透過使用者登入資料建立共用組態檔。如需有關提供登入資料 JSON 檔案的詳細資訊,請參閱 從共用登入資料檔案中在 Node.js 中載入登入資料。
建立主題
在此範例中,使用 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
您可以在這裡
列出 主題
在此範例中,使用 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
您可以在這裡
刪除主題
在此範例中,使用 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
您可以在這裡
取得主題屬性
在此範例中,使用 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
您可以在這裡
設定主題屬性
在此範例中,使用 Node.js 模組來設定 Amazon SNS 主題的可變屬性。以檔名 sns_settopicattributes.js
建立一個 Node.js 模組。依前述內容設定軟體開發套件。
建立一個物件,其中包含用來更新屬性的參數,包括要設定屬性的主題 TopicArn
、要設定的屬性名稱,以及該屬性的新數值。您只能設定 Policy
、DisplayName
和 DeliveryPolicy
屬性。將參數傳遞至 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
您可以在這裡