在使用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/*"