1

所以我们目前在我们最近的项目中使用无服务器,我们的客户向我们提供了 aws iam 用户,因为我们将部署到他们的 aws 资源中。问题是他们不会给用户创建 s3 策略。s3 存储桶的创建将由他们手动完成。那么我可以在 serverless.yml 的哪个位置添加他们创建的 s3 存储桶并让 serverless 将其用作部署存储桶而不是创建一个新存储桶?

4

2 回答 2

9

我认为 OP 是在询问如何指定无服务器 S3 部署存储桶,而不是如何在 Lambda 函数中引用随机存储桶。

您可以像这样设置部署存储桶serverless.yml

provider:
    deploymentBucket: <bucket name>
于 2018-07-06T05:00:29.253 回答
0

您可以在无服务器应用程序云形成脚本中使用参数:

"Parameters" : {
  "S3BucketArn" : {
    "Default" : "arn:aws:s3:::somebucketarndefaults",
    "Description" : "The ARN for the S3 Bucket",
    "Type" : "String"
  }
}

我猜您在无服务器函数 (Lambda) 中使用它,因此您可以使用环境变量传递它

 "Resources" : {
    "MyAmazingFunction" : {
      "Type" : "AWS::Serverless::Function",
      "Properties": {
        "Handler": "functions::handle",
        // Yada yada
    "Environment" : {
          "Variables" : {
            "S3Arn": {"Ref" : "S3BucketArn"}
          }
        }
      }
    }

S3Arn然后在代码中使用环境变量拉出 Arn 。

于 2018-07-05T10:17:25.493 回答