[PYTHON] Essayez d'utiliser Azure Logic Apps

introduction

Logic Apps, un service Azure PaaS, était GA en juillet 2016. Cette fois, j'ai essayé de notifier Slack en utilisant uniquement les fonctions de base de Logic Apps.

Constitution

image

Du côté sur site, raspbian est installé dans le Raspberry Pi 2 Model B qui reste de l'entreprise. Cette fois, j'utiliserai Python pour envoyer à Azure Service Bus.

Azure a Logic Apps et Service Bus pour échanger des messages.

Pour Logic Apps, vous pouvez sélectionner Twitter, Slack, etc. comme destination de notification aux réseaux sociaux, mais cette fois, j'ai choisi Slack.

Préparation côté Python

Python est déjà installé dans rapbian et la commande pip pour ajouter divers modules est également incluse.Après cela, vous pouvez entrer la commande suivante pour préparer l'utilisation du SDK Azure.

$ sudo pip install azure

La commande ci-dessus installera et utilisera le SDK Azure pour Python.

Création d'applications logiques

Créez rapidement depuis l'écran du portail. Récemment, il est devenu disponible dans les régions du Japon oriental et du Japon occidental. image

Création d'un bus de service

Ceci est également créé rapidement à partir de l'écran du portail. Étant donné que le plan tarifaire est à des fins de vérification, le basique le moins cher et la région ont été créés dans l'est du Japon.

image

Créer une file d'attente

Le nom de la file d'attente est pythontest, et les autres éléments sont à des fins de vérification, alors créez-les avec les valeurs par défaut.

image

Accéder aux bons paramètres

Définissez les stratégies d'accès partagé pour la file d'attente créée. Accorde les autorisations d'envoi et de navigation de la file d'attente au nom de stratégie «utilisateur».

image

Notez le contenu du nom de la politique (utilisateur) et de la CLÉ PRIMAIRE des politiques d'accès partagé créées car elles seront intégrées dans le code côté Python. Le contenu de CONNECTION STRING-PRIMARY KEY est requis du côté Logic Apps, alors notez-les également.

image

Création de logique Logic Apps

Lorsque vous déployez et appuyez pour la première fois sur «Modifier» dans Logic Apps, le concepteur d'applications logiques s'ouvre, donc cette fois, sélectionnez «Vider l'application logique». Depuis que l'écran du concepteur s'ouvre, définissez d'abord le déclencheur pour la file d'attente Service Bus. Sélectionnez "Service Bus - Lorsqu'un message est reçu dans une file d'attente" et sélectionnez le nom de connexion approprié. Pour la chaîne de connexion, entrez la CHAÎNE DE CONNEXION du bus d'exercice créé précédemment, mais excluez le "Chemin d'entité" à la fin des éléments de cette CONNEXION COMMENCÉE. (Inclure uniquement Endpoint, ShareAccessKeyName, SharedAccessKey)

image

Ensuite, entrez le nom de la file d'attente créée dans Service Bus dans "Nom de la file d'attente" et définissez la fréquence et l'intervalle de manière appropriée.

image

Ajoutez ensuite une action. Cliquez sur "Ajouter une action" dans "+ Nouvelle étape". image

Si vous sélectionnez Slack, il sera ajouté.

image

Après cela, lorsque vous vous connectez à Slack, vous pouvez saisir le nom de la chaîne à publier sur Slack et le message à publier. Cette fois, dans le champ TEXTE DU MESSAGE, nous utiliserons simplement le contenu envoyé par Service Bus depuis l'écran tel quel.

image

Enfin, n'oubliez pas de "sauvegarder". image

Expéditeur Python

Ceci est un exemple de programme côté envoi. Entrez le nom du Service Bus créé dans service_namespace. Pour share_access_key_name et shared_access_key_value, collez le contenu du nom de la stratégie et de la CLÉ PRIMAIRE que vous avez notés précédemment. Le premier argument de bus_service.send_event définit le nom de la file d'attente créée précédemment (test python).

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)

Exécution du programme

Maintenant, exécutons le script Python.

$ python sender.py

Confirmez qu'il a été exécuté normalement sur l'écran du portail.

image

J'ai également reçu un message de notification du BOT sur le canal #logicappstest de Slack!

image

en conclusion

Cette fois, j'ai essayé d'utiliser Azure Logic Apps avec un mécanisme très simple, mais le côté Azure était tout terminé avec uniquement des opérations d'interface utilisateur. Si vous souhaitez créer des branches ou des actions élaborées, vous devez modifier le code JSON directement, mais j'aimerais l'essayer à un autre moment.

Recommended Posts

Essayez d'utiliser Azure Logic Apps
[Azure] Essayez d'utiliser Azure Functions
Essayez d'utiliser Tkinter
Essayez d'utiliser docker-py
Essayez d'utiliser Cookiecutter
Essayez d'utiliser PDFMiner
Essayez d'utiliser des géopandas
Essayez d'utiliser Selenium
Essayez d'utiliser scipy
Essayez d'utiliser pandas.DataFrame
Essayez d'utiliser django-swiftbrowser
Essayez d'utiliser matplotlib
Essayez d'utiliser tf.metrics
Essayez d'utiliser PyODE
Essayez d'utiliser le bloc-notes Jupyter à partir d'Azure Machine Learning
Essayez d'utiliser virtualenv (virtualenvwrapper)
Essayez d'utiliser virtualenv maintenant
Essayez d'utiliser W & B
Essayez d'utiliser Django templates.html
[Kaggle] Essayez d'utiliser LGBM
Essayez d'utiliser l'analyseur de flux de Python.
Essayez d'utiliser Tkinter de Python
Essayez d'utiliser Tweepy [Python2.7]
Essayez d'utiliser collate_fn de Pytorch
Essayez d'utiliser PythonTex avec Texpad.
Essayez d'utiliser l'image Docker de Jupyter
Essayez d'utiliser scikit-learn (1) - Clustering K par méthode moyenne
Essayez l'optimisation des fonctions à l'aide d'Hyperopt
Essayez d'utiliser matplotlib avec PyCharm
Essayez d'utiliser Kubernetes Client -Python-
[Kaggle] Essayez d'utiliser xg boost
Essayez d'utiliser l'API Twitter
Essayez d'utiliser OpenCV sur Windows
Essayez d'utiliser Jupyter Notebook de manière dynamique
Essayez d'utiliser AWS SageMaker Studio
Essayez de tweeter automatiquement en utilisant Selenium.
Essayez d'utiliser SQLAlchemy + MySQL (partie 1)
Essayez d'utiliser l'API Twitter
Essayez d'utiliser SQLAlchemy + MySQL (partie 2)
Essayez d'utiliser la fonction de modèle de Django
Essayez d'utiliser l'API PeeringDB 2.0
Essayez d'utiliser la fonction de brouillon de Pelican
Essayez d'utiliser pytest-Overview and Samples-
Essayez d'utiliser le folium avec anaconda
[Statistiques] [R] Essayez d'utiliser la régression par points de division.
Essayez d'utiliser des modèles de conception (édition exportateur)
Azure Functions: essayez des fonctions durables pour Python
Essayez d'utiliser Pillow sur iPython (partie 1)
Essayez d'utiliser Pillow sur iPython (partie 2)
Essayez d'utiliser l'API de Pleasant (python / FastAPI)
Essayez d'utiliser LevelDB avec Python (plyvel)
Essayez d'utiliser pynag pour configurer Nagios
Essayez d'utiliser la fonction de débogage à distance de PyCharm
Essayez d'utiliser ArUco avec Raspberry Pi
Essayez d'utiliser LiDAR bon marché (Camsense X1)
[Serveur de location Sakura] Essayez d'utiliser flask.
Essayez d'utiliser Pillow sur iPython (partie 3)
Renforcer l'apprentissage 8 Essayez d'utiliser l'interface utilisateur de Chainer
Essayez d'obtenir des statistiques en utilisant e-Stat
Essayez d'utiliser l'API d'action de Python argparse
Essayez d'utiliser le module Python Cmd