[RUBY] Ich habe versucht, AWS I oT Button und Slack zu integrieren

Einführung

Ich habe mit der AWS IoT-Schaltfläche eine Slack-Benachrichtigungsschaltfläche erstellt.

Es ist ein Firmenwasserserver, aber die Person, die den letzten benutzt hat, hat einen Fluss, um die allgemeinen Angelegenheiten mit Slack zu benachrichtigen, aber wenn ich zu meinem Platz zurückkomme, vergesse ich, ihn zu informieren.

Also begann ich mit der Idee, Slack über die IoT-Schaltfläche sofort zu benachrichtigen, damit ich es nicht vergesse. Es ist problemlösungsorientiert.

Der Rest ist, weil dort eine AWS IoT-Schaltfläche vorhanden war.

Machen wir das!

Was vorzubereiten?

AWS IoT-Taste ✕ 1 (¥ 2.500) https://aws.amazon.com/jp/iotbutton/ ~~ Es ist eine Amazon-Dash-Schaltfläche, weil Sie sie sehen ~~, diesmal werde ich diese verwenden. Es scheint, dass für die Amazon-Dash-Schaltfläche ein PC als Server erforderlich ist. Ist die Einrichtung nicht einfach und der Preis hoch? Also werde ich das benutzen.

AWS-Konto ✕ 1 (USD $ 0,25 / Monat) Es scheint, dass es ungefähr 27 Yen pro Monat kostet. https://aws.amazon.com/jp/iot-1-click/pricing/

IoT-Schaltfläche aktivieren

Registrieren Sie zunächst die AwS IoT-Schaltfläche. Es scheint zwei Möglichkeiten zu geben, sich über die Konsole und mit einem Smartphone zu registrieren, aber mit einem Smartphone scheint es einfach zu sein.

Laden Sie die App aus dem Store herunter

Installieren Sie die App aus dem App Store für iOS oder Google Play für Android. Ich habe mich auf iOS registriert. iOS : https://apps.apple.com/us/app/aws-iot-button/id1178216626 Android : https://play.google.com/store/apps/details?id=com.amazonaws.iotbutton

Melden Sie sich bei AWS an, um Ihr Gerät zu registrieren und eine Verbindung zu Wifi herzustellen. Pochipochi. Pippi. Scannen Sie einfach den Barcode an der Seite der AWS IoT-Taste mit Ihrer Kamera, um sich zu registrieren. IMG_6601.PNG IMG_6602.PNG

Melden Sie sich von Ihrem PC aus bei der AWS-Konsole an und aktivieren Sie sie.

Ich habe nach dem Einstellen einen Screenshot gemacht, aber ich denke, dass er zuerst deaktiviert ist und das Projekt und die Platzierung nicht festgelegt sind. スクリーンショット 2019-12-11 18.13.44.png

Vorbereitung für die Slack-Integration

Fügen Sie den eingehenden Webhook zum App-Verzeichnis von Slack hinzu und veröffentlichen Sie die Webhook-URL. Legen Sie außerdem den Namen und das Symbol des eingehenden Webhooks fest, um eine Vorschau der Nachricht anzuzeigen. ▼ Ich habe versucht, es so zu machen スクリーンショット 2019-12-16 16.41.19.png

Erstellen Sie die Lambda-Funktion

Bereiten Sie ein Skript für die Ausführung mit Lambda unter AWS vor. Das Skript war diesmal so.


require "net/https"
require "uri"

def lambda_handler(event:, context:)
    uri = URI.parse('https://hooks.slack.com/services/XXXXXXXXXXX/XXXXXXXXXXX/XXXXXXXXXXXXXXXXXX')
    res = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == "https") { |http|
        http.request(Net::HTTP::Post.new(uri).tap { |req|
            req.body = {
                channel: 'Slack-Kanalname, über den Sie benachrichtigt werden möchten',
                username: 'Slack-Post-Benutzername, der während des Webhooks festgelegt wurde',
                text: '<@Benutzername der Person, die die Erwähnung überspringen soll>Ich habe den letzten von Aqua Clara installiert.',
            }.to_json
        })
    }
    { statusCode: 200, body: res.to_s }
end

Lassen Sie uns einen Test erstellen. Alles scheint in Ordnung zu sein, also werde ich es dieses Mal mit den Einstellungen der vorhandenen Vorlage namens HelloWorld erstellen und ausführen, um die Veröffentlichung in Slack zu überprüfen. スクリーンショット 2019-12-16 16.55.33.png Wenn Sie auf Slack posten können, ist der Code vorerst in Ordnung. Als nächstes folgt die Verbindung zwischen Button und AWS.

Stellen Sie auf der AWS IoT 1-Click-Seite eine Verbindung zum Gerät her

Ein Projekt erstellen

Erstellen Sie abschließend ein Projekt, das IoT-Schaltflächen und Lambda-Funktionen auf der AWS IoT 1-Click-Seite verknüpft. Melden Sie sich bei der Konsole an und öffnen Sie die Seite AWS IoT 1-Click. スクリーンショット 2019-12-26 17.59.41.png Nach Eingabe des Projektnamens können Sie den Namen und die Aktion der Gerätevorlage auswählen. Geben Sie die erstellte Lambda-Funktion an. スクリーンショット 2019-12-26 18.01.09.png

Platzierung erstellen

Wir werden das Gerät spezifizieren und eine Platzierung erstellen. Geben Sie das Gerät an und geben Sie den Namen und den Wert des Attributs ein スクリーンショット 2019-12-26 18.16.00.png

Drücken Sie die Taste, um die Slack-Integration zu überprüfen

Es ist in Ordnung, wenn es verknüpft ist!

Referenzseite

Dieser Artikel basiert auf dem folgenden Qiita-Artikel. Dank Ihnen funktioniert es seit mehr als einem halben Jahr gut, was praktisch ist! https://qiita.com/cumet04/items/11bc8883ae9cc603b84d

Recommended Posts

Ich habe versucht, AWS I oT Button und Slack zu integrieren
Ich habe versucht, Docker und Maven / Netbean mit Jib gut zu integrieren
Ich habe versucht, grafana und postgres [docker-compose] zu verknüpfen
Ich habe versucht, JavaFX und Spring Framework zu verknüpfen.
Ich habe versucht, CSV mit Outsystems zu lesen und auszugeben
Ich habe versucht, SQS mit AWS Java SDK zu betreiben
Ich habe MySQL 5.7 mit Docker-Compose gestartet und versucht, eine Verbindung herzustellen
Ich habe versucht, C # zu kauen (Dateien lesen und schreiben)
Ich habe versucht, yum-cron zu verifizieren
Ich habe versucht, Rubys "Klassen" -Probleme zu sammeln und zu lösen.
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich habe versucht, dies und das von Spring @ Transactional zu überprüfen
Ich habe versucht, Java Optional und Guard-Klausel koexistieren zu lassen
Ich habe versucht, persönlich nützliche Apps und Entwicklungstools (Entwicklungstools) zusammenzufassen.
Ich habe versucht, persönlich nützliche Apps und Entwicklungstools (Apps) zusammenzufassen.
Ich habe versucht, C # (Indexer) zu kauen.
Ich habe versucht, die Unterstützung für iOS 14 zusammenzufassen
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Methode zu erklären
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe jetzt versucht, Java 8 zusammenzufassen
C # (Polymorphismus: Polymorphismus)
Ich habe versucht, Active Hash zu erklären
Ich habe WSL2 + Ubuntu in Window10 eingeführt und versucht, GDC, DMD, LDC zu verwenden
Ich habe versucht, die wichtigsten Punkte des gRPC-Designs und der Entwicklung zusammenzufassen
Ich habe versucht, mit OpenTrip Planner und GTFS eine eigene Übertragungsanleitung zu erstellen
Ich habe einen Arbitrage-Transaktionsbot für virtuelle Währungen erstellt und versucht, Geld zu verdienen
Ich habe versucht, den Zugriff von Lambda → Athena mit AWS X-Ray zu visualisieren
Ich habe versucht, die Geschwindigkeit von Graal VM mit JMH zu messen und zu vergleichen
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Ich habe versucht, Java-Lambda-Ausdrücke zusammenzufassen
Ich habe versucht, mit Web Assembly zu beginnen
Ich habe versucht, AOJs binäre Suche zu lösen
Ich habe versucht, das Iterator-Muster zu implementieren
Ich habe versucht, die Stream-API zusammenzufassen
Ich habe versucht, AdoptOpenjdk 11 unter CentOS 7 zu erstellen
Was ist Docker? Ich habe versucht zusammenzufassen
Ich habe versucht, Selen wie JQuery zu verwenden
Ich habe versucht, JavaScript Part.2 Objektorientiert zu berühren
Ich habe versucht, ein Portfolio mit AWS, Docker, CircleCI, Laravel [mit Referenzlink] zu erstellen.
Eine Geschichte, als ich versuchte, ein Video zu erstellen, indem ich Processing und Resolume verknüpfte
Ich habe versucht zu überprüfen, ob es Spaß machen würde, "Programmierung" und "Hobbys" zu kombinieren.
Ich habe eine Java EE-Umgebung auf AWS erstellt und versucht, eine Webanwendung auszuführen
[JDBC ③] Ich habe versucht, mithilfe von Platzhaltern und Argumenten Eingaben über die Hauptmethode vorzunehmen.
In dieser Zeit habe ich versucht, Java Bean und XML mit dem Jackson-Formatierer XML zu konvertieren
Ich habe versucht, über JVM / Garbage Collection zusammenzufassen
Ich habe versucht, AdoptOpenJDK 11 (11.0.2) mit dem Docker-Image zu überprüfen
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Ich habe versucht, polymorph in Nogizaka zu implementieren.
Ich habe versucht, die Federbeinkonfiguration mit Coggle zu verwalten
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Ich habe versucht, die Sitzung in Rails zu organisieren