当发出serverless deploy --region eu-central-1
时,我得到错误
Type Error ---------------------------------------------
Cannot read property 'Properties' of undefined
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
包含
后才会出现此错误plugins:
- serverless-iam-roles-per-function
,可以通过注释掉插件来恢复。但是我想用它来给我的lambda访问一个DynamoDB。
除了这个错别字外,互联网上对这个错误几乎是空白的。这个错误并没有被最近的更新(尚未)解决,无服务器的通知也没有多大帮助。部署前的set SLS_DEBUG=*"
产量:
Type Error ----------------------------------------------
TypeError: Cannot read property 'Properties' of undefined
at ServerlessIamPerFunctionPlugin.createRoleForFunction (C:UsersXXXXXMyProjectnode_modulesserverless-iam-roles-per-functiondistlibindex.js:273:25)
at ServerlessIamPerFunctionPlugin.createRolesPerFunction (C:UsersXXXXXMyProjectnode_modulesserverless-iam-roles-per-functiondistlibindex.js:383:18)
at PluginManager.invoke (C:snapshotserverlesslibclassesPluginManager.js:579:20)
at async PluginManager.spawn (C:snapshotserverlesslibclassesPluginManager.js:601:5)
at async Object.before:deploy:deploy [as hook] (C:snapshotserverlesslibpluginsdeploy.js:60:11)
at async PluginManager.invoke (C:snapshotserverlesslibclassesPluginManager.js:579:9)
at async PluginManager.run (C:snapshotserverlesslibclassesPluginManager.js:639:7)
at async Serverless.run (C:snapshotserverlesslibServerless.js:452:5)
at async C:snapshotserverlessscriptsserverless.js:751:9
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
我应该在这篇文章中包括我的serverless.yml
吗?它相当大。
我使用一些不同的关键词检索了第二个(!)在线搜索结果,引用:
插件不支持role属性。在提供程序部分中有以下内容:role: arn-for-deployment-role'。试着删除这个
更多信息在这里
这基本上解决了问题,serverless-iam-roles-per-function
在注释后工作:
provider:
name: aws
runtime: python3.7
#iam:
# role: CallsTableQueryRole
这样做的原因可能是,以前的版本(无服务器<V2.24.0)使用了与当前不同的语法。比较:>
provider:
#previously:
iam:
role:
statements:
#≥ v2.24.0
iamRoleStatements:
如果您正在使用Bref框架,请确保将Bref composer和serverless全局更新到最新版本