Прямо сейчас я редактирую встроенный код на 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;
};





Если вы возвращаете изображение только с помощью лямбда, тогда синхронизация также будет работать, вот код для нее
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-архиве.
Да, эта ламда для меня тоже нова. Я пробую это прямо сейчас.
Привет, я обновлю свой вопрос. По какой-то причине у меня возникает внутренняя ошибка сервера. У меня нет настроенных журналов облачного наблюдения, поэтому он не показывает точную причину, по которой он не работает, но я попытаюсь получить журналы.
Я внес некоторые изменения, и теперь он работает. Еще раз спасибо!
Спасибо за быстрый ответ. Еще один вопрос: нужно ли мне загружать код в виде zip-архива с библиотеками или я могу вручную добавить библиотеку во встроенный редактор? Второй вариант кажется проще, но я не уверен, что он сработает.