gpt4 book ai didi

amazon-web-services - 从跨堆栈共享的 API 网关删除 Lambda 时出错

转载 作者:行者123 更新时间:2023-12-03 07:38:31 24 4
gpt4 key购买 nike

我已经实现了this pattern在 TypeScript 中跨 AWS CDK 中的多个堆栈共享一个 API GW RestAPI。

基本上,我在公共(public)堆栈中创建一个 Rest API,并将其传递到其他堆栈,在其中添加资源和 lambda 集成。到目前为止效果很好。

但是,当我删除 lambda 集成时,部署失败并出现以下错误:Export users-stack:ExportsOutputFnGetAttusersstackauthorizeuserC81C1452ArnB7D2BE00 无法删除,因为它正在被 common-stack 使用

我对所发生情况的理解是,CDK/CloudFormation 正在尝试首先部署用户堆栈,其中包括删除错误消息中引用的函数。此时,公共(public)堆栈中的 REST API 仍然引用此 lambda,因为它尚未重新部署,并且 CloudFormation 不够“智能”,无法推断对 lambda 函数的引用很快就会消失。

有办法解决这个问题吗?我研究了是否可以通过编程方式清除用户堆栈中的 lambda 集成,但它并不认为这是可能的。

最佳答案

您的输出在公共(public)堆栈中引用,因此您无法删除它所来自的堆栈。

此处的解决方案是复制 ExportsOutputFnGetAttusersstackauthorizeuserC81C1452ArnB7D2BE00 的值(您可以在 Cloudformation 控制台的用户堆栈的输出选项卡中轻松找到它)。然后,您必须将其硬编码到引用它的公共(public)堆栈中,并使用此更改部署堆栈。

这样,common-stack 将不再使用 users-stack 的输出。

之后,您应该能够从用户堆栈中删除资源并毫无问题地部署它。

关于amazon-web-services - 从跨堆栈共享的 API 网关删除 Lambda 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75977600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com