有没有办法在无服务器中指定已经创建的s3部署存储桶?

时间:2018-07-05 10:11:56

标签: serverless-framework serverless aws-serverless

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

2 个答案:

答案 0 :(得分:8)

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

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

provider:
    deploymentBucket: <bucket name>

答案 1 :(得分: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。