[PYTHON] Versuchen Sie es mit Azure Logic Apps

Einführung

Logic Apps, ein Azure PaaS-Dienst, war GA im Juli 2016. Dieses Mal habe ich versucht, Slack nur mit den Grundfunktionen von Logic Apps zu benachrichtigen.

Verfassung

image

Auf der On-Premise-Seite ist Raspbian im Raspberry Pi 2 Model B installiert, das vom Unternehmen übrig geblieben ist. Dieses Mal verwende ich Python zum Senden an Azure Service Bus.

Azure verfügt über Logic Apps und Service Bus zum Austausch von Nachrichten.

Für Logik-Apps können Sie Twitter, Slack usw. als Benachrichtigungsziel für soziale Netzwerke auswählen. Diesmal habe ich jedoch Slack ausgewählt.

Vorbereitung auf der Python-Seite

Python ist bereits in Rapbian installiert, und der Befehl pip zum Hinzufügen verschiedener Module ist ebenfalls enthalten. Anschließend können Sie den folgenden Befehl eingeben, um die Verwendung des Azure SDK vorzubereiten.

$ sudo pip install azure

Mit dem obigen Befehl wird das Azure SDK für Python installiert und verwendet.

Erstellen von Logik-Apps

Erstellen Sie schnell über den Portalbildschirm. In letzter Zeit ist es in den Regionen Ostjapan und Westjapan erhältlich. image

Erstellen eines Servicebusses

Dies wird auch schnell über den Portalbildschirm erstellt. Da der Preisplan zu Überprüfungszwecken dient, wurden der billigste Basic und die Region in Ostjapan erstellt.

image

Warteschlange erstellen

Der Name der Warteschlange lautet pythontest, und die anderen Elemente dienen zu Überprüfungszwecken. Erstellen Sie sie daher mit den Standardeinstellungen.

image

Greifen Sie auf die richtigen Einstellungen zu

Legen Sie die Richtlinien für den gemeinsamen Zugriff für die erstellte Warteschlange fest. Gewährt dem Warteschlangennamen "Benutzer" Berechtigungen zum Senden und Durchsuchen der Warteschlange.

image

Notieren Sie sich den Inhalt des Richtliniennamens (Benutzers) und des PRIMARY KEY der erstellten Richtlinien für den gemeinsamen Zugriff, da diese auf der Python-Seite in den Code eingebettet werden. Der Inhalt von CONNECTION STRING-PRIMARY KEY wird auf der Seite von Logic Apps benötigt. Notieren Sie sich diese ebenfalls.

image

Logic Apps Logikerstellung

Wenn Sie in Logic Apps bereitstellen und zum ersten Mal auf "Bearbeiten" klicken, wird der Logic Apps Designer geöffnet. Wählen Sie diesmal "Leere Logik-App". Da der Designer-Bildschirm geöffnet wird, setzen Sie zuerst den Auslöser für die Service Bus-Warteschlange. Wählen Sie "Service Bus - Wenn eine Nachricht in einer Warteschlange empfangen wird" und wählen Sie den entsprechenden Verbindungsnamen. Geben Sie für die Verbindungszeichenfolge die CONNECTION STRING des zuvor erstellten Sercice Bus ein, schließen Sie jedoch den "Entity Path" am Ende der Elemente in diesem CONNECTION STARING aus. (Nur Endpunkt, ShareAccessKeyName, SharedAccessKey einschließen)

image

Geben Sie als Nächstes den Namen der in Service Bus erstellten Warteschlange unter "Warteschlangenname" ein und stellen Sie die Häufigkeit und das Intervall entsprechend ein.

image

Fügen Sie dann eine Aktion hinzu. Klicken Sie unter "+ Neuer Schritt" auf "Aktion hinzufügen". image

Wenn Sie Slack auswählen, wird es hinzugefügt.

image

Wenn Sie sich danach bei Slack anmelden, können Sie den Namen des Kanals eingeben, der bei Slack gepostet werden soll, und die Nachricht, die gepostet werden soll. Dieses Mal verwenden wir im Feld MESSAGE TEXT einfach den vom Service Bus gesendeten Inhalt vom Bildschirm aus so wie er ist.

image

Vergessen Sie nicht zu "speichern". image

Python-Absender

Dies ist ein Beispielprogramm auf der sendenden Seite. Geben Sie den Namen des erstellten Servicebusses in service_namespace ein. Fügen Sie für share_access_key_name und shared_access_key_value den Inhalt des Richtliniennamens und des PRIMARY KEY ein, die Sie zuvor notiert haben. Das erste Argument von bus_service.send_event legt den Namen der zuvor erstellten Warteschlange fest (Python-Test).

sender.py


# -*- coding: utf-8 -*-

import json
from azure.servicebus import ServiceBusService, Message, Queue

if __name__ == '__main__':
        bus_service = ServiceBusService(
          service_namespace='ktkrqiitatest',
          shared_access_key_name='user',
          shared_access_key_value='XXXXXXXXXXXXXXXXXXXXXXXXXX')

        msg = Message('Hello! World')

        bus_service.send_event('pythontest', msg)

Programmausführung

Lassen Sie uns nun das Python-Skript ausführen.

$ python sender.py

Vergewissern Sie sich, dass es auf dem Portalbildschirm normal ausgeführt wurde.

image

Ich habe auch eine Benachrichtigung von BOT auf Slacks # logicappstest-Kanal erhalten!

image

abschließend

Dieses Mal habe ich versucht, Azure Logic Apps mit einem sehr einfachen Mechanismus zu verwenden, aber die Azure-Seite wurde nur mit UI-Vorgängen abgeschlossen. Wenn Sie aufwendige Zweige oder Aktionen erstellen möchten, müssen Sie den JSON-Code direkt bearbeiten, aber ich würde es gerne zu einem anderen Zeitpunkt versuchen.

Recommended Posts

Versuchen Sie es mit Azure Logic Apps
[Azure] Versuchen Sie, Azure-Funktionen zu verwenden
Versuchen Sie es mit Tkinter
Versuchen Sie es mit Docker-Py
Versuchen Sie es mit einem Ausstecher
Versuchen Sie es mit PDFMiner
Versuchen Sie es mit Geopandas
Versuchen Sie es mit Selen
Versuchen Sie es mit scipy
Versuchen Sie es mit pandas.DataFrame
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie es mit PyODE
Versuchen Sie es mit dem Jupyter Notebook von Azure Machine Learning
Versuchen Sie es mit virtualenv (virtualenvwrapper)
Versuchen Sie es jetzt mit virtualenv
Versuchen Sie es mit W & B.
Versuchen Sie es mit Django templates.html
[Kaggle] Versuchen Sie es mit LGBM
Versuchen Sie es mit dem Feed-Parser von Python.
Versuchen Sie es mit Pythons Tkinter
Versuchen Sie es mit Tweepy [Python2.7]
Versuchen Sie es mit Pytorchs collate_fn
Versuchen Sie, PythonTex mit Texpad zu verwenden.
Versuchen Sie es mit Jupyters Docker-Image
Versuchen Sie es mit Scikit-Learn (1) - K-Clustering nach Durchschnittsmethode
Versuchen Sie die Funktionsoptimierung mit Hyperopt
Versuchen Sie es mit matplotlib mit PyCharm
Versuchen Sie es mit Kubernetes Client -Python-
[Kaggle] Versuchen Sie es mit xg boost
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit OpenCV unter Windows
Versuchen Sie, Jupyter Notebook dynamisch zu verwenden
Versuchen Sie es mit AWS SageMaker Studio
Versuchen Sie, automatisch mit Selen zu twittern.
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 1)
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 2)
Versuchen Sie es mit der Vorlagenfunktion von Django
Versuchen Sie es mit der PeeringDB 2.0-API
Versuchen Sie es mit der Entwurfsfunktion von Pelican
Versuchen Sie es mit pytest-Overview und Samples-
Versuchen Sie es mit Folium mit Anakonda
[Statistik] [R] Versuchen Sie, die Teilungspunktregression zu verwenden.
Versuchen Sie es mit Designmustern (Exporter Edition)
Azure-Funktionen: Probieren Sie dauerhafte Funktionen für Python aus
Versuchen Sie es mit Pillow auf iPython (Teil 1)
Versuchen Sie es mit Pillow auf iPython (Teil 2)
Versuchen Sie es mit der Pleasant-API (Python / FastAPI).
Versuchen Sie es mit LevelDB mit Python (plyvel)
Versuchen Sie, Nagios mit pynag zu konfigurieren
Versuchen Sie, die Remote-Debugging-Funktion von PyCharm zu verwenden
Versuchen Sie es mit ArUco mit Raspberry Pi
Versuchen Sie es mit billigem LiDAR (Camsense X1)
[Sakura-Mietserver] Versuchen Sie es mit einer Flasche.
Versuchen Sie es mit Pillow auf iPython (Teil 3).
Stärkung des Lernens 8 Versuchen Sie, die Chainer-Benutzeroberfläche zu verwenden
Versuchen Sie, Statistiken mit e-Stat abzurufen
Versuchen Sie es mit der Aktions-API von Python argparse
Versuchen Sie es mit dem Python Cmd-Modul