Direkt zum Inhalt

Wie richte ich eine API-Gateway-REST-API für die Verarbeitung von Binärdaten mithilfe einer Lambda-Proxy-Integration ein?

Lesedauer: 3 Minute
0

Ich möchte eine AWS-Lambda-Proxy-Integration verwenden, um Binärdaten über meine REST-API in Amazon API Gateway zurückzugeben.

Lösung

Damit API-Gateway-REST-APIs Binärdaten verarbeiten können, muss die Backend-Lambda-Funktion das Ausgabeformat einer Lambda-Funktion für die Proxy-Integration verwenden.

Hinweis: API-Gateway-HTTP-APIs verarbeiten Binärdaten automatisch.

Verwendung einer Lambda-Proxy-Integration, um Binärdaten über eine API-Gateway-REST-API zurückzugeben

Führe die folgenden Schritte aus:

  1. Öffne die Lambda-Konsole.
  2. Erstelle eine neue Lambda-Funktion.
    Hinweis: Ein Beispiel für eine Python-3-Lambda-Funktion findest du unter Rückgabe von Binärmedien aus einer Lambda-Proxy-Integration in API Gateway.
  3. Öffne die API Gateway-Konsole.
  4. Erstelle eine neue REST-API.
  5. Gehe wie folgt vor, um eine GET-Methode für die neue API zu erstellen:
    Wähle im Bereich Methoden die Option Methode erstellen.
    Wähle als Methodentyp GET aus.
    Wähle im Abschnitt**/ - GET - Setup** als Integrationstyp die Option Lambda-Funktion aus.
    Aktiviere die Option Lambda-Proxy-Integration verwenden.
    Wähle als Lambda-Funktion die AWS-Region aus, in der du die Lambda-Funktion erstellt hast. Gib dann den Namen der neuen Lambda-Funktion ein.
    Wähle Methode erstellen.
  6. Wähle für API die Option API-Einstellungen aus.
  7. Wähle unter Binäre Medientypen die Option Medientypen verwalten und dann Binären Medientyp hinzufügen aus.
  8. Füge das Dateiformat hinzu, z. B. image/png oder application/pdf.
  9. Wähle Änderungen speichern aus.
  10. Stelle die API in einer neuen Phase bereit.

Hinweis: Bei Binärdaten musst du die Eigenschaft ;isBase64Encoded in der Ausgabe der Lambda-Funktion auf wahr setzen. Die Eigenschaft body (Text) muss auch das base64-kodierte Binärmedium enthalten. Weitere Informationen findest du unter Binäre Medientypen für REST-APIs in API Gateway.

Verwendung von Postman oder cURL, um die REST-API zur Rückgabe von Binärdaten aufzurufen

Wichtig: Füge bei Postman oder cURL den Akzeptieren-Header in die API-Anforderung ein. Der Akzeptieren-Header-Wert muss deinem Dateiformat entsprechen, z. B. image/png oder application/pdf.

Verwende den folgenden curl-Befehl:

curl 'https://exampleRestApiId.execute-api.exampleRegion.amazonaws.com/exampleStageName/' -H 'Accept: image/png'

Hinweis: Ersetze im vorherigen Befehl exampleRestApiId durch die API-Kennung und exampleRegion durch die Region, in der sich deine API befindet. Ersetze außerdem exampleStageName durch den API-Stufennamen und image/png durch den Bilddateityp.

Verwendung eines Webbrowsers, um die REST-API zur Rückgabe von Binärdaten aufzurufen

Webbrowser senden automatisch einen Akzeptieren-Header mit mehreren Werten. Standardmäßig ist der erste Wert immer html/text. Da API Gateway nur den ersten Wert akzeptiert, musst du der API text/html als binären Medientyp hinzufügen. Andernfalls erhältst du die folgende Fehlermeldung:

„The image "https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/" cannot be displayed because it contains errors.“

Gehe wie folgt vor, um text/html als binären Medientyp zu einer REST-API hinzuzufügen:

  1. Öffne die API Gateway-Konsole.
  2. Wähle deine API aus.
  3. Wähle im Navigationsbereich API-Einstellungen aus.
  4. Wähle unter Binäre Medientypen die Option Medientypen verwalten und dann Binären Medientyp hinzufügen aus.
  5. Gib text/html ein.
  6. Wähle Änderungen speichern.
  7. Stelle die API bereit.

Weitere Informationen findest du unter Inhaltstypkonvertierungen in API Gateway.

Ähnliche Informationen

Eine Stufe für eine REST-API in API Gateway einrichten

REST-APIs in API Gateway aufrufen