LINE BOT mit Python + AWS Lambda + API Gateway

title.png

Eingeführt, weil ich LINE BOT für das Spielen mit API Gateway + AWS Lambda erstellt habe. Ich werde weglassen, wie man LINE BOT macht, weil die offiziellen Dokumente und das SDK von Python umfangreich sind.

Der Quellcode wird auf Github veröffentlicht. Wenn Sie möchten, lesen Sie ihn bitte.

Funktionsliste

Implementierte Funktionen

Die Befehle "Nachrichten" und "Wetter" scheinen gut für die Geschichte zu sein, und es scheint, dass Bekannte sie tatsächlich in Gruppen verwenden. Überraschenderweise wird der Befehl choice auch ziemlich oft verwendet.

Funktion Zustand
Greeting greeting.png
Choice choice.png
Shuffle shuffle.png
Weather weather.png
News news.png

Die Nachrichten stammen ursprünglich aus dem RSS von Yahoo NEWS, aber ich habe sie durch Google NEWS ersetzt, da einige von ihnen Miniaturbilder aufnehmen konnten.

Was ich machen will; was ich vorhabe zu tun

Wenn es so etwas gibt, wenn es etwas Nützliches gibt, warte ich auf Kommentare.

Python Serverless Framework

Von hier an ist es eine kleine technische Geschichte. Lambda allein kann ohne Verwendung eines Frameworks problemlos über die AWS-CLI verarbeitet werden. Die Verwendung des API-Gateways mit der AWS-CLI ist jedoch recht schwierig. Ich hatte immer noch den Eindruck, dass es einfacher wäre, die AWS-Website in einem Browser zu öffnen und manuell zu bedienen. Mit zunehmender Anzahl von Endpunkten ist es ohne ein Framework, das API Gateway gut konfigurieren kann, schwierig.

Wenn Sie nachschlagen, gibt es in Python zwei beliebte Serverless Frameworks.

Zappa

Zuerst habe ich mir Zappas Code angesehen, aber er konvertiert das von API Gateway an Lambda übergebene Ereignis in WSGI Environ, das mit WSGI-Frameworks wie Flask und Django funktioniert. Danach wird anscheinend aus der URL-Definition jedes Frameworks zum Zeitpunkt der Bereitstellung eine Datei für AWS CloudFormation generiert und das API-Gateway festgelegt.

Chalice

Im Gegensatz zu Zappa konvertiert Chalice nicht in WSGI und ist auf API-Gateway spezialisiert. Der Quellcode ist leicht zu verstehen, da er nicht verschwendet wird. Im Fall von Zappa müssen Sie darüber nachdenken, ob die Flask-Funktion wirklich über API Gateway funktioniert, aber es besteht ein Gefühl der Sicherheit, dass die im Kelchdokument beschriebene Funktion ordnungsgemäß funktioniert.

Diesmal habe ich mich für Chalice entschieden, aber der Code ist einfach und recht einfach zu handhaben.

Zusammenfassung

Ende

Recommended Posts

LINE BOT mit Python + AWS Lambda + API Gateway
[AWS] API mit API Gateway + Lambda erstellen
Versuchen Sie, einen Cisco Spark Bot mit AWS Lambda + Amazon API Gateway (Python) zu implementieren.
Erstellen Sie mit AWS SAM schnell eine API mit Python, Lambda und API Gateway
[AWS SAM] Erstellen Sie eine API mit DynamoDB + Lambda + API Gateway
[AWS] Versuchen Sie, API Gateway + Lambda mit X-Ray zu verfolgen
Amazon API Gateway und AWS Lambda Python-Version
AWS CDK-Lambda + API-Gateway (Python)
"Inoffizielle Apple Refurbished Product Introduction" BOT mit LINE Messaging API (v2) + API Gateway + Lambda (Python)
Python ruft die Google Cloud Vision API von LINE BOT über AWS Lambda auf
Ich habe versucht, "Sakurai-san" LINE BOT mit API Gateway + Lambda zu erstellen
[LINE Messaging API] Erstellen Sie einen Papageienrückgabe-BOT mit Python
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
Einfache REST-API mit API Gateway / Lambda / DynamoDB
Senden Sie mit ESP32-WROOM-32 aufgenommene Bilder an AWS (API Gateway → Lambda → S3).
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
Ich habe ChatOps mit Slack x API Gateway x Lambda (Python) x RDS ausprobiert
[Python] Ich habe eine REST-API mit AWS API Gateway und Lambda geschrieben.
Zeigen Sie Bilder in S3 mit API Gateway + Lambda an
Erstellen Sie mit Minette für Python einen LINE BOT
Serverlose Anwendung mit AWS SAM! (APIGATEWAY + Lambda (Python))
[AWS] Ich habe BOT mit LINE WORKS daran erinnert
[Python] Verwenden der Linien-API [1. Erstellung des Beauty-Bots]
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
Stellen Sie die Python 3-Funktion mit Serverless Framework unter AWS Lambda bereit
Erstellen Sie in Docker eine Ebene für AWS Lambda Python
Ich möchte Lambda mit Python auf Mac AWS!
Vorgehensweise zum Erstellen eines Linienbot in AWS Lambda
Machen Sie mit AWS Lambda und Python gewöhnliche Tweets flottenartig
[Super einfach] Machen wir einen LINE BOT mit Python.
So bedienen Sie die Discord API mit Python (Bot-Registrierung)
Verwenden Sie die Trello-API mit Python
Betreiben Sie TwitterBot mit Lambda, Python
[Python] Scraping in AWS Lambda
Verwenden Sie die Twitter-API mit Python
Web-API mit Python + Falcon
PyTorch mit AWS Lambda [Lambda-Import]
Rufen Sie die API mit python3 auf.
Verwenden Sie die Unterschall-API mit Python3
[AWS] Versuchen Sie, die Python-Bibliothek mit SAM + Lambda (Python) zur Ebene hinzuzufügen.
Site-Überwachung und Alarmbenachrichtigung mit AWS Lambda + Python + Slack
[AWS] Ich habe BOT mit LINE WORKS (Implementierung) in Erinnerung gerufen.
Ich habe ein Skript geschrieben, um mit AWS Lambda + Python 2.7 schnell eine Entwicklungsumgebung für Twitter Bot zu erstellen
[Python] Erstelle deinen eigenen LINE-Bot
Erstellen Sie Awaitable mit der Python / C-API
Holen Sie sich Bewertungen mit Python Googlemap API
Führen Sie Rotrics DexArm mit der Python-API aus
Textextraktion mit AWS Textract (Python3.6)
Gesichtserkennung mit Lambda (Python) + Erkennung
Drucken Sie mit python3 ohne Unterbrechungen
Schreiben Sie die AWS Lambda-Funktion in Python
Führen Sie Python planmäßig auf AWS Lambda aus
Klicken Sie mit Python auf die Etherpad-Lite-API