[PYTHON] Ich habe gerade FizzBuzz mit AWS Lambda gemacht

Backgroud Ich habe mehr Möglichkeiten, über serverlose Anwendungen mit AWS Lambda zu erfahren, daher habe ich versucht, sie zu erstellen.

Preparetion

Entwicklung (nur Lambda)

import json

def lambda_handler(event, context):
    
    request = "[inner_test]"
    num = 30

    doc = {
        "message":'Hello from Lambda!',
        "request":process(num)
    }
    
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps(doc)
    }


def process(src):
    
    if src % 15 == 0:
        return "FizzBuzz"
    elif src % 5 == 0:
        return "Buzz"
    elif src % 3 == 0:
        return "Fizz"
    else :
        return src

Drücken Sie nach dem Schreiben auf "Bereitstellen" -> "Testen".

Dann ... Das Ausführungsergebnis wird als Protokoll ausgegeben.

Development (with API Gateway) Die vorherige Konfiguration war nur Lambda, aber hier werde ich eine Anfrage von außen mit API Gateway stellen.

Wählen Sie zunächst API-Gateway aus dem Trigger. Sicherheit ist Ihre Wahl.

Wählen Sie "Stage" -> "POST", um die URL zu erhalten. Die Struktur der URL selbst lautet "https: // {restapi_id} .execute-api. {Region} .amazonaws.com / {stage_name} /"

Holen Sie sich also den von Lambda und FizzBuzz angeforderten Wert. Wenn man in der Codebasis spricht, analysiert es event [" body "] mit json und erhält den Eingabewert.

import json

def lambda_handler(event, context):
    
    request = "[inner_test]"
    num = 30
    
    #Unterstützt API Gateway
    #Den Wert der Anfrage erhalten Sie hier
    if "body" in event.keys():
        request = json.loads(event["body"])
        num = request["num"]
        
    doc = {
        "message":'Hello from Lambda!',
        "request":process(num)
    }
    
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps(doc)
    }


def process(src):
    
    if src % 15 == 0:
        return "FizzBuzz"
    elif src % 5 == 0:
        return "Buzz"
    elif src % 3 == 0:
        return "Fizz"
    else :
        return src

Versuchen Sie, die API mit Postman zu aktivieren, um festzustellen, ob der fizzbuzz-Wert tatsächlich zurückgegeben wird. Wenn Sie den Wert von num ändern, wird entweder Fizz``Buzz`` FizzBuzz oder eine Zahl zurückgegeben.

Es ist fertig.

Future Ich dachte, es wäre gut, die minimale VPS zu verwenden und die erforderlichen Pakete zu löschen, ohne Serverless zu sagen, aber ich konnte es in kürzester Zeit tun. Wenn Sie nach der Lambda-Verarbeitung eine Verbindung zu S3 herstellen, können Sie die Daten anscheinend verlassen.

Reference REST-API auf Amazon API Gateway aufrufen

Recommended Posts

Ich habe gerade FizzBuzz mit AWS Lambda gemacht
Ich habe gerade eine virtuelle Umgebung mit der AWS-Lambda-Schicht erstellt
Ich habe versucht, AWS Lambda mit anderen Diensten zu verbinden
Ich möchte Lambda mit Python auf Mac AWS!
[AWS] API mit API Gateway + Lambda erstellen
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Ich möchte mit aws mit Python spielen
Was ich mit Python-Arrays gemacht habe
[AWS] Verknüpfen Sie Lambda und S3 mit boto3
Ich habe gerade pyrebase installiert ... (UnicodeDecodeError)
[AWS] Machen Sie SSI-ähnliche Dinge mit S3 / Lambda
Ich habe versucht, schlechte Tweets regelmäßig mit der AWS Lambda + Twitter API zu löschen
Ich habe einen Slack-Bot geschrieben, der Verzögerungsinformationen mit AWS Lambda benachrichtigt
FizzBuzz in Python3
[AWS SAM] Erstellen Sie eine API mit DynamoDB + Lambda + API Gateway
Regelmäßiges Serverless Scraping mit AWS Lambda + Scrapy Teil 1.8
LINE BOT mit Python + AWS Lambda + API Gateway
Was ich getan habe, als ich mit Lambda Python im Zeitlimit steckte
Serverlose Anwendung mit AWS SAM! (APIGATEWAY + Lambda (Python))
[AWS] Versuchen Sie, API Gateway + Lambda mit X-Ray zu verfolgen
Automatisierung des Infrastrukturbaus mit CloudFromation + Tropical + AWS Lambda
Ich wollte die Google-Tabelle mit AWS Lambda betreiben, also habe ich es versucht [Teil 2]
[AWS] Ich habe BOT mit LINE WORKS daran erinnert
Dynamische HTML-Seiten mit AWS Lambda und Python
Ich habe eine emotionale Analyse von Amazon Comprehend mit der AWS CLI durchgeführt.
Ich habe versucht, TensorFlow in der AWS Lambda-Umgebung auszuführen: Vorbereitung
Ich habe versucht, mit AWS Lambda einen AMI zu erhalten
Stellen Sie die Python 3-Funktion mit Serverless Framework unter AWS Lambda bereit
Erstellen Sie in Docker eine Ebene für AWS Lambda Python
Verwalten Sie die Aufbewahrung von Amazon CloudWatch-Protokollgruppen mit AWS Lambda
Machen Sie mit AWS Lambda und Python gewöhnliche Tweets flottenartig
[Einführung in AWS] Ich habe versucht, mit der Sprach-Text-Konvertierung zu spielen ♪
Ich möchte eine lokale Variable mit Lambda binden
[AWS] Spielen mit Schrittfunktionen (SAM + Lambda) Teil 2 (Parameter)
Bilden Sie Lambda-Schichten mit Lambda
Ich habe einen IFTTT-Knopf gemacht, der den Eingang 2-Sesam mit 1 Knopf (über AWS Lambda) entsperrt.
Ich habe mit Wordcloud gespielt!
Ich habe AWS CDK ausprobiert!
Ich habe AWS Iot ausprobiert
Ich habe AWS Chalice berührt
Ich habe ein Skript geschrieben, um mit AWS Lambda + Python 2.7 schnell eine Entwicklungsumgebung für Twitter Bot zu erstellen
Probieren Sie AWS Lambda Destinations aus
Fizzbuzz mit Ausnahmebehandlung
[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?
[AWS] Versuchen Sie, die Python-Bibliothek mit SAM + Lambda (Python) zur Ebene hinzuzufügen.
Ausgabe von CloudWatch-Protokollen an S3 mit AWS Lambda (Pythyon ver)
Herausforderung Problem 5 mit Python: Lambda ... Ich habe mich entschieden, ohne zu kopieren
Was ich getan habe, um die Python2 EOL mit Zuversicht zu begrüßen
Versuchen Sie, Start / Stop für EC2-Instanzen mit AWS Lambda zu automatisieren
Ich habe versucht, eine zufällige FizzBuzz-Spalte mit Blasensortierung zu sortieren.
Erstellen Sie mit AWS SAM schnell eine API mit Python, Lambda und API Gateway
Site-Überwachung und Alarmbenachrichtigung mit AWS Lambda + Python + Slack
[AWS] Ich habe BOT mit LINE WORKS (Implementierung) in Erinnerung gerufen.