无服务器 - 类型错误:无法读取未定义的属性"属性"



当发出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全局更新到最新版本