我拥有一套完整开发的功能,这些功能可以在“开发”阶段正常工作,现在是时候将该产品部署到生产环境了。不幸的是,每次我尝试部署它都会花费很长时间,但是在打印“检查堆栈更新进度”后,它会失败并显示404错误:
发生错误:SentinelLambdaFunction-找不到函数:arn:aws:lambda:us-east-1:837955377040:function:xyz-services-prod-sentinel(Service:AWSLambda; Status Code:404; Error Code:ResourceNotFoundException ;请求ID:38f86b7a-99cd-11e8-af06-fffd92e40dc5)。
这个错误对我来说是没有意义的,因为这个功能确实存在,并且对“ dev”执行完全相同的完全部署不会导致任何错误。请注意,在两个环境/阶段中,我们都将部署10个功能并进行全面部署。
我尝试删除了最初抱怨的功能,希望我可以在第二次部署中重新包含它,但随后它只是抱怨不存在的其他功能。
我还认为“ --force”参数可能会将部署推进到位,但对我得到的错误没有影响。
每次尝试的周期时间都非常长,因此,如果有人可以帮助我指出正确的方向,我将不胜感激。
以下是在“详细”模式下运行时输出的屏幕截图:
为了解决该错误,我想如果我进入CloudFormation并明确删除prod
的模板,可能会有更好的机会。我尝试从GUI执行此操作,并得到以下信息:
实际上,这进一步使我确信,删除该病毒很重要,但是我不确定下一步该怎么做。
答案 0 :(得分:1)
对我来说,解决方案是:
serverless remove
,然后尝试再次部署。
答案 1 :(得分:0)
因此,此问题的解决方案是确保删除CloudFront堆栈的所有先前跟踪。以我为例,我从Lambda中手动删除了一些功能,并且在删除尝试中可能会发生401
错误,而不是我认为与添加有关的错误
请记住,您可能会发现自己-就像我一样-首次删除尝试失败。在这种情况下,请重试并确保选中UI暴露的所有复选框,这些复选框表明是在先前尝试中导致问题的原因。
完成此操作后,便可以从无服务器框架正常部署。