【问题标题】:S3 bucket already existing error - even after manually deleted it from awsS3 存储桶已经存在错误 - 即使从 aws 手动删除它
【发布时间】:2022-02-03 08:07:19
【问题描述】:

我对这种无服务器和 AWS 完全陌生。我正在尝试使用无服务器创建 S3 存储桶

我的 serverless.yml 文件如下所示

service: s3-file-uploader 

provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: us-east-2

custom:
  fileUploadBucketName: ${self:service}-bucket-${self:provider.stage} 

resources:
  Resources:
    FileBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: ${self:custom.fileUploadBucketName}
        AccessControl: PublicRead 

当我第一次运行 serverless deploy 时它工作了,但此后我从 aws 手动删除了存储桶并尝试重新部署它。它告诉我这个错误

 Serverless Error ----------------------------------------

  An error occurred: FileBucket - s3-file-uploader-bucket-dev already exists.

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          win32
     Node Version:              14.18.0
     Framework Version:         2.72.1
     Plugin Version:            5.5.4
     SDK Version:               4.3.0
     Components Version:        3.18.2

它说带有s3-file-uploader-bucket-dev 这个名称的存储桶已经存在,但是在 aws s3 中没有这个名称的存储桶。 即使它给出了这个错误,也会创建一个名为 s3-file-uploader-dev-serverlessdeploymentbucket-1aucnojnjl618 的存储桶,但这不是我在 serverlesss.yml 文件中给出的名称,它应该像 s3-file-uploader-bucket-dev 并且在 cloudFormation 中有一个堆栈使用名称s3-file-uploader-dev 创建,其状态为UPDATE_ROLLBACK_COMPLETE

为什么它显示上述错误,同时创建一个不同名称的存储桶?给出一个错误并创建一个桶是令人困惑的。

【问题讨论】:

    标签: amazon-web-services amazon-s3 serverless serverless-framework


    【解决方案1】:

    存储桶名称是全球唯一的。您可以阅读有关它的信息here 和有关删除存储桶的信息 here。如果该名称尚未被其他人占用,则需要等待“一段时间”才能重新使用相同的名称。所用时间未知(afaik)。

    【讨论】:

    • 澄清一下,因为 Bucket 名称是全球唯一的,这是否意味着两个不同的 AWS 账户不能创建同名的 Bucket?
    • @AthavanT,没错。一旦创建了一个存储桶,例如“my-bucket-007”,在删除该存储桶之前,没有其他人可以创建具有相同名称(my-bucket-007)的存储桶。
    【解决方案2】:

    存储桶名称可能需要几个小时才能再次可用。

    所以,要么选择一个不同的存储桶名称,要么等待一段时间,直到它再次可用。

    【讨论】:

    • 澄清一下,因为 Bucket 名称是全球唯一的,这是否意味着两个不同的 AWS 账户不能创建同名的 Bucket?
    • 没错。存储桶名称在全球范围内的所有 AWS 账户中都是唯一的。这是因为可以通过通用 URL 格式 (bucketname.s3.amazonaws.com) 访问存储桶,无论存储桶位于何处以及由哪个帐户创建。
    猜你喜欢
    • 1970-01-01
    • 2015-06-22
    • 2020-07-16
    • 2020-12-16
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    相关资源
    最近更新 更多