Red*_*tle 2 amazon-web-services
我有一个 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"
}
Run Code Online (Sandbox Code Playgroud)
我知道我已经删除了最初创建的映射 cloudformation 并手动添加了它,这导致了问题。我该如何解决?因为我现在无法推送任何更新。
请帮忙
你所做的,在我看来,是一个错误。当您使用 Cloud Formation 时,您不应该手动应用更改。你可以,也许这很好,因为一旦创建堆栈,人们可能不关心堆栈。但是由于您正在尝试更新堆栈,这告诉我您希望保留堆栈并定期更新它。
要缩小问题范围,首先要明确手动创建的映射与您的云形成堆栈不同步。因此,从云形成的角度来看,是否保留该映射并不重要。我想知道,如果您保留手动创建的映射并从 Cloud Formation 创建一个新映射会发生什么?也许它会抱怨,因为您会对同一对 (lambda,queue) 进行重复映射。尝试这个:
EventSourceMapping
从脚本中完全删除资源。这一步基本上是清理丢失的引用。应用更改集。EventSourceMapping
您的堆栈。如果您在步骤 2 中遇到错误,例如“此映射已存在”,则必须从控制台中删除手动创建的映射。然后重试第 2 步。
归档时间: |
|
查看次数: |
1179 次 |
最近记录: |