Backgroud Ich habe mehr Möglichkeiten, über serverlose Anwendungen mit AWS Lambda zu erfahren, daher habe ich versucht, sie zu erstellen.
Preparetion
↓ ↓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