Elastic Beanstalk-Umgebungsbenachrichtigungen mit Amazon SNS - AWS Elastic Beanstalk

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.

Elastic Beanstalk-Umgebungsbenachrichtigungen mit Amazon SNS

Sie können Ihre AWS Elastic Beanstalk-Umgebung so konfigurieren, dass Sie Amazon Simple Notification Service (Amazon SNS) verwenden, um Sie über wichtige Ereignisse zu benachrichtigen, die Ihre Anwendung betreffen. Geben Sie beim Erstellen einer Umgebung oder später eine E-Mail-Adresse an, um E-Mails von AWS zu erhalten, wenn ein Fehler auftritt oder sich der Zustand Ihrer Umgebung ändert.

Anmerkung

Elastic Beanstalk verwendet Amazon SNS für Benachrichtigungen. Einzelheiten zu den Amazon SNS-Preisen finden Sie unter https://aws.amazon.com/sns/pricing/.

Wenn Sie Benachrichtigungen für Ihre Umgebung konfigurieren, erstellt Elastic Beanstalk in Ihrem Namen ein Amazon SNS-Thema für Ihre Umgebung. Um Nachrichten an ein Amazon SNS-Thema zu senden, muss Elastic Beanstalk über die erforderliche Berechtigung verfügen. Weitere Informationen finden Sie unter Konfigurieren von Berechtigungen zum Senden von Benachrichtigungen.

Wenn ein relevantes Ereignis eintritt, sendet Elastic Beanstalk eine Nachricht an das Thema. Anschließend leitet Amazon SNS die empfangenen Nachrichten an die Abonnenten des Themas weiter. Zu den besonderen Ereignissen zählen Fehler bei der Umgebungserstellung und alle Änderungen am Umgebungs- und Instance-Zustand. Ereignisse für Amazon EC2 Auto Scaling-Vorgänge (wie das Hinzufügen oder Entfernen von Instances zu bzw. aus der Umgebung) und andere Informationsereignisse lösen keine Benachrichtigungen aus.

Amazon SNS-Benachrichtigungs-E-Mail

Sie können beim Erstellen einer Umgebung oder zu einem späteren Zeitpunkt eine E-Mail-Adresse in die Elastic Beanstalk-Konsole eingeben. Dadurch wird ein Amazon SNS-Thema erstellt und abonniert. Elastic Beanstalk verwaltet den Lebenszyklus des Themas, löscht dieses nach Abschluss aus der Umgebung oder wenn Sie Ihre E-Mail-Adresse aus der Environment Management Console entfernen.

Der Namespace aws:elasticbeanstalk:sns:topics bietet Optionen zum Konfigurieren eines Amazon SNS-Themas mit Konfigurationsdateien, CLI oder einem SDK. Mit einer dieser Methoden können Sie den Subscriber-Typ und den Endpunkt konfigurieren. Als Subscriber-Typ können Sie eine Amazon SQS-Warteschlange oder HTTP-URL auswählen.

Sie können Amazon SNS-Benachrichtigungen lediglich aktivieren oder deaktivieren. Abhängig von der Größe und Zusammensetzung Ihrer Umgebung können sehr häufig Benachrichtigungen an das Thema gesendet werden. Für die Konfiguration von Benachrichtigungen, die unter bestimmten Umständen gesendet werden sollen, stehen Ihnen andere Optionen zur Verfügung Sie können mit Amazon EventBridge ereignisgesteuerte Regeln einrichten, die Sie benachrichtigen, wenn Elastic Beanstalk Ereignisse ausgibt, die bestimmte Kriterien erfüllen. Alternativ können Sie Ihre Umgebung so konfigurieren, dass benutzerdefinierte Metriken veröffentlicht und Amazon CloudWatch-Alarme festgelegt werden, um Sie zu benachrichtigen, wenn diese Kennzahlen einen ungesunden Schwellenwert erreichen.

Benachrichtigungen mit der Elastic Beanstalk-Konsole konfigurieren

In der Elastic Beanstalk-Konsole können Sie eine E-Mail-Adresse eingeben, um ein Amazon SNS-Thema für Ihre Umgebung zu erstellen.

So konfigurieren Sie Benachrichtigungen in der Elastic Beanstalk-Konsole:
  1. Öffnen Sie die Elastic-Beanstalk-Konsole und wählen Sie in der Liste Regions (Regionen) Ihre AWS-Region aus.

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Updates, monitoring and logging  (Updates, Überwachung und Protokolle) die Option Edit (Bearbeiten) aus.

  5. Scrollen Sie nach unten zum Bereich E-Mail-Benachrichtigungen.

  6. Geben Sie eine E-Mail-Adresse ein.

  7. Wählen Sie unten auf der Seite die Option Apply (Anwenden) aus, um die Änderungen zu speichern.

Wenn Sie eine E-Mail-Adresse für Benachrichtigungen eingeben, erstellt Elastic Beanstalk ein Amazon SNS-Thema für Ihre Umgebung und fügt ein Abonnement hinzu. Amazon SNS sendet eine E-Mail an die registrierte Adresse, um das Abonnement zu bestätigen. Zum Aktivieren des Abonnements und zum Empfangen von Benachrichtigungen müssen Sie auf den Link in der Bestätigungs-E-Mail klicken.

Konfigurieren von Benachrichtigungen mithilfe von Konfigurationsoptionen

Verwenden Sie die Optionen im aws:elasticbeanstalk:sns:topics-Namespace, um Amazon SNS-Benachrichtigungen für Ihre Umgebung zu konfigurieren. Sie können diese Optionen über Konfigurationsdateien, eine CLI oder ein SDK festlegen.

  • Benachrichtigungsendpunkt – Die E-Mail-Adresse, Amazon SQS-Warteschlange oder URL, an die Benachrichtigungen gesendet werden sollen. Wenn Sie diesen Option einstellen, werden für den angegebenen Endpunkt eine SQS-Warteschlange und ein Abonnement erstellt. Wenn der Endpunkt keine E-Mail-Adresse ist, müssen Sie zudem die Notification Protocol-Option festlegen. SNS validiert den Wert von Notification Endpoint basierend auf dem Wert von Notification Protocol. Wenn Sie diese Option mehrfach festlegen, werden zusätzliche Abonnements für das Thema erstellt. Wenn Sie diese Option entfernen, wird das Thema gelöscht.

  • Benachrichtigungsprotokoll – Das Protokoll, das zum Senden von Benachrichtigungen an den Notification Endpoint verwendet wird. Diese Option lautet standardmäßig email. Legen Sie diese Option auf email-json fest, um JSON-formatierte E-Mails zu senden, auf http oder https, um JSON-formatierte Benachrichtigungen an einen HTTP-Endpunkt zu posten, oder auf sqs, um Benachrichtigungen an eine SQS-Warteschlange zu übermitteln.

    Anmerkung

    AWS Lambda-Benachrichtigungen werden nicht unterstützt.

  • ARN des Benachrichtigungsthemas – Nach dem Festlegen eines Benachrichtungsendpunkts für Ihre Umgebung lesen Sie diese Einstellung, um den ARN des SNS-Themas abzurufen. Sie können diese Option auch festlegen, um ein bestehendes SNS-Thema für Benachrichtigungen zu verwenden. Ein Thema, das Sie mit dieser Option an Ihre Umgebung anfügen, wird nicht gelöscht, wenn Sie diese Option ändern oder die Umgebung beenden.

    Um Amazon SNS-Benachrichtigungen zu konfigurieren, benötigen Sie die erforderlichen Berechtigungen. Wenn Ihr IAM-Benutzer die verwaltete Benutzerrichtlinie AdministratorAccess-AWSElasticBeanstalk von Elastic Beanstalk verwendet, sollten Sie bereits über die erforderlichen Berechtigungen verfügen, um das standardmäßige Amazon-SNS-Thema zu konfigurieren, das Elastic Beanstalk für Ihre Umgebung erstellt. Wenn Sie jedoch ein Amazon SNS-Thema konfigurieren, das nicht von Elastic Beanstalk verwaltet wird, müssen Sie Ihrer Benutzerrolle die folgende Richtlinie hinzufügen.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:SetTopicAttributes", "sns:GetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:sns_topic_name" ] } ] }
  • Name des Benachrichtigungsthemas – Legen Sie diese Option fest, um den Namen des Amazon-SNS-Themas anzupassen, der für Umgebungsbenachrichtigungen verwendet wird. Wenn ein Thema mit demselben Namen bereits vorhanden ist, fügt Elastic Beanstalk dieses Thema an die Umgebung an.

    Warnung

    Wenn Sie ein vorhandenes SNS-Thema mit Notification Topic Name an eine Umgebung anfügen, löscht Elastic Beanstalk das Thema, falls Sie in Zukunft die Umgebung beenden oder diese Einstellung ändern.

    Wenn Sie diese Option ändern, wird auch der Notification Topic ARN geändert. Wenn ein Thema bereits an die Umgebung angefügt ist, löscht Elastic Beanstalk das alte Thema und erstellt dann ein neues Thema und ein neues Abonnement.

    Wenn Sie einen benutzerdefinierten Themennamen verwenden, müssen Sie auch einen ARN eines extern erstellten benutzerdefinierten Themas angeben. Die Richtlinie für verwaltete Benutzer erkennt ein Thema mit einem benutzerdefinierten Namen nicht automatisch, so dass Sie Ihren IAM-Benutzern benutzerdefinierte Amazon SNS-Berechtigungen erteilen müssen. Verwenden Sie eine ähnliche Richtlinie wie diejenige, die für ein benutzerdefiniertes Thema ARN verwendet wird, jedoch mit den folgenden Ergänzungen:

    • Nehmen Sie zwei weitere Aktionen in die Actions-Liste auf, insbesondere: sns:CreateTopic, sns:DeleteTopic

    • Wenn Sie den Notification Topic Name von einem benutzerdefinierten Themanamen zu einem anderen ändern, müssen Sie die ARNs beider Themen in die Liste Resource aufnehmen. Alternativ können Sie einen regulären Ausdruck einschließen, der beide Themen abdeckt. Auf diese Weise hat Elastic Beanstalk die Berechtigung, das alte Thema zu löschen und das neue zu erstellen.

Die EB-CLI und Elastic-Beanstalk-Konsole wenden die für die vorhergehenden Optionen empfohlenen Werte an. Diese Einstellungen müssen entfernt werden, wenn Sie Konfigurationsdateien zum Konfigurieren dieser Einstellungen verwenden möchten. Details dazu finden Sie unter Empfohlene Werte.

Konfigurieren von Berechtigungen zum Senden von Benachrichtigungen

In diesem Abschnitt werden Sicherheitsüberlegungen erläutert, die sich auf Benachrichtigungen beziehen, die Amazon SNS verwenden. Es gibt zwei verschiedene Fälle:

  • Verwenden des standardmäßige Amazon SNS-Thema, das Elastic Beanstalk für Ihre Umgebung erstellt.

  • Bereitstellen eines externen Amazon SNS-Themas über Konfigurationsoptionen.

Die Standardzugriffsrichtlinie für ein Amazon SNS-Thema erlaubt nur dem Besitzer des Themas, es zu veröffentlichen oder zu abonnieren. Durch die richtige Richtlinienkonfiguration kann Elastic Beanstalk jedoch die Erlaubnis erteilt werden, in einem der beiden in diesem Abschnitt beschriebenen Fälle ein Amazon SNS-Thema zu veröffentlichen. Weitere Informationen finden Sie in den folgenden Abschnitten.

Berechtigungen für ein Standard-Thema

Wenn Sie Benachrichtigungen für Ihre Umgebung konfigurieren, erstellt Elastic Beanstalk ein Amazon SNS-Thema für Ihre Umgebung. Um Nachrichten an ein Amazon SNS-Thema zu senden, muss Elastic Beanstalk über die erforderliche Berechtigung verfügen. Wenn die Umgebung die durch die Elastic Beanstalk-Konsole oder die EB-CLI für die Umgebung generierte Service-Rolle oder die Service-verknüpfte Überwachungsrolle des Kontos verwendet, sind keine weiteren Schritte erforderlich. Diese verwalteten Rollen enthalten die erforderliche Berechtigung, die es Elastic Beanstalk ermöglicht, Nachrichten an das Amazon SNS-Thema zu senden.

Wenn Sie jedoch beim Erstellen Ihrer Umgebung eine benutzerdefinierte Service-Rolle bereitgestellt haben, müssen Sie sicherstellen, dass diese benutzerdefinierte Service-Rolle die folgende Richtlinie enthält.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:ElasticBeanstalkNotifications*" ] } ] }

Berechtigungen für ein externes Thema

Konfigurieren von Benachrichtigungen mithilfe von Konfigurationsoptionen erklärt, wie Sie das Amazon SNS-Thema von Elastic Beanstalk durch ein anderes Amazon SNS-Thema ersetzen können. Wenn Sie das Thema ersetzt haben, muss Elastic Beanstalk überprüfen, ob Sie die Berechtigung haben, zu diesem SNS-Thema zu veröffentlichen, damit Sie das SNS-Thema mit der Umgebung verknüpfen können. Sie sollten sns:Publish haben. Die Servicerolle verwendet dieselbe Berechtigung. Um dies zu überprüfen, sendet Elastic Beanstalk als Teil Ihrer Aktion zum Erstellen oder Aktualisieren der Umgebung eine Test-Benachrichtigung an SNS. Wenn dieser Test fehlschlägt, scheitert auch Ihr Versuch, die Umgebung zu erstellen oder zu aktualisieren. Elastic Beanstalk zeigt eine Meldung an, die den Grund für diesen Fehler erläutert.

Wenn Sie eine benutzerdefinierte Servicerolle für Ihre Umgebung bereitstellen, müssen Sie sicherstellen, dass Ihre benutzerdefinierte Servicerolle die folgende Richtlinie enthält, damit Elastic Beanstalk Nachrichten an das Amazon SNS-Thema senden kann. Ersetzen Sie im folgenden Code sns_topic_name durch den Namen des Amazon SNS-Themas, das Sie in den Konfigurationsoptionen angegeben haben.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:sns_topic_name" ] } ] }

Weitere Informationen zur Amazon SNS-Zugriffssteuerung finden Sie unter Beispielfälle für Amazon SNS Zugriffskontrolle im Entwicklerhandbuch für Amazon Simple Notification .