我在使用 Serverless v1.5(撰写本文时最新版本)时遇到了问题
我必须向 lambda 函数添加权限,我试图通过创建一个 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:*:*"
它应该是这样的。我的问题是,当我尝试部署它时,我收到一条错误消息,指出该函数尚未创建,这是可以理解的。我怎样才能克服这个问题?有什么想法吗?
最佳答案
没有足够的代表来添加评论 - 您是否尝试过添加 DependsOn Lambda 权限资源的属性?显式设置该属性将导致 CloudFormation 在创建此权限之前等待 Lambda 函数资源创建。
此外,如果您还不知道在项目根目录中创建的 .serverless 文件夹包含无服务器使用的 CloudFormation 模板,这在解决意外的 CloudFormation 行为时会很有帮助。
关于node.js - 在无服务器中创建 Lambda 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41570810/