Отображение изображения в конечной точке API с использованием aws lambda и node.js

Прямо сейчас я редактирую встроенный код на AWS lambda. Вот что у меня есть сейчас:

var qrImage = require('qr-image');


exports.handler = async (event) => {
    return sendRes(200,'hi');
};
/*
const sendRes = (status, body) => {
  var response = {
    statusCode: status,
    headers: {
      "Content-Type": "text/html"
    },
    body: body
  };
  return response;
}; 
*/

const sendRes = (status, body) => {
  const svg_string = qrImage.imageSync('http://www.nodejs.org',{ type: 'png', size: 20 });
  var response = {
    statusCode: status,
    headers: {
      "Content-Type": "image/jpeg"
    },
    body: svg_string
  };
  return response;
};

Это выводит текст Внутренняя ошибка сервера.

Приведенный ниже код создает файл png и сохраняет его. Функциональность, которую я хотел бы на лямбда-выражении, - это просто отображать изображение (без сохранения), когда я обращаюсь к конечной точке. Но я не уверен, как это сделать (впервые в Lamda, Node.js). Что именно я должен искать?

var qrImage = require('qr-image');
var fs = require('fs');

qrImage
    .image("http://www.nodejs.org", {type:'png', size:20})
    .pipe(fs.createWriteStream("MyQRCode.png"));

РЕДАКТИРОВАТЬ Я внес небольшие изменения, и, похоже, это работает

var qrImage = require('qr-image');

exports.handler = async (event) => {
    return sendRes(200,'hi');
};

const sendRes = (status, body) => {
  const svg_string = qrImage.imageSync('this is AWS!', { type: 'svg', size: 10 });
  var response = {
    statusCode: status,
    headers: {
      "Content-Type": "image/svg+xml"
    },
    body: svg_string
  };
  return response;
};
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
480
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы возвращаете изображение только с помощью лямбда, тогда синхронизация также будет работать, вот код для нее

const sendRes = (status, body) => {
  const svg_string = qr.imageSync('http://www.nodejs.org', { type: 'png', size: 20 });
  var response = {
    statusCode: status,
    headers: {
      "Content-Type": "image/jpeg"
    },
    body: svg_string
  };

  return response;
};

Спасибо за быстрый ответ. Еще один вопрос: нужно ли мне загружать код в виде zip-архива с библиотеками или я могу вручную добавить библиотеку во встроенный редактор? Второй вариант кажется проще, но я не уверен, что он сработает.

Avinash Prabhakar 12.10.2018 16:59

Я думаю, вы спрашиваете о лямбде? Если это так, позвольте мне сначала прояснить, что у меня нет большого опыта работы с лямбда, я видел, как люди напрямую вставляли код со всеми зависимостями в лямбда в zip-архиве.

Sanket 12.10.2018 17:03

Да, эта ламда для меня тоже нова. Я пробую это прямо сейчас.

Avinash Prabhakar 12.10.2018 17:05

Привет, я обновлю свой вопрос. По какой-то причине у меня возникает внутренняя ошибка сервера. У меня нет настроенных журналов облачного наблюдения, поэтому он не показывает точную причину, по которой он не работает, но я попытаюсь получить журналы.

Avinash Prabhakar 12.10.2018 18:04

Я внес некоторые изменения, и теперь он работает. Еще раз спасибо!

Avinash Prabhakar 12.10.2018 19:00

Другие вопросы по теме