完全部署到产品的 ResourceNotFoundException
ResourceNotFoundException with full deploy to prod
我有一套完全开发的功能,在 "dev" 阶段运行良好,现在是我部署到生产环境的时候了。不幸的是,每次我尝试部署它都会花费很长时间,但是在打印 "Checking Stack update progress" 之后它会失败并出现 404 错误:
An error occurred: SentinelLambdaFunction - Function not found: arn:aws:lambda:us-east-1:837955377040:function:xyz-services-prod-sentinel (Service: AWSLambda; Status Code: 404; Error Code: ResourceNotFoundException; Request ID: 38f86b7a-99cd-11e8-af06-fffd92e40dc5).
这个错误对我来说是无意义的,因为这个函数 does 存在并且对 "dev" 执行完全相同的完全部署不会导致错误。请注意,在两个 environment/stage 中,我们都部署了 10 个完全部署的功能。
我尝试删除第一个被抱怨的功能,希望我可以在第二次部署中重新包含它,但它只是抱怨另一个不存在的功能。
我还认为“--force”参数可能会将此部署推到位,但它对我收到的错误没有影响。
每次尝试的周期时间很长,所以如果有人能帮助我指出正确的方向,我将不胜感激。
下面是 运行 在 "verbose" 模式下的输出截图:
为了解决这个错误,我想如果我进入 CloudFormation 并明确删除 prod
的模板,也许我会有更好的机会。我尝试从 GUI 执行此操作并得到以下信息:
这实际上进一步让我相信这次删除很重要,但我不确定下一步该怎么做。
因此,此问题的解决方案是确保删除 CloudFront 堆栈之前的所有痕迹。在我的例子中,我手动从 Lambda 中删除了一些函数,我得到的 401
错误很可能是在删除尝试中发生的,而不是我假设它与 adding 这些函数。
请记住,您可能会发现自己 - 就像我一样 - 第一次尝试删除失败。在这种情况下,请重试并确保选中 UI 显示的所有复选框,这些复选框表明是什么导致了先前尝试的问题。
完成后,我就可以从无服务器框架正常部署了。
对我来说,解决方案是:
serverless remove
然后再次尝试部署。
我有一套完全开发的功能,在 "dev" 阶段运行良好,现在是我部署到生产环境的时候了。不幸的是,每次我尝试部署它都会花费很长时间,但是在打印 "Checking Stack update progress" 之后它会失败并出现 404 错误:
An error occurred: SentinelLambdaFunction - Function not found: arn:aws:lambda:us-east-1:837955377040:function:xyz-services-prod-sentinel (Service: AWSLambda; Status Code: 404; Error Code: ResourceNotFoundException; Request ID: 38f86b7a-99cd-11e8-af06-fffd92e40dc5).
这个错误对我来说是无意义的,因为这个函数 does 存在并且对 "dev" 执行完全相同的完全部署不会导致错误。请注意,在两个 environment/stage 中,我们都部署了 10 个完全部署的功能。
我尝试删除第一个被抱怨的功能,希望我可以在第二次部署中重新包含它,但它只是抱怨另一个不存在的功能。
我还认为“--force”参数可能会将此部署推到位,但它对我收到的错误没有影响。
每次尝试的周期时间很长,所以如果有人能帮助我指出正确的方向,我将不胜感激。
下面是 运行 在 "verbose" 模式下的输出截图:
为了解决这个错误,我想如果我进入 CloudFormation 并明确删除 prod
的模板,也许我会有更好的机会。我尝试从 GUI 执行此操作并得到以下信息:
这实际上进一步让我相信这次删除很重要,但我不确定下一步该怎么做。
因此,此问题的解决方案是确保删除 CloudFront 堆栈之前的所有痕迹。在我的例子中,我手动从 Lambda 中删除了一些函数,我得到的 401
错误很可能是在删除尝试中发生的,而不是我假设它与 adding 这些函数。
请记住,您可能会发现自己 - 就像我一样 - 第一次尝试删除失败。在这种情况下,请重试并确保选中 UI 显示的所有复选框,这些复选框表明是什么导致了先前尝试的问题。
完成后,我就可以从无服务器框架正常部署了。
对我来说,解决方案是:
serverless remove
然后再次尝试部署。