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.
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 | |
Choice | |
Shuffle | |
Weather | |
News |
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.
Wenn es so etwas gibt, wenn es etwas Nützliches gibt, warte ich auf Kommentare.
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.
Ende