使用aws-nodejs-typescript-ts模板部署Serverless时ScheduleExpression无效报错
问题解决:EventBridge ScheduleExpression 无效错误
错误原因
你在Serverless配置里犯了属性混用的错误:schedule事件的rate字段不能用来配置cron表达式。rate和cron是两个独立的配置项,对应不同的调度语法,把cron表达式放在rate数组里会导致EventBridge无法解析,从而抛出无效参数的错误。
正确配置方式
你有两种可选的正确配置来实现每2分钟触发Lambda:
方式1:使用cron属性直接配置表达式
将rate替换为cron,直接传入你的表达式:
export default { handler: `${handlerPath(__dirname)}/handler.main`, events: [ { http: { method: 'post', path: 'hello', request: { schemas: { 'application/json': schema, }, }, }, }, { schedule: { cron: '*/2 * * * *' // 直接用cron属性配置表达式 } } ], };
方式2:使用rate语法配置
如果你想用rate字段,需要改用AWS的rate语法格式:
export default { handler: `${handlerPath(__dirname)}/handler.main`, events: [ { http: { method: 'post', path: 'hello', request: { schemas: { 'application/json': schema, }, }, }, }, { schedule: { rate: ['2 minutes'] // 使用rate的正确语法 } } ], };
验证提示
修改配置后重新执行serverless deploy即可完成部署。两种配置方式都能实现每2分钟触发一次Lambda的需求,你可以根据个人习惯选择其中一种。
内容的提问来源于stack exchange,提问作者Amjad sibili
相关产品推荐
相关产品推荐

