Verwalten von Abonnements in Amazon SNS - AWS SDK for JavaScript

Helfen Sie uns, dasAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation durch Feedback unter Verwendung derFeedbackLink oder erstellen Sie ein Problem oder ziehen Sie eine Anfrage anGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-API-Referenzbeschreibt ausführlich alle API-Operationen für dieAWS 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 eines Amazon SNS -Themas

  • Abonnieren einer E-Mail-Adresse, eines Anwendungsendpunkts oder einesAWS Lambdain einem Amazon SNS -Thema.

  • Abmelden von Amazon SNS -Themen

Das Szenario

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

Erforderliche Aufgaben

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

  • Richten Sie die Projektumgebung so ein, dass diese Node TypeScript Beispiele ausgeführt werden, und installieren Sie die erforderlicheAWS SDK for JavaScriptModule und Drittanbieter-Module. Folgen Sie den Anweisungen aufGitHubaus.

  • Erstellen Sie eine freigegebene Konfigurationsdatei mit Ihren Anmeldeinformationen. Weitere Informationen zum Bereitstellen einer JSON-Datei mit den Anmeldeinformationen finden Sie unter Laden der Anmeldeinformationen in Node.js aus der Datei mit gemeinsamen -Anmeld.

Wichtig

In diesen Beispielen wird gezeigt, wie Client-Service-Objekte und Befehle mithilfe von ECMAScript6 (ES6) importiert/exportiert 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 lieber die CommonJS-Syntax verwenden möchten, finden Sie unterJavaScript ES6/CommonJS-Syntaxaus.

Auflisten von Abonnements eines Themas

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

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den folgenden Code, und fügen Sie ihn ein, wodurch das Amazon SNS Client-Objekt 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 };

Dieser Beispielcode finden Sie unterhier 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 Sie auf, umListSubscriptionsByTopicCommandErstellen Sie eine asynchrone Funktion, die ein Amazon SNS Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTOPIC_ARNVerwenden Sie den Amazon-Ressourcennamen (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();

Geben Sie an der Eingabeaufforderung Folgendes ein.

node sns_listsubscriptions.js

Dieser Beispielcode finden Sie unterhier auf GitHubaus.

Abonnieren eines Themas durch Hinterlegen einer E-Mail-Adresse

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

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den folgenden Code, und fügen Sie ihn ein, wodurch das Amazon SNS Client-Objekt 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 };

Dieser Beispielcode finden Sie unterhier 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 dassubscribeVerwenden Sie, um ein Amazon SNS -Thema mit mehreren verschiedenen Endpunkten abhängig von den Werten, die für die übergebenen Parameter verwendet werden, abonnieren, wie weitere Beispiele in diesem Thema veranschaulichen.

Rufen Sie auf, umSubscribeCommandErstellen Sie eine asynchrone Funktion, die ein Amazon SNS Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTOPIC_ARNDen Amazon-Ressourcennamen (ARN) für das Thema undEMAIL_ADRESSEmit der E-Mail-Adresse, an die Sie unterschreiben 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();

Geben Sie an der Eingabeaufforderung Folgendes ein.

node sns_subscribeemail.js

Dieser Beispielcode finden Sie unterhier auf GitHubaus.

Abonnements bestätigen

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

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den folgenden Code, und fügen Sie ihn ein, wodurch das Amazon SNS Client-Objekt 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 };

Dieser 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 Clients und Pakete.

Definieren Sie die Parameter, einschließlich derTOPIC_ARNundTOKEN, und definieren Sie einen Wert vonTRUEoder .FALSEfürAutheticateOnUnsubscribeaus. Wenn aufTRUEdieConfirm Subscription-Aktion erfordert eineAWS-Unterschrift:

Das Token ist ein kurzlebiges Token, das an den Besitzer eines Endpunkts während eines vorherigenSUBSCRIBEAktion Zum Beispiel für einen E-Mail-Endpunkt dieTOKENbefindet sich in der URL der E-Mail zum Bestätigen des Abonnements, die an den E-Mail-Besitzer gesendet wurde. Beispiel,abc123Der Token in der folgenden URL.

Rufen Sie auf, umConfirmSubscriptionCommandErstellen Sie eine asynchrone Funktion, die ein Amazon SNS Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTOPIC_ARNDen Amazon-Ressourcennamen (ARN) für das -ThemaTOKENmit dem Tokenwert aus der URL, die an den Endpunktbesitzer in einem vorherigenSubscribe-Aktion, und definieren SieAuthenticateOnAbmelden. mit dem WertTRUEoder .FALSEaus.

// 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();

Geben Sie zum Ausführen des Beispiels Folgendes bei der Eingabeaufforderung ein.

node sns_confirmsubscription.js

Den Beispiel-Code finden Sie unterauf GitHubaus.

Abonnieren eines Themas mit einem Anwendungsendpunkt

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

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den folgenden Code, und fügen Sie ihn ein, wodurch das Amazon SNS Client-Objekt 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 };

Den Beispiel-Code finden Sie unterauf 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, das dieProtocol-Parameter verwenden, um denapplication-Protokoll aufTopicArnFür das Thema, das Sie abonnieren möchten, und den Amazon-Ressourcennamen (ARN) eines mobilen Anwendungsendpunkts für denEndpoint-Parameter. Übergeben Sie die Parameter an die SubscribeCommand-Methode der Client-Klasse SNS.

Rufen Sie auf, umSubscribeCommandErstellen Sie eine asynchrone Funktion, die ein Amazon SNS -Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

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

// 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();

Geben Sie zum Ausführen des Beispiels Folgendes bei der Eingabeaufforderung ein.

node sns_subscribeapp.js

Den Beispiel-Code finden Sie unterauf GitHubaus.

Abonnieren eines Themas mit einer Lambda -Funktion

In diesem Beispiel verwenden Sie ein Modul Node.js zum Abonnieren einesAWS LambdaSo erhält er Benachrichtigungen von einem Amazon SNS -Thema.

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den folgenden Code, und fügen Sie ihn ein, wodurch das Amazon SNS Client-Objekt 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 };

Den Beispiel-Code finden Sie unterauf GitHubaus.

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

Erstellen Sie ein Objekt, das dieProtocol-Parameter, indem Sie denlambda-Protokoll aufTopicArnFür das Thema, das Sie abonnieren möchten, und den Amazon-Ressourcennamen (ARN) einesAWS Lambda-Funktion alsEndpoint-Parameter. Übergeben Sie die Parameter an die SubscribeCommand-Methode der Client-Klasse SNS.

Rufen Sie auf, umSubscribeCommandErstellen Sie eine asynchrone Funktion, die ein Amazon SNS Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTOPIC_ARNDen Amazon-Ressourcennamen (ARN) für das Thema undLAMBDA_FUNCTION_ARNDen Amazon-Ressourcennamen (ARN) der Lambda -Funktion verwenden.

// 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();

Geben Sie zum Ausführen des Beispiels Folgendes bei der Eingabeaufforderung ein.

node sns_subscribelambda.js

Den Beispiel-Code finden Sie unterauf GitHubaus.

Abmelden von einem Thema

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

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamensnsClient.jsaus. Kopieren Sie den folgenden Code, und fügen Sie ihn ein, wodurch das Amazon SNS Client-Objekt 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 };

Den Beispiel-Code finden Sie unterauf 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, das dieSubscriptionArnGeben Sie unter Angabe des Amazon-Ressourcennamens (ARN) des zu abonnierenden Abonnements an. Übergeben Sie die Parameter an die UnsubscribeCommand-Methode der Client-Klasse SNS.

Rufen Sie auf, umUnsubscribeCommandErstellen Sie eine asynchrone Funktion, die ein Amazon SNS Client-Serviceobjekt aufruft und das Parameterobjekt übergeben.

Anmerkung

ErsetzenTOPIC_SUBSCRIPTION_ARNVerwenden Sie den Amazon-Ressourcennamen (ARN) des Abonnements, um sich abzumelden.

// 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();

Geben Sie an der Eingabeaufforderung Folgendes ein.

node sns_unsubscribe.js

Den Beispiel-Code finden Sie unterauf GitHubaus.