Это проблема синхронизации.
Ваш код return response
выполняется перед вызовом.
вам придется поместить свой оператор return в ваш обратный вызов или использовать async / await
Возврат внутри вашего обратного вызова:
var AWS = require("aws-sdk");
exports.handler = async (event) => {
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
var s3 = new AWS.S3();
s3.listBuckets({}, function (err, data) {
if (err) {
console.log(err, err.stack);
return {
statusCode: 500,
message: 'some error'
}
}
return response
});
}
Использование async / await :
var AWS = require("aws-sdk");
exports.handler = async (event) => {
const response = {
statusCode: 200
};
var s3 = new AWS.S3();
await s3.listBuckets().promise();
return response;
}
Я бы выбрал подход async / await, так как он намного чище и более читабелен. Также легче работать с обещаниями, чем с обратными вызовами.
РЕДАКТИРОВАТЬ : ОП утверждал, что это не сработало. Поэтому я решил проверить это самостоятельно. Вышеприведенный код работает с очень небольшим изменением только для добавления перечисленных сегментов к ответу. Вот окончательный код:
var AWS = require("aws-sdk");
exports.handler = async (event) => {
const response = {
statusCode: 200
};
var s3 = new AWS.S3();
const buckets = await s3.listBuckets().promise();
response.body = JSON.stringify(buckets);
return response;
}
А вот вывод в журналах CloudWatch:
NavigationController предназначен для захвата экрана при его использовании, поэтому вам нужно решить, как управлять переходом к NavigationController из вашего исходного ViewController. Вы можете сделать это с presentModalViewController, или обработав удаление исходного представления и программный обмен NavigationController.
Вот документация Apple для программной настройки NavigationController.
Код будет выглядеть что-то вроде этого (из документа Apple):
GroupsController *groupsController = [[[GroupsController alloc] initWithNibName:nil bundle:nil] autorelease];
UINavigationController *navigationController =
[[UINavigationController alloc] initWithRootViewController:groupsController];
Теперь, когда вы создали NavigationController и добавили в него свой первый view-контроллер, вам нужно перейти к нему. Вы можете сделать это с помощью CATransitions или с помощью
[myViewController presentModalViewController: navigationController];