【问题标题】:Cloudformation: The resource you requested does not existCloudformation:您请求的资源不存在
【发布时间】:2020-10-15 20:33:06
【问题描述】:

我有一个 cloudformation 堆栈,其中有一个 Lambda 函数,该函数作为触发器映射到 SQS 队列。

发生的事情是我不得不删除映射并手动重新创建它,因为我想更改 batch size。现在,当我想更新映射时,cloudformation 会抛出 The resource you requested does not exist. 消息错误。

资源映射代码如下:

"EventSourceMapping":{
        "Properties":{
            "BatchSize":5,
            "Enabled":"true",
            "EventSourceArn":{
                "Fn::GetAtt":[
                    "ProcessorQueue",
                    "Arn"
                ]
            },
            "FunctionName":{
                "Fn::GetAtt":[
                    "ProcessorLambda",
                    "Arn"
                ]
            }
        },
        "Type":"AWS::Lambda::EventSourceMapping"
    }

我知道我已经删除了最初创建的映射 cloudformation 并手动添加了它,这导致了问题。我该如何解决?因为我现在无法推送任何更新。

请帮忙

【问题讨论】:

  • 最简单的方法是删除您的卡住,然后重新创建。
  • 是的,但遗憾的是我不能这样做。如果有解决方法,请不胜感激
  • EventSourceMapping 不支持导入,因此您无法将手动创建的映射导入堆栈。我不确定这是否可行,但也许您可以尝试从模板中注释掉映射,更新您的堆栈以便 cfn 删除映射(它已经不存在),然后再次取消注释映射更新,这可以创建新的映射回来吗?您可以先在其他一些虚拟堆栈上尝试一下。
  • 这确实有效。有人回答了这个解决方案。不过非常感谢。

标签: amazon-web-services


【解决方案1】:

从我的角度来看,你所做的是一个错误。当您使用 Cloud Formation 时,您不应手动应用更改。你可以,也许这很好,因为一旦创建堆栈,人们可能不关心堆栈。但是由于您正在尝试更新堆栈,这告诉我您想要保留堆栈并按时间更新它。

要缩小您的问题范围,首先要明确手动创建的映射与您的云形成堆栈不同步。因此,从云形成的角度来看,是否保留该映射并不重要。我想知道,如果您保留手动创建的映射并从 Cloud Formation 创建一个新映射,会发生什么?也许它会抱怨,因为您会对同一对 (lambda,queue) 重复映射。试试这个:

  1. 为您的堆栈创建一个更改,从脚本中完全删除EventSourceMapping 资源。这一步基本上是清理丢失的引用。应用更改集。
  2. 那么,我认为您可能会遇到一些问题,请再次将EventSourceMapping 添加到您的堆栈中。

如果您在第 2 步中遇到错误,例如“此映射已存在”,则必须从控制台中删除手动创建的映射。然后重试第 2 步。

【讨论】:

  • 这确实有效。但是人希望我们对云的形成有更多的蛮力控制。还是非常感谢。
【解决方案2】:

您现在可能知道您不应该手动删除资源。如果更改 CF,则可以在不更改 CF 中未更改的资源的情况下对其进行更新。您可以尝试用完全相同的物理名称https://aws.amazon.com/premiumsupport/knowledge-center/failing-stack-updates-deleted/ 替换资源。另一种选择是从 CF 中删除资源,更新,然后将其添加回来并再次更新 - 从同一个文档中。

【讨论】:

    猜你喜欢
    • 2016-02-29
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    相关资源
    最近更新 更多