Amazon web services 如何从aws greengrass中删除现有lambda?

Amazon web services 如何从aws greengrass中删除现有lambda?,amazon-web-services,aws-lambda,aws-iot,greengrass,Amazon Web Services,Aws Lambda,Aws Iot,Greengrass,我试图从Greengrass中删除Greengrass版本的lambda,它向我抱怨 We cannot deploy because the group definition is invalid or corrupted for the following reasons: {ErrorSet(errorSet=[ErrorModel(errorCode=REFERENTIAL_INTEGRITY_ERROR, errorMsg=Source arn:aws:lambda:us-east-1

我试图从Greengrass中删除Greengrass版本的lambda,它向我抱怨

We cannot deploy because the group definition is invalid or corrupted for the following reasons: {ErrorSet(errorSet=[ErrorModel(errorCode=REFERENTIAL_INTEGRITY_ERROR, errorMsg=Source arn:aws:lambda:us-east-1:xxx:function:xxx:2 does not exist in group)])}
"Source arn:aws:lambda:us-east-1:xxx:function:xxx:2 does not exist in group"
我理解我们需要使用别名而不是版本,但如果是这种情况,AWS IOT不应允许这样做


更新了代码,添加了新版本,但我无法删除旧版本。

在尝试替换Lambda函数时,我收到了类似的错误消息。最后,问题是订阅引用了该函数。尝试删除任何源或目标为lambda的订阅,这会导致问题。

您需要删除所有引用lambda的订阅。在此过程中,您需要更新错误中提到的定义

在AWS的图形控制台中这样做相对容易。然而,通过命令行是一个非常漫长的过程。要通过命令行执行此操作,您需要查询组、获取所有定义/版本、更新订阅、获取新的定义,并使用订阅中的新定义修改原始组并部署该组


这有点混乱,我花了一段时间才弄明白。

我知道这似乎是一个显而易见的问题,但您能否包括对组的描述,以表明组中确实存在arn:aws:lambda:us-east-1:xxx:function:xxx:2?是的,这就是诀窍。错误消息没有告诉你多少,但订阅对我来说也是个问题+两个答案各有一个答案。