Ir para o conteúdo

How do I set up an API Gateway REST API to handle binary data through a Lamba proxy integration? (Como configuro uma API REST do API Gateway para lidar com dados binários por meio de uma integração de proxy Lambda?)

4 minuto de leitura
0

Quero usar uma integração de proxy do AWS Lambda para retornar dados binários por meio da minha API REST do Amazon API Gateway.

Resolução

Para que as APIs REST do API Gateway manipulem dados binários, a função do Lambda de backend deve usar o formato de saída de uma função do Lambda para integração de proxy.

Observação: as APIs HTTP do API Gateway lidam automaticamente com dados binários.

Para retornar dados binários por meio de uma API REST do API Gateway, use uma integração de proxy Lambda

Conclua as seguintes etapas:

  1. Abra o console do Lambda.
  2. Crie uma nova função do Lambda.
    Observação: para ver um exemplo de função do Lambda do Python 3, consulte Retornar mídia binária de uma integração de proxy Lambda no API Gateway.
  3. Abra o console do API Gateway.
  4. Crie uma nova API REST.
  5. Para criar um método GET para a nova API, faça o seguinte:
    No painel Métodos, escolha Criar método.
    Em Tipo de método, escolha GET.
    Na seção /- GET - Configuração, em Tipo de integração, selecione Função do Lambda.
    Ative Usar integração de proxy com o Lambda.
    Para Função do Lambda, selecione a região da AWS na qual você criou sua função do Lambda. Em seguida, insira o nome da nova função do Lambda.
    Selecione Criar método.
  6. Para API, escolha configurações da API.
  7. Em Tipos de mídia binária, selecione Gerenciar tipos de mídia e, em seguida, Adicionar tipo de mídia binária.
  8. Adicione seu formato de arquivo, como image/png ou application/pdf.
  9. Escolha Salvar alterações.
  10. Implantar sua API em um novo estágio.

Observação: para dados binários, você deve definir a propriedade ;isBase64Encoded como verdadeiro na saída da função do Lambda. A propriedade body também deve conter a mídia binária codificada em base64. Para mais informações, consulte Tipos de mídia binária para APIs REST no API Gateway.

Usar Postman ou cURL para invocar a API REST para retornar dados binários

Importante: para Postman ou cURL, inclua o cabeçalho Aceitar na solicitação da API. O valor do cabeçalho Aceitar deve corresponder ao formato do arquivo, como image/png ou application/pdf.

Execute o seguinte comando curl:

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

Observação: no comando anterior, substitua exampleRestApiId pelo identificador da API e exampleRegion pela região em que a API está. Além disso, substitua exampleStageName pelo nome do estágio da API e image/png pelo tipo de arquivo de imagem.

Para invocar a API REST para retornar dados binários, use um navegador da web

Os navegadores da web enviam automaticamente um cabeçalho Aceitar com vários valores. Por padrão, o primeiro valor é sempre html/text. Como o API Gateway aceita somente o primeiro valor, você deve adicionar text/html como um tipo de mídia binária à API. Caso contrário, você recebe a seguinte mensagem de erro:

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

Para adicionar text/html como um tipo de mídia binária a uma API REST, conclua as seguintes etapas:

  1. Abra o console do API Gateway.
  2. Selecione sua API.
  3. No painel de navegação, selecione Configurações da API.
  4. Em Tipos de mídia binária, selecione Gerenciar tipos de mídia e, em seguida, Adicionar tipo de mídia binária.
  5. Digite text/html.
  6. Selecione Salvar alterações.
  7. Implante sua API.

Para mais informações, consulte Conversões de tipo de conteúdo no API Gateway.

Informações relacionadas

Configurar um estágio para uma API REST no API Gateway

Invocar APIs REST no API Gateway