Wie kann ich binären Inhalt vom Knoten JS AWS Lambda Backend mit dem Serverless Framework an API Gateway übergeben?

10

Wie wir wissen, unterstützen API Gateway und Lambda binäre Anfrage / Antwort, aber ich habe eine Frage für die Backend-Programmierung in Knoten JavaScript.

Umgebung:

  • Verwendung des Serverless-Frameworks mit Lambda-Integration (nicht Lambda-Proxy).
  • Antwortheaderzuordnung ist:
    Inhaltstyp: integration.response.body.headers.Content-Type
  • Antwortvorlagenzuordnungen sind:
    image / png: $ input.path ('$. body')
    image / jpeg: $ input.path ('$. body')
  • Aktivieren Sie die binäre Unterstützung für image / png und image / jpeg

Bei obigen Umgebungen habe ich in meinem Code einen Antwortinhalt als Binär (Pufferobjekte-Array).
Aber wenn ich Buffer-Objekte als Antwort direkt gebe,

%Vor%

Empfangen Antwort ist wie folgt:

%Vor%

Wenn ich Buffer-Objekte Array als Antwort von base64-codiert geben,

%Vor%

Empfangen Antwort ist wie folgt:

%Vor%

Wie kann ich dem API-Gateway eine binäre Antwort vom Knoten-JS-Backend unter Verwendung des Serverless-Frameworks geben?

== PostScript ==

Nach diesem Dokument:
AWS API Gateway Binäre Ausgabe ohne Accept-Header
Wir müssen "Content Handling" der Integration Antwort ändern auf "CONVERT TO BINARY", um binäre Antwort zu reagieren Aber wie kann ich das einstellen?
Ich habe keine Ahnung sowohl von Serverless.yml und AWS-Konsole GUI.

Und wenn ich diese Inhaltsbehandlung erfolgreich eingestellt habe = & gt; CONVERT TO BINARY, kann ich die Antwort auf die binäre Antwort lösen?

== Bearbeitet am 17. Januar ==

Hallo @ ka-hou-ieong

Du hast Rest-api-id und Ressourcen-ID geschrieben, sie sind in den unteren Bildern, richtig?

Aber mit diesen IDs, Befehl Ergebnis sagte:

%Vor%

Was ist daran falsch? Ich benutze neueste aws-cli (aws-cli / 1.11.37 Python / 2.7.9 Darwin / 16.3.0 botocore / 1.5.0)

    
kochizufan 15.01.2017, 02:45
quelle

1 Antwort

3

Wenn Sie die Antwort als binäre Antwort erzwingen möchten, können Sie 'CONVERT_TO_BINARY' für den contentHandling bei der Integrationsantwort über AWS CLI oder über die API festlegen. Momentan fehlt uns diese Option an der Konsole.

API

%Vor%

CLI

%Vor%     
Ka Hou Ieong 15.01.2017, 22:47
quelle