serverless项目中常见问题及解决


在使用serverless框架进行开发的时候,难免会遇到各种各样的问题,下面对这些问题进行总结。

serverless教程
serverless教程

too many open files

问题

在部署到AWS的时候,出现下面错误提示,同时构建时间过长(20-30分钟)。

bash
Cannot read file ... due to EMFILE: too many open files, open '...'

解决方法

使用插件:serverless-plugin-include-dependencies

bash
yarn add serverless-plugin-include-dependencies

同时在serverless中添加这个插件:

yaml
plugins:
  - serverless-plugin-typescript
  - serverless-offline
  - serverless-plugin-include-dependencies

DynamoDB访问拒绝问题

有些时候,尽管赋予了访问DynamoDB的权限,但在运行时,仍然会出现拒绝访问的问题。这组要是因为,不仅要给访问DynamoDB中表的权限,同时还要赋予访问DynamoDB表中索引的权限。比如:可以这样解决:

yaml
iam: 
  role: 
    statements: 
      - Effect: "Allow" 
        Action: 
          - dynamodb:Query
          - dynamodb:Scan
          - dynamodb:PutItem
          - dynamodb:UpdateItem
          - dynamodb:DeleteItem
          - dynamodb:GetItem
        Resource: 
          - "arn:aws:dynamodb:${self:provider.region}:*:table/${self:custom.dynamo.mainTable}"
      - Effect: "Allow"
        Action:
          - dynamodb:Query
          - dynamodb:Scan
        Resource: 
          - "arn:aws:dynamodb:${self:provider.region}:*:table/${self:custom.dynamo.mainTable}/index/*"

文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !