Erste Schritte mit AWS

Erstellen einer einfachen Webanwendung

Bereitstellen einer Webanwendung und Einrichten der Interaktivität mit einer API und einer Datenbank

Modul 2: Erstellen einer serverlosen Funktion

In diesem Modul erstellen Sie eine serverlose Funktion mithilfe von AWS Lambda.

Einführung

In diesem Modul schreiben einen kurzen Codeabschnitt in Python, JavaScript oder Java, der in einem späteren Modul zum Einrichten der Interaktivität Ihrer Webseite verwendet wird. Zur Datenverarbeitung nutzen Sie den Service AWS Lambda, mit dem sich serverlose Funktionen erstellen lassen. (Bei einer serverlosen Funktion muss sich der Entwickler weder um die Software- noch um die Hardwareverwaltung kümmern. Stattdessen werden Anwendungen in einzelne Funktionen aufgeteilt, die individuell aufgerufen und skaliert werden können.)

Diese serverlosen 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!

Lerninhalte

  • 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: Service für Rechenleistung zur Datenverabeitung

Serverlose Funktion: Codeabschnitt, der on-demand von einem Datenverarbeitungsservice ausgeführt wird

Lambda-Auslöser: Ereignistyp, der das Ausführen einer (serverlosen) Lambda-Funktion initiiert. Das kann ein anderer AWS-Service oder ein externes Signal sein.

 Veranschlagte Zeit

5 Minuten

 Verwendete Services

Implementierung

  • Erstellen und Konfigurieren Ihrer Lambda-Funktion
    • Python
    • JavaScript
    • Java
    • Python
      1. Melden Sie sich im Browser auf einer neuen Registerkarte in der AWS Lambda-Konsole an.
      2. Notieren Sie sich, in welcher Region Sie die Funktion erstellen. Diese Angabe finden Sie ganz oben auf der Seite, neben dem Namen Ihres Kontos.
      3. Klicken Sie auf die orangefarbene Schaltfläche „Create Function (Funktion erstellen)“.
      4. Geben Sie unter „Function Name (Funktionsname)“ die Bezeichnung HelloWorldFunction ein.
      5. Wählen Sie im Dropdown-Menü Runtime (Laufzeit) die Option Python 3.8 aus.
      Full Stack tutorial CreateFunction Python

      6. Klicken Sie auf die orangefarbene Schaltfläche „Create Function (Funktion erstellen)“.

      7. Oben auf dem Bildschirm sollte ein grünes Feld mit dem Hinweis „Successfully created the function (Funktion erstellt)“ zu sehen sein.

      8. Ersetzen Sie den Code unter „Function Code (Funktionscode)“ durch Folgendes:

      # 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 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. Klicken Sie oben auf dem Bildschirm auf die orangefarbene Schaltfläche „Save (Speichern)“.

      10. Jetzt testen wir die neue Funktion. Klicken Sie oben auf dem Bildschirm auf Select a test event (Testereignis auswählen).

      11. Klicken Sie in diesem Dropdown-Menü auf Configure test events (Testereignisse konfigurieren).

      12. Geben Sie unter „Event Name (Ereignisname)“ die Bezeichnung HelloWorldTestEvent ein.

      13. Kopieren Sie folgendes JSON-Objekt und fügen Sie es ein, um das Standardobjekt zu ersetzen:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14. Klicken Sie unten auf der Seite auf die orangefarbene Schaltfläche „Create (Erstellen)“.

    • JavaScript
      1. Melden Sie sich im Browser auf einer neuen Registerkarte in der AWS Lambda-Konsole an.
      2. Notieren Sie sich, in welcher Region Sie die Funktion erstellen. Diese Angabe finden Sie ganz oben auf der Seite, neben dem Namen Ihres Kontos.
      3. Klicken Sie auf die orangefarbene Schaltfläche „Create Function (Funktion erstellen)“.
      4. Geben Sie unter „Function Name (Funktionsname)“ die Bezeichnung HelloWorldFunction ein.
      5. Wählen Sie im Dropdown-Menü Runtime (Laufzeit) die Option Node.js 12.x aus.
      Full Stack tutorial CreateFunction JavaScript

      6. Klicken Sie auf die orangefarbene Schaltfläche „Create Function (Funktion erstellen)“.

      7. Oben auf dem Bildschirm sollte ein grünes Feld mit dem Hinweis „Successfully created the function (Funktion erstellt)“ zu sehen sein.

      8. Ersetzen Sie den Code unter „Function Code (Funktionscode)“ durch Folgendes:

      // 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. Klicken Sie oben auf dem Bildschirm auf die orangefarbene Schaltfläche „Save (Speichern)“.

      10. Jetzt testen wir die neue Funktion. Klicken Sie oben auf dem Bildschirm auf Select a test event (Testereignis auswählen).

      11. Klicken Sie in diesem Dropdown-Menü auf Configure test events (Testereignisse konfigurieren).

      12. Geben Sie unter „Event Name (Ereignisname)“ die Bezeichnung HelloWorldTestEvent ein.

      13. Kopieren Sie folgendes JSON-Objekt und fügen Sie es ein, um das Standardobjekt zu ersetzen:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14. Klicken Sie unten auf der Seite auf die orangefarbene Schaltfläche „Create (Erstellen)“.

    • Java
      1. Melden Sie sich im Browser auf einer neuen Registerkarte in der AWS Lambda-Konsole an.
      2. Notieren Sie sich, in welcher Region Sie die Funktion erstellen. Diese Angabe finden Sie ganz oben auf der Seite, neben dem Namen Ihres Kontos.
      3. Klicken Sie auf die orangefarbene Schaltfläche „Create Function (Funktion erstellen)“.
      4. Geben Sie unter „Function Name (Funktionsname)“ die Bezeichnung HelloWorldFunction ein.
      5. Wählen Sie im Dropdown-Menü Runtime (Laufzeit) die Option Java 11 aus.
      Full Stack tutorial CreateFunction Java

      6. Klicken Sie auf die orangefarbene Schaltfläche „Create Function (Funktion erstellen)“.

      7. Oben auf dem Bildschirm sollte ein grünes Feld mit dem Hinweis „Successfully created the function (Funktion erstellt)“ zu sehen sein.

      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 bereits eine JAR-Datei mit dem aktualisierten Funktionscode erstellt, die Sie hier finden.

      10. Rufen Sie „Function code (Funktionscode)“ auf und laden Sie die JAR-Datei hoch.

      Full Stack tutorial UploadJar

      11. Aktualisieren Sie den Wert für „Handler“ auf com.example.app.LambdaRequestHandler::handleRequest.

      Full Stack tutorial UpdateHandler

      12. Klicken Sie oben auf dem Bildschirm auf die orangefarbene Schaltfläche „Save (Speichern)“.

      13. Jetzt testen wir die neue Funktion. Klicken Sie oben auf dem Bildschirm auf Select a test event (Testereignis auswählen).

      14. Klicken Sie in diesem Dropdown-Menü auf Configure test events (Testereignisse konfigurieren).

      15. Geben Sie unter „Event Name (Ereignisname)“ die Bezeichnung HelloWorldTestEvent ein.

      16. Kopieren Sie folgendes JSON-Objekt und fügen Sie es ein, um das Standardobjekt zu ersetzen:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      17. Klicken Sie unten auf der Seite auf die orangefarbene Schaltfläche „Create (Erstellen)“.

  • Testen der Lambda-Funktion
    1. Klicken Sie oben auf der Seite auf die graue Schaltfläche „Test (Testen)“.
    2. Oben auf der Seite sollte ein hellgrünes Feld mit dem Hinweis „Execution result: succeeded (Ausführungsergebnis: erfolgreich)“ zu sehen sein. Wenn Sie auf „Details“ klicken, wird das Ereignis angezeigt, das die Funktion zurückgegeben hat.
    3. Gute Arbeit! Sie haben jetzt eine funktionierende Lambda-Funktion.

Anwendungsarchitektur

Nach Abschluss dieses Moduls sieht unsere Architektur wir folgt aus:

Full Stack tutorial Module Two app arch

Wir haben den AWS Lambda-Service bereits hinzugefügt, es besteht aber noch keine Verknüpfung mit S3 oder unseren Benutzern. Das richten wir im nächsten Modul ein.

War das Modul hilfreich?

Vielen Dank
Bitte teilen Sie uns mit, was Ihnen gefallen hat.
Es tut uns leid Sie zu enttäuschen
Ist etwas veraltet, verwirrend oder ungenau? Bitte helfen Sie uns, dieses Tutorial zu verbessern, indem Sie Feedback geben.

Verknüpfen der serverlosen Funktion mit der Website