Verwenden Sie den Amazon Simple Notification Service mit Python

Zusammenfassung

Es ist üblich, ständig etwas überprüfen und eine E-Mail senden zu wollen, wenn bestimmte Bedingungen eintreten. Die Methode zum Senden von E-Mails direkt von einer EC2-Instanz in AWS ist jedoch standardmäßig eingeschränkt und erfordert möglicherweise ein Verfahren zum Abbrechen.

Wenn Sie abbrechen möchten, klicken Sie hier Formular zur Freigabe von EC2-E-Mail-Versandbeschränkungen

Amazon Simple Notification Service ist überwältigend einfach, wenn Sie nur eine E-Mail an ein vorgegebenes Benachrichtigungsziel senden.

ARN über den Bildschirm von Amazon SNS ausgeben

  1. Wechseln Sie von der Serviceliste der AWS Management Console zu Amazon SNS
  2. Suchen Sie das Pulldown-Menü Erstellen und Hinzufügen in der linken Navigationsleiste und klicken Sie darauf
  3. Klicken Sie auf Neues Thema erstellen
  4. Geben Sie den Themennamen auf dem angezeigten Bildschirm ein. Der Themenname ist tatsächlich Teil der ARN. Geben Sie ihn daher innerhalb von 256 Zeichen ein (Symbole können nur Bindestriche und Unterstriche sein). Der Anzeigename steht für SMS, sodass Sie fortfahren können, ohne ihn einzugeben.
  5. Klicken Sie zum Erstellen auf Kistenthema
  6. Nach Abschluss des Vorgangs wird auf dem Bildschirm das Thema ARN angezeigt. Überprüfen Sie daher den Wert wie "arn: aws: sns: ap-northeast-1: 111111111111: testtopicname" auf der rechten Seite. ap-northeast-1 sollte Ihre AWS-Konto-ID als 12-stellige Nummer enthalten, die die von Ihnen erstellte Region 111111111111 ist. Dies ist wichtig, machen Sie sich also irgendwo eine Notiz
  7. Klicken Sie unten im selben Bildschirm auf die Schaltfläche Abonnement erstellen
  8. Wählen Sie unter Protokoll die Option E-Mail aus dem Pulldown-Menü aus. Geben Sie unter Endpunkt die E-Mail-Adresse ein, die Sie erhalten möchten, und klicken Sie unten rechts auf die Schaltfläche Abonnieren.
  9. Klicken Sie auf die Schaltfläche Schließen, um zu den ursprünglichen Informationen zurückzukehren. Auf dem Bildschirm sollte das Element mit der Bezeichnung Abonnement-ID ausstehende Bestätigung sein
  10. Die erste Empfangsbestätigungs-E-Mail wird an die registrierte E-Mail-Adresse gesendet. Stellen Sie sicher, dass Sie in der entsprechenden E-Mail auf den Link Bestätigung klicken, um Ihre Absicht anzuzeigen, ihn zu erhalten. Bitte beachten Sie, dass Sie keine nachfolgenden Benachrichtigungs-E-Mails erhalten, wenn Sie dies nicht tun.
  11. Wenn Sie die obigen Schritte ordnungsgemäß ausführen, wird die Abonnement-ID "arn: aws: sns: ap-northeast-1: 111111111111: testtopicname: 8851ea7b-0610-4def-9b38-exxxxxxxxxxxxxx" an der Stelle eingegeben, an der sich die ausstehende Bestätigung befand. Es sollte geben. Aber ich glaube nicht, dass es eine bestimmte Szene gab, in der ich das benutzt habe. Verwenden Sie die Themen-ARN nur in Schritt 6

Code schreiben

Ich mache nicht so viel wie schreiben. Kopieren Sie einfach den Beispielcode, schreiben Sie den Inhalt neu und fügen Sie ihn nach dem Originalcode hinzu.

snstest.py


import boto.sns

region = 'ap-northeast-1'
#Da diese Region angibt, welche Region verwendet werden soll, geben Sie die Region ein, die tatsächlich von ARN erfasst wurde.

if conditionmatched:
#Wenn eine bestimmte Bedingung erfüllt ist

        topic = 'arn:aws:sns:ap-northeast-1:111111111111:testtopicname'
#Verwenden des Themen-ARN von früher

        subject = 'Your Email Subject!!'
#Mit dem Titel einer solchen E-Mail

        body = 'You got %s !' % (messagebody)  
#Senden Sie den Inhalt des Textes einer solchen E-Mail. Englisch ist, weil der Zeichencode problematisch war, aber vielleicht ist es nicht so problematisch...

        conn = boto.sns.connect_to_region(region)
        conn.publish(topic, body, subject)

Am Ende

Der Amazon Simple Notification Service scheint jetzt mit Mobile Push-Unterstützung im Rampenlicht zu stehen, aber es ist ein unbesungener Held, der nicht in den Vordergrund gerückt ist. Ich bin besonders beeindruckt von der schlauen Arbeit hinter den CloudWatch-Alarmeinstellungen ... aber nur ein paar Zeilen hinter dem ursprünglich geschriebenen Code funktioniert es einwandfrei. Es ist ein Typ, also gibt es keinen Grund, es nicht zu benutzen.

Wenn der API-Aufruf fehlschlägt, müssen Sie möglicherweise überlegen, ob Sie Exponential wieder deaktivieren möchten. Diesmal ist dies jedoch nicht so kritisch, sodass dies in Ordnung ist.

Verweise

Hier finden Sie häufig auftretende API-Aufruffehler API-Handbuch für den Amazon Simple Notification Service - Häufige Fehler (nur Englisch)

Hier erfahren Sie, wie Sie es erneut versuchen, wenn ein API-Aufruf fehlschlägt Allgemeine Referenz zum Amazon Web Service (japanische Übersetzung)

Recommended Posts

Verwenden Sie den Amazon Simple Notification Service mit Python
Probieren Sie Amazon Simple Workflow Service (SWF) mit Python und boto3 aus
[Python] Verwenden Sie JSON mit Python
Verwenden Sie Mecab mit Python 3
Verwenden Sie DynamoDB mit Python
Verwenden Sie Python 3.8 mit Anaconda
Verwenden Sie Python mit Docker
Verwenden Sie Python / Django mit dem Windows Azure Cloud Service!
Verwenden Sie die Trello-API mit Python
Verwenden Sie die Twitter-API mit Python
Verwenden Sie TUN / TAP mit Python
Verwenden Sie die Unterschall-API mit Python3
Python: So verwenden Sie Async mit
Verwenden Sie eine Point Grey-Kamera mit Python (PyCapture2).
Verwenden Sie NAIF SPICE TOOL KIT mit Python
Verwenden Sie rospy mit virtualenv in Python3
Verwenden Sie Python in pyenv mit NeoVim
Verwenden Sie die Windows 10-Sprachsynthese mit Python
Automatisieren Sie einfache Aufgaben mit Python Part0
Verwenden Sie OpenCV mit Python 3 in Window
Verwenden Sie PostgreSQL mit Lambda (Python + psycopg2)
Python-Dienst
Erstellen einer einfachen Power-Datei mit Python
Verwenden Sie smbus mit python3 in einer pyenv-Umgebung
Verwenden Sie DeepL mit Python (für die Artikelübersetzung)
Einfacher Slack API-Client mit Python
Automatisieren Sie einfache Aufgaben mit Python Part1 Scraping
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
[Einführung in Python] Verwenden wir foreach mit Python
Verwenden Sie PIL oder Pillow mit Cygwin Python
Verwenden Sie die Verschlüsselung der Verschlüsselungsbibliothek mit dem Python-Image von Docker
Verwenden Sie Application Insights mit Python 3 (einschließlich Flaschen).
[Azure] Klicken Sie mit Python auf Custom Vision Service
Verwenden von C ++ - Funktionen aus Python mit pybind11
Senden Sie eine E-Mail mit Amazon SES + Python
Verwenden Sie den Phantomjs-Webdriver von Selen mit Pythons Unittest
Bis Sie opencv mit Python verwenden können
Verwenden Sie Python und MeCab mit Azure-Funktionen
Ich habe mit Python einen einfachen Blackjack gemacht
FizzBuzz in Python3
Scraping mit Python
Ich möchte MATLAB feval mit Python verwenden
Statistik mit Python
Verwenden Sie zusätzliche Python-Pakete mit Serverless Framework (v1.x)
Scraping mit Python
Python mit Go
Geben Sie die ausführbare Python-Datei an, die mit virtualenv verwendet werden soll
Verwenden Sie vorerst Logger mit Python
Twilio mit Python
In Python integrieren
Starten Sie mit Docker einen einfachen Python-Webserver
Python> Mit Laufzeitargumenten ausführen> Import argparse verwenden
Verwenden Sie mit pyenv mehrere Versionen der Python-Umgebung
Wickeln Sie C mit Cython für Python ein
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python