So erstellen Sie mit Cloudformation ein SNS-Topic auf AWS

AWS SNS ist ein Simple Notification Service, der von Cloudwatch verwendet werden kann, um Alarm-E-Mails zu versenden. Zuerst muss ein SNS-Thema erstellt werden und dann muss ein Endpunkt dafür abonniert werden.

In diesem Artikel werden wir ein SNS-Topic mit Cloudformation erstellen und einen E-Mail-Endpunkt abonnieren. Wir werden auch sehen, wie man das SNS-Thema und das Abonnement mit dem Cloudformation-Stack selbst löschen kann. Es wird vorausgesetzt, dass Sie ein grundlegendes Verständnis von SNS und seiner Funktionsweise haben. Dieser Artikel konzentriert sich auf die Erstellung von SNS mit Cloudformation Stack.

Vorraussetzungen

  1. AWS-Konto (Erstellen Sie es, wenn Sie noch keines haben).
  2. Grundlegendes Verständnis von SNS.
  3. Grundlegendes Verständnis von Cloudformation.

Was werden wir tun?

  1. Anmeldung bei AWS.
  2. Erstellen Sie eine Vorlage.
  3. Erstellen Sie einen Stack.
  4. Bestätigen Sie das Abonnement.
  5. Löschen Sie den Stack.

Anmeldung bei AWS

Klicken Sie hier, um zur AWS-Anmeldeseite zu gelangen. Geben Sie Ihre Benutzeranmeldedaten ein, um sich in Ihr AWS-Konto einzuloggen.

Login-Seite

Sobald Sie sich erfolgreich in Ihr Konto eingeloggt haben, sehen Sie die AWS Management Console wie folgt.

AWS Management-Konsole

Erstellen Sie eine Vorlage

Bevor wir mit der Erstellung des Stacks fortfahren, lassen Sie uns eine Vorlage „create-sns-topic.template“ auf Ihrem lokalen Rechner mit der folgenden Cloudformation-Konfiguration erstellen.

Sie können die Cloudformation-Vorlage auch aus meinem Github-Repository herunterladen, unten ist der Link zur Vorlage.

Link:https://github.com/shivalkarrahul/DevOps/blob/master/aws/cloudformation/create-sns-topic/create-sns-topic.template

---
AWSTemplateFormatVersion: '2010-09-09'
Description: The SNS Topic
Parameters:
  SubscriptionEndPoint:
    Type: String
    Description: The endpoint that receives notifications.
  SubscriptionProtocol:
    Type: String
    Description: The subscription protocol
    AllowedValues:
    - http
    - https
    - email
    - email-json
    - sms
    - sqs
    - application
    - lambda
    Default: email
Mappings: {}
Conditions: {}
Resources:
  SNSTopic:
    Type: AWS::SNS::Topic
    Properties: {}
  SNSSubscription:
    Type: AWS::SNS::Subscription
    Properties:
      Endpoint:
        Ref: SubscriptionEndPoint
      Protocol:
        Ref: SubscriptionProtocol
      TopicArn:
        Ref: SNSTopic
Outputs:
  QueueName:
    Description: Name of the SNS Topic we created
    Value:
      Fn::GetAtt:
      - SNSTopic
      - TopicName
  TopicARN:
    Description: ARN of the SNS Topic we created 
    Value:
      Ref: SNSTopic

Erstellen Sie einen Cloudformation-Stack

Sobald Sie die Vorlage auf Ihrem lokalen Rechner haben, sind Sie bereit, einen Cloudformation-Stack zu erstellen.

Klicken Sie auf „Services“ oben links auf dem Bildschirm und suchen Sie unter Management und Governance nach Cloudformation.

Suche nach Cloudformation

Um einen Stack zu erstellen, sehen Sie eine Option „Stack erstellen“ auf der rechten Seite des Bildschirms, klicken Sie darauf. Sie werden 2 Optionen sehen, von diesen 2 Optionen klicken Sie auf „Mit neuen Ressourcen (Standard)“. „delete2“ ist ein bestehender Stack in meinem Konto unter der ausgewählten Region, Sie werden ihn nicht in Ihrem Konto sehen.

Erstellen eines Cloudformation-Stacks

Klicken Sie auf „Eine Vorlagendatei hochladen“ und wählen Sie die Vorlage von Ihrem lokalen Rechner. Klicken Sie auf die Schaltfläche „Weiter“.

Wählen Sie die Vorlage

Geben Sie Stack-Details wie Stack-Name, Subscription-Endpunkt und Subscription-Protokoll an. Sie können das Protokoll aus der Dropdown-Liste unter der Option „SubscriptionProtocol“ auswählen. Ich habe „email“ als SubscriptionProtocol gewählt. Wenn das SubscriptionProtocol „email“ ist, müssen Sie Ihre E-Mail-Adresse als SubscriptionEndpoint angeben. Klicken Sie auf die Schaltfläche „Next“, um fortzufahren.

Geben Sie Ihre E-Mail an

Tags sind optional und es ist nicht zwingend erforderlich, auf dieser Seite Tags anzugeben. Klicken Sie auf die Schaltfläche „Weiter“, um fortzufahren.

Tags sind optional

Scrollen Sie am Ende der Seite nach unten und klicken Sie auf die Schaltfläche „Stack erstellen“. Dadurch wird ein Stack erstellt, der wiederum ein SNS-Thema mit E-Mail als SubscriptionEndpoint erstellt.

Erstellen Sie den Stapel

Die Erstellung der Ressourcen wird einige Minuten dauern und sobald die Ressourcen erstellt wurden, sehen Sie den Status „CREATE_COMPLETE“ für den Stack.

Stapelerstellung erfolgreich

SNS-Thema verifizieren

Sie können zu SNS gehen und überprüfen, ob das Thema erstellt wurde. Suchen Sie nach SNS, was Sie zur SNS-Konsole führt.

SNS suchen

Klicken Sie hier auf „Topics“ im linken Bereich und wählen Sie das Thema aus, das erstellt wurde. Ihr SNS-Thema hat den Themennamen mit dem vorangestellten Namen des Cloudformation-Stacks. Unter der Registerkarte „Subscription“ sehen Sie, dass der Endpunkt auch erstellt wurde, aber der Status ist „Pending confirmation“.

Wenn die Subskription erstellt wird, sendet sie einen Bestätigungslink an den angegebenen Endpunkt. Hier hatten wir eine E-Mail-Adresse als Endpunkt angegeben, also müssen wir eine E-Mail mit dem Bestätigungslink erhalten haben.

Abonnement-Status

Rufen Sie den Posteingang der E-Mail auf, die Sie als Endpunkt für das Abonnement angegeben haben. Öffnen Sie die E-Mail und Sie werden einen Hyperlink „Abonnement bestätigen“ sehen, klicken Sie darauf.

Bestätigen Sie die Anmeldung

Sobald das Abonnement bestätigt ist, sehen Sie eine Meldung wie die folgende.

Abonnement bestätigt

Gehen Sie nun zurück zum Thema und überprüfen Sie unter der Registerkarte „Abonnements“ den Endpunkt und Sie werden den Status „Bestätigt“ sehen. Damit ist die Erstellung eines SNS-Themas zusammen mit einem Endpunkt dazu abgeschlossen. Sie sind nun bereit, Nachrichten auf diesem SNS zu veröffentlichen, die diese Nachrichten an den angegebenen Endpunkt senden werden.

Abonnementstatus prüfen

Löschen des Stacks

Wenn Sie das SNS und das Abonnement im Konto nicht mehr benötigen, können Sie den Stack löschen, wodurch wiederum die von ihm erstellten Ressourcen gelöscht werden. Gehen Sie zu dem Stack und klicken Sie auf die Schaltfläche „Löschen“.

Löschen Sie den Stapel

Bestätigen Sie die Löschaktion mit einem Klick auf die Schaltfläche „Stack löschen“. Sobald der Stapel gelöscht ist, werden auch alle von ihm erstellten Ressourcen gelöscht und können nicht wiederhergestellt werden. Seien Sie vorsichtig bei der Durchführung des Löschvorgangs, wenn Sie das AWS-Konto Ihrer Organisation oder des Kunden verwalten.

Bestätigung der Löschung

Der Löschvorgang dauert einige Minuten. Nachdem der Stack gelöscht wurde, wird der Status „DELETE_COMPLETE“ angezeigt und der Stack ist nicht mehr verfügbar.

Stapellöschung erfolgreich

Fazit

In diesem Artikel haben wir gesehen, wie einfach es ist, ein SNS-Thema und ein Abonnement für das Thema mit Cloudformation-Stack zu erstellen. Wir haben E-Mail als Abonnement-Protokoll verwendet. Sie können ein Protokoll Ihrer Wahl aus der verfügbaren Liste auswählen und dessen Endpunkt für das Thema angeben. Wir haben auch gesehen, wie das Löschen des Stacks die Ressourcen löscht, die er erstellt hat.

Das könnte dich auch interessieren …