Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per restituire un supporto binario da un'integrazione proxy AWS Lambda, codificare in base64 la risposta dalla funzione Lambda. È inoltre necessario configurare i tipi di supporti binari dell'API. Il limite della dimensione del payload è 10 MB.
Nota
Per utilizzare un browser Web per richiamare un'API con questo esempio di integrazione, imposta i tipi di supporti binari dell'API su */*
. API Gateway utilizza la prima intestazione Accept
dai client per determinare se una risposta deve restituire supporti binari. Per restituire un supporto binario quando non è possibile controllare l'ordine dei valori delle intestazioni Accept
, ad esempio le richieste da un browser, impostare i tipi di supporti binari dell'API su */*
(per tutti i tipi di contenuto).
Il seguente esempio di funzione Lambda può restituire ai client un'immagine binaria da Amazon S3 o del testo. La risposta della funzione include un'intestazione Content-Type
per indicare al client il tipo di dati che restituisce. La funzione imposta in modo condizionale la proprietà isBase64Encoded
nella risposta, a seconda del tipo di dati che restituisce.
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3"
const client = new S3Client({region: 'us-east-2
'});
export const handler = async (event) => {
var randomint = function(max) {
return Math.floor(Math.random() * max);
}
var number = randomint(2);
if (number == 1){
const input = {
"Bucket" : "bucket-name
",
"Key" : "image.png
"
}
try {
const command = new GetObjectCommand(input)
const response = await client.send(command);
var str = await response.Body.transformToByteArray();
} catch (err) {
console.error(err);
}
const base64body = Buffer.from(str).toString('base64');
return {
'headers': { "Content-Type": "image/png" },
'statusCode': 200,
'body': base64body,
'isBase64Encoded': true
}
} else {
return {
'headers': { "Content-Type": "text/html" },
'statusCode': 200,
'body': "<h1>This is text</h1>",
}
}
}
Per ulteriori informazioni sui tipi di supporti binari, consulta Tipi di supporti binari per REST APIs in API Gateway.