错误管道步骤 "serverless deploy" 说"IamRoleLambdaExecution - Maximum policy size of 10240 bytes exceeded fo



当我尝试使用bitbucket将新API推向AWS时,管道在 serverless exploy 步骤中失败,并说:

iamrolelambdaexecution-最大策略大小10240字节超过角色xxxxxx

最后一个成功创建的角色xxxxxx具有以下内容:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "logs:CreateLogStream"
            ],
            "Resource": [
                "arn:aws:logs:eu-central-1:123456789012:log-group:/aws/lambda/functionname1:*“,
                 …
                "arn:aws:logs:eu-central-1:123456789012:log-group:/aws/lambda/functionname50:*“           
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:eu-central-1:123456789012:log-group:/aws/lambda/functionname1:*“,
                 …
                "arn:aws:logs:eu-central-1:123456789012:log-group:/aws/lambda/functionname50:*“           
            ],
            "Effect": "Allow"
        }
    ]
}

当我剥离每个线馈送和空间时,我收到的几个字母和符号少于10240个。因此,我很确定我角色的大量日志许可就是我的问题。

当我删除我的一个功能时,它起作用,并且API被部署。当我添加一个功能时,它再次显示同一错误。

我正在使用以下插件:无服务器 - plugin-browserify,无服务器式填充,无服务器 - 域 - 管理器,无服务器-plugin-split-stacks,无server-openapi-pocumentation

我正在搜索解决方案并尝试将近一周的时间。有人知道我如何摆脱这个问题吗?

最后我找到了解决方案。这是一个称为无服务的插件

可以在此处找到插件:https://www.npmjs.com/package/serverless-plugin-custom-roles

并感谢Maycon Viana Bordin的文章,将我指向解决方案并解释了问题:https://medium.com/@mayconbordin/@mayconbordin/lessers-leless-leless-larned-building-a-large-a-large-serverless-serverless-serverless-prohens-prohens-project-on-AWS-74D40F5B0B46

作为快速修复我删除了一个功能,部署成功了。

灵感来自此

查看无服务器简称 - 默认 - exec-lole-plugin插件。

从NPM安装它,然后将其添加到您的serverless.yml文件:

plugins:
  - '@shelf/serverless-simplify-default-exec-role-plugin'

这是因为无服务器框架为CloudWatch访问生成了非常详细的IAM策略。

此插件通过简化了数十种资源来工作:

"arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/production-users-createUser:*"

具有1个通配符资源,例如:

"arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:*"

我发现这个有用:https://github.com/shelfio/serverless-simplify-default-exec--role-plugin

我遇到了一个与https://www.npmjs.com/package/serverless-plugin-custom-roles一起工作的问题。我认为我看到的问题是因为无服务器 - 拼写 - custom-custom-roles似乎没有为AWS GovCloud拾取正确的AWS分区,并继续引用AWS商业分区。

相关内容

最新更新