Wie richte ich eine API-Gateway-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 oder HTTP-API in Amazon API Gateway zurückzugeben.

Behebung

Hinweis: API Gateway HTTP-APIs verarbeiten Binärdaten automatisch. 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.

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

Führen Sie die folgenden Schritte aus:

  1. Öffnen Sie die Lambda-Konsole.
  2. Erstellen Sie eine neue Lambda-Funktion.
    Hinweis: Ein Beispiel für eine Python 3-Lambda-Funktion finden Sie unter Rückgabe von Binärmedien aus einer Lambda-Proxy-Integration in API Gateway.
  3. Öffnen Sie die API Gateway-Konsole.
  4. Erstellen Sie eine neue REST-API.
  5. Gehen Sie wie folgt vor, um eine GET-Methode für die neue API zu erstellen:
    Wählen Sie im Bereich Methoden die Option Methode erstellen.
    Wählen Sie als Methodentyp GET aus.
    Wählen Sie im Abschnitt**/ - GET - Setup** als Integrationstyp die Option Lambda-Funktion aus. Aktivieren Sie die Option Lambda-Proxy-Integration verwenden.
    Wählen Sie als Lambda-Funktion die AWS-Region aus, in der Sie Ihre Lambda-Funktion erstellt haben. Geben Sie dann den Namen der neuen Lambda-Funktion ein.
    Wählen Sie Methode erstellen.
  6. Wählen Sie für API die Option API-Einstellungen aus.
  7. Wählen Sie unter Binäre Medientypen die Option Medientypen verwalten und dann Binären Medientyp hinzufügen aus.
  8. Fügen Sie das Dateiformat hinzu, z. B. image/png oder application/pdf.
  9. Wählen Sie Änderungen speichern aus.
  10. Stellen Sie die API in einer neuen Stufe bereit.
    Hinweis: Informationen zum Einrichten einer neuen Stufe finden Sie unter Eine Stufe für eine REST-API in API Gateway einrichten.

Informationen zum Aufrufen der API finden Sie unter Aufrufen von REST-APIs in API Gateway.

Hinweis: Für Binärdaten müssen Sie die Eigenschaft**;isBase64Encoded** in der Ausgabe der Lambda-Funktion auf wahr setzen. Die Eigenschaft Text muss auch das Base64-kodierte Binärmedium enthalten. Weitere Informationen finden Sie 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ügen Sie bei Postman oder cURL den Akzeptieren-Header in die API-Anforderung ein. Der Akzeptieren-Header-Wert muss dem von Ihnen verwendeten Dateiformat entsprechen, z. B. image/png oder application/pdf.

Verwenden Sie den folgenden curl-Befehl:

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

Hinweis: Ersetzen Sie im vorherigen Befehl exampleRestApiId durch den Bezeichner der API und exampleRegion durch die Region, in der sich die API befindet. Ersetzen Sie außerdem exampleStageName durch den Stufennamen der API 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, müssen Sie der API text/html als binären Medientyp hinzufügen. Andernfalls erhalten Sie die folgende Fehlermeldung:

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

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

  1. Öffnen Sie die API Gateway-Konsole.
  2. Wählen Sie Ihre API aus.
  3. Wählen Sie im Navigationsbereich API-Einstellungen aus.
  4. Wählen Sie unter Binäre Medientypen die Option Medientypen verwalten und dann Binären Medientyp hinzufügen aus.
  5. Geben Sie text/html ein.
  6. Wählen Sie Änderungen speichern.
  7. Stellen Sie die API bereit.

Weitere Informationen finden Sie unter Inhaltstypkonvertierungen in API Gateway.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Monaten