node.js - 在无服务器中创建 Lambda 权限

标签 node.js aws-lambda serverless-framework

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

相关文章:

aws-lambda - AWS 无服务器 Java Lambda 调试

amazon-web-services - 无服务器错误 : The security token included in the request is invalid

javascript - AWS Lambda - Cognito Identity ID 使用相同的登录名更改

node.js - 执行文件后在 CLI 上继续

amazon-web-services - 从一个 SQS 触发器触发多个 lambda 函数

node.js - 使用 npm 在 linux (yocto) 上更新 nodejs

node.js - 从 Lambda 连接到 DocumentDB 时超时

amazon-web-services - 如何为 aws cognito 用户池设置电子邮件配置?

javascript - 如何在 Sails.js 中为自定义路由启用 CORS

mysql - 为什么在 hh/mm/ss 不同的日期之间 Sequelize 返回空