Verwalten von Abonnements in Amazon SNS - AWS SDK for JavaScript

Hilf uns, das zu verbessernAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation, indem Sie Feedback mithilfe derFeedbackverlinken, oder erstellen Sie ein Issue oder Pull Request aufGitHub.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-APIbeschreibt ausführlich alle API-Operationen für denAWS SDK for JavaScriptVersion 3 (V3).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten von Abonnements in Amazon SNS


                    JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • Auflisten aller Abonnements für ein Amazon SNS SNSNS-Thema

  • Abonnieren Sie eine E-Mail-Adresse, einen Anwendungsendpunkt oder einenAWS Lambda-Funktion für ein Amazon SNS SNSNS-Thema.

  • Abmelden von Amazon SNS SNSNS-Themen

Das Szenario

In diesem Beispiel verwenden Sie eine Reihe von Node.js Modulen zum Veröffentlichen von Benachrichtigungen in Amazon SNS SNS-Themen. Die Node.js Module verwenden das SDK für JavaScript zum Verwalten von Themen mithilfe dieser Methoden desSNSClient-Klasse:

Erforderliche Aufgaben

Zum Einrichten und Ausführen dieses Beispiels müssen Sie zunächst diese Aufgaben abschließen:

Wichtig

Diese Beispiele zeigen, wie Client-Serviceobjekte importiert/exportiert und mit ECMASCRIPT6 (ES6) befehligt werden.

  • Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen der neuesten Version von Node.js finden Sie unterNode.js Downloads.aus.

  • Wenn Sie die CommonJs-Syntax verwenden möchten, finden Sie unterJavaScript ES6/CommonJS-Syntaxaus.

Auflisten von Abonnements eines Themas

In diesem Beispiel verwenden Sie ein Modul Node.js zum Auflisten aller Abonnements eines Amazon SNS SNS-Themas.

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon SNS SNS-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion :

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

Diesen Beispielcode finden Siehier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sns_listsubscriptions.js. Konfigurieren Sie das SDK wie zuvor dargestellt.

Erstellen Sie ein Objekt, das den TopicArn-Parameter für das Thema enthält, dessen Abonnements Sie auflisten möchten. Übergeben Sie die Parameter an die ListSubscriptionsByTopicCommand-Methode der Client-Klasse SNS. rufen aufListSubscriptionsByTopicCommand-Methode erstellen Sie eine asynchrone Funktion, die ein Amazon SNS SNS-Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTHEMEN_ARNmit dem Amazon-Ressourcenname (ARN) für das Thema, dessen Abonnements Sie auflisten möchten.

// Import required AWS SDK clients and commands for Node.js import {ListSubscriptionsByTopicCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { TopicArn: "TOPIC_ARN" }; //TOPIC_ARN const run = async () => { try { const data = await snsClient.send(new ListSubscriptionsByTopicCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

Um das Beispiel auszuführen, geben Sie Folgendes ein an der Eingabeaufforderung ein.

node sns_listsubscriptions.js

Diesen Beispielcode finden Siehier auf GitHubaus.

Abonnieren eines Themas durch Hinterlegen einer E-Mail-Adresse

In diesem Beispiel verwenden Sie ein Modul Node.js zur Angabe einer E-Mail-Adresse für den Empfang von SMTP-E-Mail-Nachrichten eines Amazon-SNS-Themas.

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon SNS SNS-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion :

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

Diesen Beispielcode finden Siehier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sns_subscribeemail.js. Konfigurieren Sie das SDK wie zuvor dargestellt.

Erstellen Sie ein Objekt, das den Protocol-Parameter enthält, um das email-Protokoll, den TopicArn für das Thema, das abonniert werden soll, und eine E-Mail-Adresse als Endpoint der Nachricht anzugeben. Übergeben Sie die Parameter an die SubscribeCommand-Methode der Client-Klasse SNS. Sie können dassubscribe-Methode zum Abonnement von mehreren verschiedenen Endpunkten für ein Amazon-SNS-Thema, abhängig von den Werten, die für die übergebenen Parameter verwendet werden, abonnieren, wie weitere Beispiele in diesem Thema veranschaulichen.

rufen aufSubscribeCommand-Methode erstellen Sie eine asynchrone Funktion, die ein Amazon SNS SNS-Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTHEMEN_ARNmit dem Amazon-Ressourcennamen (ARN) für das -Thema undEMAIL_ADDRESSmit der E-Mail-Adresse, der Sie abonnieren möchten.

// Import required AWS SDK clients and commands for Node.js import {SubscribeCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { Protocol: "email" /* required */, TopicArn: "TOPIC_ARN", //TOPIC_ARN Endpoint: "EMAIL_ADDRESS", //EMAIL_ADDRESS }; const run = async () => { try { const data = await snsClient.send(new SubscribeCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

Um das Beispiel auszuführen, geben Sie Folgendes ein an der Eingabeaufforderung ein.

node sns_subscribeemail.js

Diesen Beispielcode finden Siehier auf GitHubaus.

Bestätigen von Abonnements

In diesem Beispiel verwenden Sie ein Modul Node.js, um die Absicht des Eigentümers eines Endpunkts zu überprüfen, indem Sie das Token auswerten, das dem Endpunkt in einer früheren Subscribe-Aktion gesendet wurde.

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon SNS SNS-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion :

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

Diesen Beispielcode finden Siehier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sns_confirmsubscription.js. Konfigurieren Sie das SDK wie zuvor gezeigt, einschließlich der Installation der erforderlichen Clients und Pakete.

Definieren Sie die Parameter, einschließlich derTOPIC_ARNundTOKEN, und definieren Sie einen Wert vonTRUEoderFALSEzumAutheticateOnUnsubscribeaus. Wenn eingestellt aufTRUEdieConfirm Subscription-Aktion erfordertAWSSignature.

Das Token ist ein kurzlebiges Token, das während eines vorherigen an den Besitzer eines Endpunkts gesendet wirdSUBSCRIBEAktion Für einen E-Mail-Endpunkt z. B.TOKENbefindet sich in der URL der E-Mail zum Bestätigen des Abonnements, die an den E-Mail-Besitzer gesendet wird. Beispiel,abc123ist das Token in der folgenden URL.

rufen aufConfirmSubscriptionCommand-Methode erstellen Sie eine asynchrone Funktion, die ein Amazon SNS SNS-Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTHEMEN_ARNmit dem Amazon-Ressourcennamen (ARN) für das -ThemaZEICHENmit dem Token-Wert von der URL, die in einer vorherigen an den Endpunktbesitzer gesendet wurdeSubscribeAktion und definierenAuthenticateonUnsubscribe. mit einem Wert vonTRUEoderFALSEaus.

// Import required AWS SDK clients and commands for Node.js import {ConfirmSubscriptionCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { Token: "TOKEN", // Required. Token sent to the endpoint by an earlier Subscribe action. */ TopicArn: "TOPIC_ARN", // Required AuthenticateOnUnsubscribe: "true", // 'true' or 'false' }; const run = async () => { try { const data = await snsClient.send(new ConfirmSubscriptionCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

Um das Beispiel auszuführen, geben Sie Folgendes bei der Eingabeaufforderung ein.

node sns_confirmsubscription.js

Diesen Beispielcode finden Sie unterhier auf GitHubaus.

Abonnieren eines Themas mit einem Anwendungsendpunkt

In diesem Beispiel verwenden Sie ein Modul Node.js zum Angabe eines mobilen Anwendungsendpunkts für den Empfang von Benachrichtigungen eines Amazon-SNS-Themas.

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon SNS SNS-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion :

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

Diesen Beispielcode finden Sie unterhier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sns_confirmsubscription.js. Konfigurieren Sie das SDK wie zuvor gezeigt, einschließlich der Installation der erforderlichen Module und Pakete.

Erstellen Sie ein Objekt, dasProtocolParameter zur Angabe desapplicationProtokoll:TopicArnfür das Thema, das abonniert werden soll, und den Amazon-Ressourcenname (ARN) eines mobilen Anwendungsendpunkts für denEndpoint-Parameter. Übergeben Sie die Parameter an die SubscribeCommand-Methode der Client-Klasse SNS.

rufen aufSubscribeCommand-Methode erstellen Sie eine asynchrone Funktion, die ein Amazon SNS SNS-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTHEMEN_ARNmit dem Amazon-Ressourcennamen (ARN) für das -Thema undMOBILE_ENDPOINT_ARNmit dem Endpunkt abonnieren Sie das Thema.

// Import required AWS SDK clients and commands for Node.js import {SubscribeCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { Protocol: "application" /* required */, TopicArn: "TOPIC_ARN", //TOPIC_ARN Endpoint: "MOBILE_ENDPOINT_ARN", // MOBILE_ENDPOINT_ARN }; const run = async () => { try { const data = await snsClient.send(new SubscribeCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

Um das Beispiel auszuführen, geben Sie Folgendes bei der Eingabeaufforderung ein.

node sns_subscribeapp.js

Diesen Beispielcode finden Sie unterhier auf GitHubaus.

Abonnieren einer Lambda-Funktion für ein Thema

In diesem Beispiel verwenden Sie ein Modul Node.js zum Abonnieren einesAWS Lambda-Funktion, damit es Benachrichtigungen von einem Amazon-SNS-Thema erhält.

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon SNS SNS-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion :

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

Diesen Beispielcode finden Sie unterhier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sns_subscribelambda.js. Konfigurieren Sie das SDK wie zuvor dargestellt.

Erstellen Sie ein Objekt, dasProtocol-Parameter, mit Angabe deslambdaProtokoll:TopicArnfür das Thema, das abonniert werden soll, und den Amazon-Ressourcenname (ARN) einesAWS LambdaFunktion alsEndpoint-Parameter. Übergeben Sie die Parameter an die SubscribeCommand-Methode der Client-Klasse SNS.

rufen aufSubscribeCommand-Methode erstellen Sie eine asynchrone Funktion, die ein Amazon SNS SNS-Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTHEMEN_ARNmit dem Amazon-Ressourcennamen (ARN) für das -Thema undLAMBDA_FUNCTION_ARNmit dem Amazon-Ressourcennamen (ARN) der Lambda-Funktion.

// Import required AWS SDK clients and commands for Node.js import {SubscribeCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { Protocol: "lambda" /* required */, TopicArn: "TOPIC_ARN", //TOPIC_ARN Endpoint: "LAMBDA_FUNCTION_ARN", //LAMBDA_FUNCTION_ARN }; const run = async () => { try { const data = await snsClient.send(new SubscribeCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

Um das Beispiel auszuführen, geben Sie Folgendes bei der Eingabeaufforderung ein.

node sns_subscribelambda.js

Diesen Beispielcode finden Sie unterhier auf GitHubaus.

Abmelden von einem Thema

In diesem Beispiel verwenden Sie ein Modul Node.js zum Abmelden eines Amazon SNS SNS-Themas.

Erstellen eineslibsVerzeichnis und erstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon SNS SNS-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion :

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

Diesen Beispielcode finden Sie unterhier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sns_unsubscribe.js. Konfigurieren Sie das SDK wie zuvor gezeigt, einschließlich der Installation der erforderlichen Clients und Pakete.

Erstellen Sie ein Objekt, dasSubscriptionArn-Parameter, indem Sie den Amazon-Ressourcennamen (ARN) des Abonnements angeben, das Sie abbestellen möchten. Übergeben Sie die Parameter an die UnsubscribeCommand-Methode der Client-Klasse SNS.

rufen aufUnsubscribeCommand-Methode erstellen Sie eine asynchrone Funktion, die ein Amazon SNS SNS-Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTOPIC_SUBSCRIPTION_ARNmit dem Amazon-Ressourcenname (ARN) des Abonnements zum Abbestellen.

// Import required AWS SDK clients and commands for Node.js import {UnsubscribeCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { SubscriptionArn: "TOPIC_SUBSCRIPTION_ARN" }; //TOPIC_SUBSCRIPTION_ARN const run = async () => { try { const data = await snsClient.send(new UnsubscribeCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

Um das Beispiel auszuführen, geben Sie Folgendes bei der Eingabeaufforderung ein.

node sns_unsubscribe.js

Diesen Beispielcode finden Sie unterhier auf GitHubaus.