Wie richte ich eine API-Gateway-API für den Umgang mit Binärdaten mithilfe einer Lambda-Proxyintegration ein?
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
-
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. -
Erstellen Sie in der API Gateway-Konsole eine neue REST-API.
-
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. -
Wählen Sie im linken Navigationsbereich im Abschnitt API die Option Einstellungen aus.
-
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.
- 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:
-
Wählen Sie in der API Gateway-Konsole Ihre API aus.
-
Wählen Sie im linken Navigationsbereich unten im Abschnitt API die Option Einstellungen aus.
-
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.
Weitere Informationen finden Sie unter Inhaltstypkonvertierungen in API Gateway.
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 7 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren