Я пытаюсь удалить ключи API, используя AWS SDK JS, но получаю следующее сообщение об ошибке:
{
"errorType": "Runtime.UserCodeSyntaxError",
"errorMessage": "SyntaxError: await is only valid in async function",
"stack": [
"Runtime.UserCodeSyntaxError: SyntaxError: await is only valid in async function",
" at _loadUserApp (/var/runtime/UserFunction.js:98:13)",
" at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)",
" at Object.<anonymous> (/var/runtime/index.js:36:30)",
" at Module._compile (internal/modules/cjs/loader.js:701:30)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)",
" at Module.load (internal/modules/cjs/loader.js:600:32)",
" at tryModuleLoad (internal/modules/cjs/loader.js:539:12)",
" at Function.Module._load (internal/modules/cjs/loader.js:531:3)",
" at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)",
" at startup (internal/bootstrap/node.js:283:19)"
]
}
Я пытался создать обещание для удаления, так же, как и длявыберите ключи, но я думаю, что это может быть проблемой сделать это внутри foreach.
Мой код:
let sendPromise = null;
let params = {
includeValues: true,
limit: 500
};
let dados = null;
sendPromise = new AWS.APIGateway().getApiKeys( params ).promise();
try {
dados = await sendPromise;
} catch(err) {
console.error(err, err.stack);
return criarResposta( 500, `{
"message": "Erro interno"
}` );
}
dados.items.forEach( chave => {
const paramsDeletar = {
apiKey: chave.id
};
sendPromise = new AWS.APIGateway().deleteApiKey( params ).promise();
try {
let dadosDeletar = await sendPromise;
} catch(err) {
console.error( err, err.stack );
return criarResposta( 500, `{
"message": "Erro interno"
}` );
}
});
return criarResposta( 200, JSON.stringify( dados ) );
Другое дело, нужно ли мне ждать всех моих обещаний индивидуально илиесть способ ожидания связки обещаний?Я не могу не ждать своего обещания, потому что я использую лямбду, но я хотел бы позволить им работать вместе