Wie richte ich eine API-Gateway-API für den Umgang mit Binärdaten mithilfe einer Lambda-Proxyintegration ein?

Lesedauer: 4 Minute
0

Ich möchte Binärdaten über meine Amazon API Gateway-REST-API (oder HTTP-API) mithilfe einer AWS Lambda-Proxyintegration zurückgeben. Wie richte ich das ein?

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 richtige Ausgabeformat einer Lambda-Funktion für die Proxyintegration verwenden.

So geben Sie Binärdaten über eine API Gateway-REST-API mithilfe einer Lambda-Proxyintegration zurück

  1. Erstellen Sie in der Lambda-Konsole 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-Proxyintegration.

  2. Erstellen Sie in der API Gateway-Konsole eine neue REST-API.

  3. Erstellen Sie eine GET-Methode für die neue API, indem Sie wie folgt vorgehen:
    Wählen Sie im Bereich Ressourcen die Option Aktionen aus.
    Wählen Sie Methode erstellen. Wählen Sie dann GET.
    Wählen Sie im Abschnitt**/- GET - Setup** als Integrationstyp die Option Lambda-Funktion aus. Aktivieren Sie das Kontrollkästchen Lambda-Proxy-Integration verwenden.
    Wählen Sie für Lambda-Region die Region aus, in der Sie Ihre Lambda-Funktion erstellt haben.
    Geben Sie für Lambda-Funktion den Namen der Lambda-Funktion ein, die Sie in Schritt 1 erstellt haben.
    Wählen Sie Speichern.
    Wählen Sie im daraufhin angezeigten Dialogfeld Berechtigung zur Lambda-Funktion hinzufügen die Option OK.

  4. Wählen Sie im linken Navigationsbereich im Abschnitt API die Option Einstellungen aus.

  5. Wählen Sie unter ** Binäre Medientypen** die Option Binären Medientyp hinzufügen und fügen Sie mage/png oder ein anderes Dateiformat hinzu, das Sie verwenden möchten, z. B. application/pdf.

6.    Wählen Sie Änderungen speichern.

  1. Stellen Sie Ihre API in einer neuen Phase bereit. Weitere Informationen finden Sie unter Eine Phase mithilfe der API Gateway-Konsole einrichten.

Ihre API ist jetzt bereit, Binärdaten mithilfe einer Lambda-Proxyintegration über API Gateway zurückzugeben. Informationen zum Aufrufen Ihrer API finden Sie unter Eine REST-API in Amazon API Gateway aufrufen.

**Hinweis:**Beim Umgang mit Binärdaten muss die Eigenschaft; isBase64Encoded in der Ausgabe der Lambda-Funktion auf **true gesetzt werden.**Die Körper-Eigenschaft muss auch das Base64-kodierte Binärmedium enthalten. Weitere Informationen finden Sie unter Mit binären Medientypen für REST-APIs arbeiten.

Aufrufen Ihrer REST-API, um Binärdaten mit Postman und cURL zurückzugeben

Wichtig: Wenn Sie Postman oder cURL verwenden, um Ihre REST-API zur Rückgabe von Binärdaten aufzurufen, stellen Sie sicher, dass Sie den Akzeptieren-Header in die API-Anfrage aufnehmen. Der Wert des Akzeptieren-Headers muss mit dem von Ihnen verwendeten Dateiformat übereinstimmen. Zum Beispiel image/png oder application/pdf.

Informationen zum Aufrufen einer REST-API mit Postman finden Sie unter Postman verwenden, um eine REST-API aufzurufen.

Informationen darüber, wie API Gateway Payloads kodiert, finden Sie unter Inhaltstypkonvertierungen in API Gateway.

Beispiel für einen cURL-Befehl zum Aufrufen einer API-Gateway-REST-API zur Rückgabe von Binärdaten

$ curl 'https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/' -H 'Accept: image/png'

Hinweis: Ersetzen Sie die folgenden Variablen, bevor Sie den cURL-Beispielbefehl ausführen:
Geben Sie für {restapi_id} den Bezeichner Ihrer API ein.
Geben Sie für {region} die AWS-Region ein, in der sich Ihre API befindet.
Geben Sie für {stage_name} den Stufennamen Ihrer API ein.
Stellen Sie für image/png sicher, dass Sie den tatsächlichen Bilddateityp eingeben, den Sie verwenden.

So rufen Sie Ihre REST-API auf, um Binärdaten mit einem Webbrowser zurückzugeben

Wenn Sie einen Webbrowser verwenden, um eine REST-API zur Rückgabe von Binärdaten aufzurufen, stellen Sie sicher, dass Sie der API text/html als binären Medientyp hinzufügen.

Hinweis: 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 berücksichtigt, 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. Wählen Sie in der API Gateway-Konsole Ihre API aus.

  2. Wählen Sie im linken Navigationsbereich unten im Abschnitt API die Option Einstellungen aus.

  3. Wählen Sie unter Binäre Medientypen die Option Binären Medientyp hinzufügen und fügen Sie text/html hinzu.

4.Wählen Sie Änderungen speichern.

  1. Stellen Sie Ihre API bereit.

Weitere Informationen finden Sie unter Inhaltstypkonvertierungen in API Gateway.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren