Es ist schon eine Weile her, seit ich die Gelegenheit hatte, etwas Einfaches, Interessantes und Modernes zu bauen. Gegen Ende des Jahres 2024 bin ich auf FastAPI gestoßen und war begeistert. Obwohl ich bei der Arbeit bereits interne APIs erstellt habe, hatte ich noch nichts für die Öffentlichkeit erstellt.
Hallo FastAPI!
FastAPI ist ein modernes, leistungsstarkes Framework zum Erstellen von APIs mit Python und es schien perfekt für das zu sein, was ich erstellen wollte, eine API für grundlegende Fußballspielerinformationen. Ich nannte es zunächst „Jugador FC“, bevor ich mich für „Player FC API“ entschied.
Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:
AWS CDK
Docker
Python 3.12.7
Erstellen Sie ein Verzeichnis auf Ihrem Computer. Nennen Sie es player_fc_fastapi_app, erstellen Sie in diesem Verzeichnis die folgenden Unterverzeichnisse:
App
Enthält den gesamten FastAPI-Code
dynamo_db_local
Enthält ein Python-Skript zum Erstellen einer lokalen Version einer Amazon DynamoDB-Tabelle
iac
Enthält Ihre Stack-Dateien zum Erstellen von Ressourcen in AWS
Ich habe es einfacher gemacht, indem ich unten die Befehle bereitgestellt habe, die Sie ausführen können, um Zeit zu sparen:
Die Projektverzeichnisstruktur sollte nun wie folgt aussehen:
Einrichten der Python-Umgebung
Einrichten von Amazon DynamoDB Local
installiert und ausgeführt sein.
dynamo_db_local navigieren und eine Datei „create_ddb_table.py“ erstellen und die Datei mit dem folgenden Code füllen :
Mit diesem Code können Sie eine Tabelle in der lokalen DynamoDB-Instanz erstellen. Führen Sie das Code-Snippet aus. FastAPI-Entwicklung
Da wir nun eine lokale Instanz von
DynamoDBund erstellen zwei Dateien, main.py und Anforderungen. txt.
Füllen Sie die Datei „requirements.txt“ mit Folgendem aus:
Erstellen Sie die folgenden Unterverzeichnisse:
Lassen Sie uns ein paar Modelle mit Pydantic erstellen. Wir werden die Player- und UpdatePlayer-Modelle verwenden, um die Datenstruktur der Spielerinformationen zu definieren, die wir hinzufügen oder ändern können.
Erstellen Sie im Unterverzeichnis models eine leere __init__.py-Datei und eine Datei mit dem Namen „players.py“ und füllen Sie sie mit dem folgenden Code:
Erstellen Sie im Unterverzeichnis routers
eine leere __init__.py-Datei und eine Datei mit dem Namen „players.py“ und füllen Sie sie mit dem folgenden Code:Durch das Erstellen einer leeren __init__.py-Datei wird ein Ordner in ein Python-Paket umgewandelt.
Erstellen Sie eine Datei mit dem Namen main.py im Unterverzeichnis
appProbefahrt Zeit für eine kurze Probefahrt. Stellen Sie sicher, dass Sie sich im Verzeichnis app
befinden, und führen Sie den folgenden Befehl aus, um
Da unsere App nun betriebsbereit ist, navigieren Sie zu
http://127.0.0.1:8000/docs/Sie sehen die automatische interaktive API-Dokumentation mit 6 verfügbaren Endpunkten:
Versuchen wir, einen Spieler hinzuzufügen. Wählen Sie den Endpunkt
POST /playersund fügen Sie mit der folgenden Nutzlast den weltbesten Spieler „Vinícius Júnior“ hinzu:
So sieht jeder API-Vorgang in Aktion aus.
Neuen Player hinzufügen:
Alle Spieler abrufen:
Spielerinformationen aktualisieren:
Einzelspielerdetails abrufen:
Entfernen eines Spielers:
Bereitstellung mit AWS CDK v2
Da wir nun damit vertraut sind, unsere App lokal auszuführen und zu testen, ist es an der Zeit, unsere App auf AWS bereitzustellen. Wir werden das AWS CDK v2 verwenden.Ändern Sie die Datei requirements.txt im Unterverzeichnis und fügen Sie die folgende Zeile hinzu:
Lassen Sie uns eine DynamoDB-Tabelle, eine Lambda-Funktion und eine Lambda-Funktions-URL definieren. Im aktuellen iac-Verzeichnis gibt es ein weiteres Unterverzeichnis, zu dem Sie navigieren müssen (iac
). Öffnen Sie die Datei iac_stack.py und ersetzen Sie den Inhalt des CDK-Stacks durch den folgenden Code:Bevor wir mit der Bereitstellung beginnen, müssen wir noch einen letzten Schritt tun: Setzen Sie das Flag für „local_development: bool“ auf „False“ in der Datei „players.py“ im Verzeichnis „app/routers“ im Verzeichnis „
und installieren Sie die Abhängigkeiten mit den folgenden Befehlen:
Sobald die Bereitstellung abgeschlossen ist, sehen Sie in der Terminalausgabe eine Funktions-URL. Dies ist Ihr API-Endpunkt auf AWS.
Um zu überprüfen, ob alles funktioniert:
?
Wichtig: Vergessen Sie nicht, Ressourcen aufzuräumen! Wenn Sie sie nicht mehr benötigen, können Sie den Befehl cdk destroy ausführen, um alle erstellten AWS-Ressourcen zu löschen.
Damit ist unsere Reise von der lokalen FastAPI-Entwicklung zur serverlosen Bereitstellung auf AWS abgeschlossen.
Das obige ist der detaillierte Inhalt vonServerlose FastAPI-Entwicklung: Erstellen der Player FC API auf AWS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!