Funktionen testen - Amazon CloudFront

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Funktionen testen

Bevor Sie die Funktion in der Live-Phase (Produktion) bereitstellen, können Sie Ihre Funktion testen, um sicherzustellen, dass sie wie vorgesehen funktioniert. Um eine Funktion zu testen, geben Sie ein Ereignisobjekt an, das eine HTTP-Anfrage oder -Antwort darstellt, die Ihre CloudFront Distribution in der Produktion erhalten könnte.

CloudFront Functions macht Folgendes:

  1. Führt die Funktion aus, wobei das bereitgestellte Ereignisobjekt als Eingabe verwendet wird.

  2. Gibt das Ergebnis der Funktion (das geänderte Ereignisobjekt) zusammen mit allen Funktionsprotokollen oder Fehlermeldungen und der Rechenauslastung der Funktion zurück. Weitere Informationen zur Computing-Nutzung finden Sie unter Verstehen Sie die Computernutzung.

Einrichten des Ereignisobjekts

Bevor Sie eine Funktion testen, müssen Sie das Ereignisobjekt einrichten, mit dem Sie sie testen können. Es gibt mehrere Möglichkeiten, dies zu tun.

Option 1: Einrichten eines Ereignisobjekts, ohne es zu speichern

Sie können ein Event-Objekt im Visual Editor in der CloudFront Konsole einrichten, ohne es zu speichern.

Sie können dieses Ereignisobjekt verwenden, um die Funktion von der CloudFront Konsole aus zu testen, auch wenn es nicht gespeichert ist.

Option 2: Erstellen eines Ereignisobjekts im visuellen Editor

Sie können ein Ereignisobjekt im Visual Editor in der CloudFront Konsole einrichten und es nicht speichern. Sie können für jede Funktion 10 Ereignisobjekte erstellen, so dass Sie beispielsweise verschiedene mögliche Eingaben testen können.

Wenn Sie das Ereignisobjekt auf diese Weise erstellen, können Sie das Ereignisobjekt verwenden, um die Funktion in der CloudFront Konsole zu testen. Sie können es nicht verwenden, um die Funktion mit einer AWS API oder einem SDK zu testen.

Option 3: Erstellen eines Ereignisobjekts mit einem Texteditor

Sie können einen Texteditor verwenden, um ein Ereignisobjekt im JSON-Format zu erstellen. Informationen zur Struktur eines Ereignisobjekts finden Sie unter Ereignisstruktur.

Sie können dieses Ereignisobjekt verwenden, um die Funktion mit der CLI zu testen. Sie können es jedoch nicht verwenden, um die Funktion in der CloudFront Konsole zu testen.

Um ein Event-Objekt zu erstellen (Option 1 oder 2)
  1. Melden Sie sich bei der CloudFront Konsole unter an https://console.aws.amazon.com/cloudfront/v4/home#/functions und wählen Sie die Seite Funktionen aus.

    Wählen Sie die Funktion aus, die Sie testen möchten.

  2. Wählen Sie auf der Seite der Funktionsdetails die Registerkarte Test aus.

  3. Wählen Sie für Ereignistyp eine der folgenden Optionen aus:

    • Wenn die Funktion eine HTTP-Anfrage ändert oder basierend auf der Anfrage eine Antwort generiert, wählen Sie Betrachteranfrage aus. Der Abschnitt „Anfrage“ wird angezeigt.

    • Wählen Sie Antwort des Betrachters aus. Die Abschnitte „Anfrage“ und „Antwort“ werden angezeigt.

  4. Füllen Sie die Felder aus, die in das Ereignis aufgenommen werden sollen. Sie können „JSON bearbeiten“ wählen, um die unformatierte JSON-Datei anzuzeigen.

  5. (Optional) Um das Ereignis zu speichern, wählen Sie Speichern aus, geben Sie im Feld Testereignis speichern einen Namen ein und wählen Sie dann Speichern aus.

    Sie können auch „JSON bearbeiten“ wählen und das unformatierte JSON kopieren und es in Ihrer eigenen Datei außerhalb von speichern CloudFront.

Um ein Event-Objekt zu erstellen (Option 3)

Erstellen Sie das Ereignisobjekt mit einem Texteditor. Speichern Sie die Datei in einem Verzeichnis, mit dem Ihr Computer eine Verbindung herstellen kann.

Stellen Sie sicher, dass Sie die folgenden Richtlinien befolgen:

  • Ignorieren Sie die Felder distributionDomainName, distributionId und requestId.

  • Die Namen von Headern, Cookies und Abfragezeichenfolgen müssen in Kleinbuchstaben geschrieben werden.

Eine Möglichkeit, ein Ereignisobjekt auf diese Weise zu erstellen, besteht darin, mit dem visuellen Editor ein Beispiel zu erstellen. Sie können sicher sein, dass das Beispiel korrekt formatiert ist. Sie können dann den unformatierten JSON-Code kopieren, in einen Text-Editor einfügen und die Datei speichern.

Weitere Hinweise zur Struktur eines Ereignisses finden Sie unter. Ereignisstruktur

Testen der Funktion

Sie können eine Funktion in der CloudFront Konsole oder mit der AWS Command Line Interface (AWS CLI) testen.

Console
So testen Sie die -Funktion
  1. Melden Sie sich bei der CloudFront Konsole unter an https://console.aws.amazon.com/cloudfront/v4/home#/functions und wählen Sie die Seite Funktionen aus.

  2. Wählen Sie die Funktion aus, die Sie testen möchten.

  3. Wählen Sie die Registerkarte Test.

  4. Stellen Sie sicher, dass das korrekte Ereignis angezeigt wird. Um vom aktuell angezeigten Ereignis zu wechseln, wählen Sie im Feld Testereignis auswählen ein anderes Ereignis aus.

  5. Wählen Sie Testfunktion. Die Konsole zeigt die Ausgabe der Funktion, einschließlich Funktionsprotokollen und Rechenauslastung.

CLI

Sie können eine Funktion mit dem aws cloudfront test-function Befehl testen.

So testen Sie die -Funktion
  1. Öffnen Sie ein Befehlszeilenfenster.

  2. Führen Sie den folgenden Befehl aus demselben Verzeichnis aus, das die angegebene Datei enthält.

    In diesem Beispiel wird die fileb:// Notation verwendet, um die Ereignisobjektdatei zu übergeben. Es sind Zeilenumbrüche enthalten, um den Befehl lesbarer zu machen.

    aws cloudfront test-function \ --name MaxAge \ --if-match ETVABCEXAMPLE \ --event-object fileb://event-maxage-test01.json \ --stage DEVELOPMENT
    Hinweise
    • Sie verweisen auf die Funktion mit ihrem Namen und ETag (im if-match-Parameter). Sie verweisen auf das Ereignisobjekt anhand seines Speicherorts in Ihrem Dateisystem.

    • Die Phase kann DEVELOPMENT oder LIVE sein.

    Wenn der Befehl erfolgreich ausgeführt wurde, wird die Ausgabe folgendermaßen angezeigt.

    TestResult: ComputeUtilization: '21' FunctionErrorMessage: '' FunctionExecutionLogs: [] FunctionOutput: '{"response":{"headers":{"cloudfront-functions":{"value":"generated-by-CloudFront-Functions"},"location":{"value":"https://aws.amazon.com/cloudfront/"}},"statusDescription":"Found","cookies":{},"statusCode":302}}' FunctionSummary: FunctionConfig: Comment: MaxAge function Runtime: cloudfront-js-2.0 KeyValueStoreAssociations= \ {Quantity=1, \ Items=[{KeyValueStoreARN='arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111'}]} \ FunctionMetadata: CreatedTime: '2021-04-18T20:38:56.915000+00:00' FunctionARN: arn:aws:cloudfront::111122223333:function/MaxAge LastModifiedTime: '2023-17-20T10:38:57.057000+00:00' Stage: DEVELOPMENT Name: MaxAge Status: UNPUBLISHED
Hinweise
  • FunctionExecutionLogs enthält eine Liste von Protokollzeilen, die die Funktion in console.log()-Anweisungen geschrieben hat (falls vorhanden).

  • ComputeUtilizationenthält Informationen zur Ausführung Ihrer Funktion. Siehe Verstehen Sie die Computernutzung.

  • FunctionOutput enthält das von der Funktion zurückgegebene Ereignisobjekt.

Verstehen Sie die Computernutzung

Rechenauslastung ist die Zeit, die die Ausführung der Funktion in Anspruch genommen hat, als Prozentsatz der maximal zulässigen Zeit. Zum Beispiel bedeutet ein Wert von 35, dass die Funktion in 35 % der maximal zulässigen Zeit abgeschlossen wurde.

Wenn eine Funktion kontinuierlich die maximal zulässige Zeit überschreitet, wird die Funktion CloudFront gedrosselt. Die folgende Liste zeigt, mit welcher Wahrscheinlichkeit eine Funktion basierend auf dem Wert der Rechenauslastung gedrosselt wird.

Rechenauslastungswert:

  • 1 – 50 – Die Funktion liegt deutlich unter der maximal zulässigen Zeit und sollte ohne Drosselung ausgeführt werden.

  • 51 – 70 – Die Funktion nähert sich der maximal zulässigen Zeit. Erwägen Sie die Optimierung des Funktionscodes.

  • 71 — 100 — Die Funktion kommt der maximal zulässigen Zeit sehr nahe oder überschreitet sie. CloudFront wird diese Funktion wahrscheinlich drosseln, wenn Sie sie einer Verteilung zuordnen.