Erstellen einer einfachen Webanwendung
TUTORIAL
Modul 2: Erstellen einer Serverless-Funktion
In diesem Modul erstellen Sie eine Serverless-Funktion mithilfe von AWS Lambda.
Übersicht
In diesem Modul schreiben Sie einen kurzen Codeabschnitt in Python, JavaScript oder Java, der in einem späteren Modul zum Einrichten der Interaktivität Ihrer Webseite verwendet wird. Sie werden AWS Lambda verwenden, einen Computing-Service, mit dem Sie Serverless-Funktionen erstellen können, sodass Sie Software und Hardware nicht mehr verwalten müssen. Stattdessen werden Anwendungen in einzelne Funktionen aufgeteilt, die individuell aufgerufen und skaliert werden können.
Diese Serverless-Funktionen werden mit einem bestimmten Ereignis ausgelöst, das Sie im Code definieren. Dieser Service ist eine preisgünstige Lösung, weil Sie nur für die Zahl der verarbeiteten Ereignisse bezahlen, nicht aber für die Leerlaufzeit. Und das Beste daran? Sie müssen sich nicht einmal um die Verwaltung von Servern kümmern!
Was Sie erreichen werden
In diesem Modul werden Sie Folgendes lernen:
- Erstellen einer Lambda-Funktion mithilfe der AWS-Konsole (in Python, JavaScript oder Java)
- Erstellen von (JSON-)Ereignissen in der AWS-Konsole zum Testen der Funktion
Wichtige Konzepte
Datenverarbeitungsservice: Ein Service, der Rechenleistung bereitstellt.
Serverless-Funktion: Codeabschnitt, der on-demand von einem Datenverarbeitungsservice ausgeführt wird.
Lambda-Auslöser: Ereignistyp, der das Ausführen einer (Serverless-) Lambda-Funktion initiiert. Das kann ein anderer AWS-Service oder ein externes Signal sein.
Minimale Bearbeitungszeit
5 Minuten
Verwendete Services
Letzte Aktualisierung
Implementierung
-
Erstellen und Konfigurieren Ihrer Lambda-Funktion
-
Python
-
JavaScript
-
Java
-
Python
-
- Melden Sie sich im Browser auf einer neuen Registerkarte in der AWS-Lambda-Konsole an.
- Stellen Sie sicher, dass Sie Ihre Funktion in derselben Region erstellen, in der Sie die Webanwendung im vorherigen Modul erstellt haben. Diese Angabe finden Sie ganz oben auf der Seite, neben dem Namen Ihres Kontos.
- Klicken Sie auf die orangefarbene Schaltfläche Funktion erstellen.
- Geben Sie unter Funktionsname HelloWorldFunction ein.
- Wählen Sie Python 3.8 aus dem Laufzeit-Dropdownmenü aus und lassen Sie die restlichen Standardeinstellungen unverändert.
6. Klicken Sie auf die orangefarbene Schaltfläche Funktion erstellen.
7. Am oberen Bildschirmrand sollte ein grünes Meldungsfeld mit der folgenden Meldung angezeigt werden: „Die Funktion HelloWorldFunction wurde erfolgreich erstellt.“
8. Ersetzen Sie unter Codequelle den Code in lambda_function.py durch den folgenden Code:
# import the JSON utility package since we will be working with a JSON object import json # define the handler function that the Lambda service will use as an entry point def lambda_handler(event, context): # extract values from the event object we got from the Lambda service name = event['firstName'] +' '+ event['lastName'] # return a properly formatted JSON object return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda, ' + name) }
9. Speichern Sie, indem Sie im Dateimenü Speichern auswählen, um die Änderungen zu speichern.
10. Wählen Sie Bereitstellen, um die Änderungen bereitzustellen.
11. Jetzt testen wir die neue Funktion. Wählen Sie die orangefarbene Schaltfläche Test, um ein Testereignis zu erstellen, indem Sie Testereignis konfigurieren auswählen.
12. Geben Sie unter Ereignisname HelloWorldTestEvent ein.13. Kopieren Sie folgendes JSON-Objekt und fügen Sie es ein, um das Standardobjekt zu ersetzen:
{ "firstName": "Ada", "lastName": "Lovelace" }
14. Wählen Sie unten auf der Seite die Schaltfläche Speichern.
-
JavaScript
-
- Melden Sie sich im Browser auf einer neuen Registerkarte in der AWS-Lambda-Konsole an.
- Stellen Sie sicher, dass Sie Ihre Funktion in derselben Region erstellen, in der Sie die Webanwendung im vorherigen Modul erstellt haben. Diese Angabe finden Sie ganz oben auf der Seite, neben dem Namen Ihres Kontos.
- Klicken Sie auf die orangefarbene Schaltfläche Funktion erstellen.
- Geben Sie unter Funktionsname HelloWorldFunction ein.
- Wählen Sie Node.js 16.x aus dem Laufzeit-Dropdownmenü aus und lassen Sie die restlichen Standardeinstellungen unverändert.
6. Klicken Sie auf die orangefarbene Schaltfläche Funktion erstellen.
7. Am oberen Bildschirmrand sollte ein grünes Meldungsfeld mit der folgenden Meldung angezeigt werden: „Die Funktion HelloWorldFunction wurde erfolgreich erstellt.“
8. Ersetzen Sie unter Codequelle den Code in index.js durch folgenden Code:
// Define handler function, the entry point to our code for the Lambda service // We receive the object that triggers the function as a parameter exports.handler = async (event) => { // Extract values from event and format as strings let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`); // Create a JSON object with our response and store it in a constant const response = { statusCode: 200, body: name }; // Return the response constant return response; };
9. Wählen Sie die Schaltfläche Bereitstellen , die sich neben der orangefarbenen Schaltfläche Test oben im Code-Editor befindet.
10. Wählen Sie die orangefarbene Schaltfläche Test oben im Code-Editor.
11. Geben Sie unter Ereignisname HelloWorldTestEvent ein.
12. Kopieren Sie folgendes JSON-Objekt und fügen Sie es ein, um das Standardobjekt zu ersetzen:
{ "firstName": "Ada", "lastName": "Lovelace" }
13. Wählen Sie die Schaltfläche Speichern, um das Test-Ereignis zu erstellen.
14. Wählen Sie erneut die orangefarbene Schaltfläche Test , um das Testereignis auszuführen. Das Ergebnis wird im Abschnitt Ausführungsergebnisse des Code-Editors angezeigt.
-
Java
-
- Melden Sie sich im Browser auf einer neuen Registerkarte in der AWS-Lambda-Konsole an.
- Stellen Sie sicher, dass Sie Ihre Funktion in derselben Region erstellen, in der Sie die Webanwendung im vorherigen Modul erstellt haben. Diese Angabe finden Sie ganz oben auf der Seite, neben dem Namen Ihres Kontos.
- Klicken Sie auf die orangefarbene Schaltfläche Funktion erstellen.
- Geben Sie unter Funktionsname HelloWorldFunction ein.
- Wählen Sie Java 11 (Corretto) aus der Laufzeit-Dropdown-Liste aus und lassen Sie die restlichen Standardeinstellungen unverändert.
6. Klicken Sie auf die orangefarbene Schaltfläche Funktion erstellen.
7. Am oberen Bildschirmrand sollte ein grünes Meldungsfeld mit der folgenden Meldung angezeigt werden: „Die Funktion HelloWorldFunction wurde erfolgreich erstellt.“
8. Sie haben jetzt eine Lambda-Funktion mit der Handler-Klasse Hello erstellt. Weil es sich bei Java um eine kompilierte Sprache handelt, lässt sich der Quellcode in der Lambda-Konsole weder bearbeiten noch anzeigen. Sie können aber seine Konfiguration ändern, ihn aufrufen und Auslöser einrichten.
9. Zum Aktualisieren des Funktionscodes müssen Sie ein Bereitstellungspaket erstellen, also entweder eine JAR-Datei oder ein ZIP-Archiv mit dem Code der Funktion. Für dieses Tutorial haben wir eine herunterladbare JAR-Datei mit dem aktualisierten Funktionscode bereitgestellt.
10. Gehen Sie zu Funktionscode und laden Sie die JAR-Datei hoch.
11. Aktualisieren Sie den Handler auf com.example.app.LambdaRequestHandler::handleRequest.
12. Wählen Sie oben auf dem Bildschirm die orangefarbene Schaltfläche Speichern.
13. Wählen Sie oben auf dem Bildschirm die Option Testereignis auswählen, um die neue Funktion zu testen.
14. Wählen Sie in diesem Dropdownmenü die Option Testereignisse konfigurieren aus.
15. Geben Sie unter Ereignisname HelloWorldTestEvent ein.
16. Kopieren Sie folgendes JSON-Objekt und fügen Sie es ein, um das Standardobjekt zu ersetzen:
{ "firstName": "Ada", "lastName": "Lovelace" }
17. Wählen Sie unten auf der Seite die orangefarbene Schaltfläche Erstellen.
-
-
Testen Ihrer Lambda-Funktion
- Wählen Sie oben auf der Seite im Abschnitt HelloWorldFunction die Registerkarte Test aus.
- Oben auf der Seite sollte ein hellgrünes Feld mit dem folgenden Text angezeigt werden: Ausführungsergebnis: erfolgreich. Sie können Details wählen, um das Ereignis zu sehen, das die Funktion zurückgegeben hat.
- Gute Arbeit! Sie haben jetzt eine funktionierende Lambda-Funktion.
- Wählen Sie oben auf der Seite im Abschnitt HelloWorldFunction die Registerkarte Test aus.
Anwendungsarchitektur
Nach Abschluss dieses Moduls sieht unsere Architektur wie folgt aus:
Wir haben den AWS-Lambda-Service bereits hinzugefügt, es besteht aber noch keine Verknüpfung mit AWS Amplify oder unseren Benutzern. Das richten wir im nächsten Modul ein.