【问题标题】:How to Add iamRoleStatements to S3 Trigger Bucket in Serverless Framework如何在无服务器框架中将 iamRoleStatements 添加到 S3 触发器存储桶
【发布时间】:2018-02-16 07:11:30
【问题描述】:

当我在 serverless.yml 文件中添加以下代码时

provider:
  name: aws
  runtime: python3.6
  stage: dev
  region: [REGION]
  iamRoleStatements:
    - Effect: "Allow"
      Action:
       - "s3:GetObject"
      Resource: { "Fn::Join": ["", ["arn:aws:s3:::", { "Ref": [BUCKET NAME] }, "/*" ] ] }

在部署时,我收到 “CloudFormation 模板无效:资源之间的循环依赖:”

我正在使用 boto3python3 来获取触发事件后上传到 S3 存储桶的私有文件,因此想授予 Lambda 权限该存储桶的函数

【问题讨论】:

  • 我认为这实际上只是一个 CloudFormation 问题,而不是具体的无服务器框架问题。你看过这个问题的答案吗? stackoverflow.com/questions/25680599/…
  • 不,主要是我在 serverless.yml 文件中做错了,这就是为什么包含无服务器框架的原因。
  • 但这是 CloudFormation 错误。 serverless.yml 不只是一个 CloudFormation 模板文件吗?我会搜索如何解决 CloudFormation 中的该错误,而不是将您的搜索不必要地缩小到无服务器框架。
  • 但我共享的代码在 serverless.yml 文件中,无服务器框架正在将其转换为 CloudFormation 模板。
  • 我认为无服务器框架不会将其转换为 CloudFormation 模板。它已经是一个 CloudFormation 模板。就是这样。

标签: amazon-web-services amazon-s3 aws-lambda amazon-iam serverless-framework


【解决方案1】:

我遇到了同样的问题,我花了几个小时解决这个问题。最后我找到了一个解决方案:NOT ref the bucket.

改变

provider:
  name: aws
  runtime: python3.6
  stage: dev
  region: [REGION]
  iamRoleStatements:
    - Effect: "Allow"
      Action:
       - "s3:GetObject"
      Resource: { "Fn::Join": ["", ["arn:aws:s3:::", { "Ref": [BUCKET NAME] }, "/*" ] ] }

provider:
  name: aws
  runtime: python3.6
  stage: dev
  region: [REGION]
  iamRoleStatements:
    - Effect: "Allow"
      Action:
       - "s3:GetObject"
      Resource: { "Fn::Join": ["", ["arn:aws:s3:::<s3-bucket-name>", "/*" ] ] }

甚至更简单:

provider:
  name: aws
  runtime: python3.6
  stage: dev
  region: [REGION]
  iamRoleStatements:
    - Effect: "Allow"
      Action:
       - "s3:GetObject"
      Resource: "arn:aws:s3:::<s3-bucket-name>/*"

【讨论】:

  • 您为我节省了数千小时!很遗憾,主要文档缺少这么基本的东西..
  • 如果 BucketName 是动态的并根据阶段变化怎么办?
  • Tyler Long * 星星是什么意思?
  • @RahulAhire 表示该存储桶下的所有资源。
猜你喜欢
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 2020-06-23
  • 1970-01-01
  • 2020-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多