无服务器创buildLambda权限

我遇到了无服务器v1.5(在编写本文时现在可用的最新版本)的问题,

我必须为lambda函数添加权限,我试图通过创build一个CF模板并与该函数的部署一起运行来实现:

resources: Resources: logsGroup: Type: "AWS::Lambda::Permission" Properties: Action: lambda:InvokeFunction FunctionName: Fn::GetAtt: - "${self:custom.${opt:stage}.name}" - "Arn" Principal: "logs.amazonaws.com" SourceAccount: Ref: "AWS::AccountId" SourceArn: "arn:aws:logs:${self:provider.region}:*:log-group:*:*" 

这应该是这样的。 我的问题是,当我尝试部署它时,我得到一个错误,说该函数还没有创build,这是可以理解的。 我怎样才能克服这个问题? 有任何想法吗?

没有足够的代表添加评论 – 您是否尝试添加一个DependsOn属性到Lambda权限资源? 显式设置该属性将导致CloudFormation等待创buildLambda函数资源之前创build此权限。

另外,如果您还没有意识到在项目的根目录中创build的.serverless文件夹包含无服务器使用的CloudFormation模板,在解决意外的CloudFormation行为时可能会有所帮助。