Вот моя проблема: я хотел бы вызвать API Vimeo внутри функции aws -lambda (nodejs 12), чтобы получить некоторую информацию / данные о видео (например: длительность, заголовок, ...) .
Вот мой код:
exports.handler = async event => {
let Vimeo = require("vimeo").Vimeo;
let client = new Vimeo("{client_id}", "{client_secret}", "{access_token}");
console.log('client => ',
client);
console.log('event => ', event);
video_id = event.video_id;
const res = await client.request(
{
method: "GET",
path: `/users/1234567890/videos/${video_id}`
},
function(error, body, status_code, headers) {
if (error) {
console.log("error", error);
}
console.log("body", body);
console.log("status code");
console.log(status_code);
console.log("headers");
console.log(headers);
return body;
}
)
console.log('hello', res);
return 'ok';
};
Чтобы попробовать, я запускаю несколько тестов. Лямбда возвращает ok
, поэтому я знаю, что моя функция go по всем инструкциям, но console.log возвращает hello undefined
.
Для меня (я имею в виду, я думаю) Это обратный вызов, в настоящее время я знаю в 100% client.request(...)
вернет правильное значение, если вы подождете достаточно времени; но даже с async function
и await
лямбда выглядит слишком занятой, чтобы ждать ответа vimeo api.
thx и хорошего дня