【发布时间】:2019-07-02 12:52:39
【问题描述】:
我正在尝试正确构建我的 AWS lambda。当我遇到错误时,我正在尝试退出 Lambda。使用简单的一个函数 Lambda,我这样做:
exports.handler = async (event, context) => {
const someError = new Error('Something is wrong');
throw someError;
};
它最终在 DeadQueue 中按预期结束(经过多次尝试)。
当我想成功解决它时,我会这样做:
exports.handler = async (event, context) => {
// ... some code here
return {};
};
现在我想使用 requires 来构建我的应用程序,所以我有这样的东西:
//Main execution point
const validator = require('./Validate/Validator');
exports.handler = async (event, context) => {
let aaa = validator.validate(operationName);
console.log('I should not bere here')
};
还有验证器本身:
exports.validate = async (schemaName, payload) => {
console.log('I am coming here')
try {
const Schema = require(`../ValidationSchemas/${schemaName}`).schema;
}
catch (e) {
const schemaError = new Error('Validation schema not found. Operation does not exist.');
throw schemaError;
//process.exit(0);
}
};
在验证器中会发生什么,如果我抛出错误,则会抛出错误,但我的执行会在主(调用者)lambda 函数中继续执行。我想用
把它停在那里process.exit(0)
确实有效。 Lambda 被终止。但出于某种原因,这看起来是一种不好的方法。理想情况下,我会从主要功能开始,但我正在考虑最好的方法。
【问题讨论】:
标签: node.js amazon-web-services lambda