AWS功能策略大于限制

时间:2017-07-31 18:01:35

标签: amazon-web-services aws-lambda

我有一个链接到AWS java Lambda后端的Amazon API网关。 我正在尝试向资源添加新方法,并且在为新方法选择集成点时出现以下错误。

错误是:

“功能政策大于限制。请通过lambda cli手动更新政策。”

如何更新策略以及为什么会出现此错误?

非常感谢, 理查德

2 个答案:

答案 0 :(得分:0)

好的建议问题是政策文件限制为20kb。您可以通过Cli获取策略文档虽然对我来说它没有多大帮助,除非有一种方法可以覆盖它并且一种优化它的方法然后它相当无用。那说我可能找不到它。

请注意,这是一个Lambda问题,在这种情况下不是API网关问题。简而言之,我有很多端点(~30 / 50),对于API而言,这一点并不存在,但是每个端点在策略文档中需要相关的几行,将Lambda代码链接到API网关端点。在大约30到50个端点上填写了政策文件。

可能有更好的方法来做到这一点....但即使我删除了一些未使用的端点,它也没有帮助。解决方案是删除Lambda函数代码并重新制作它。

但是,只有在您再次重新创建链接之后,才会清除策略文档。为了避免再次出现此问题,我不得不将端点减少到核心端点,然后使用传递的参数在Lambda中触发正确的代码。

    Instead of  https://www.something.com/cars/iswindowopen
    do
    Instead of  https://www.something.com/cars
    {
     "call":"iswindowopen"
    } 

在sort中将许多端点作为参数传递。这可能是我的错,因为我没有阅读足够的文档,但这个限制在我看来很隐蔽所以请注意=)

答案 1 :(得分:0)

如果使用python,则可以使用Boto3 lambda API get_policy来查看随lambda函数附加了哪些基于资源的策略,然后使用remove_permission清除重复的策略或不需要的策略。您还可以使用AWS Lambda CLI get-policy和remove-permission来检查和清理策略。 您可以查看this article,以获取有关如何解决此问题的信息。

解决此问题后,您应该configure the permission for your API使用基于资源的策略或IAM角色来调用Lambda,以防止将来出现此错误。