14

最近、AWS 環境で Lambda 関数のデプロイを処理するためにサーバーレスを採用しましたが、デプロイされた固有の関数ごとに、新しい S3 バケットが作成されます。これは非効率的であり、サーバーレスが作成するスタックごとに 1 つのバケットを持つことが理想的です。serverless.yml ファイル内からこれを行う方法はありますか? リソースに対して次の yml ファイル構成を試みましたが、成功しませんでした。

1 - yml で使用するリソースとしてバケットを一覧表示する

resources:
  Resources:
    ServerlessBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: serverless-test-bucket

出力:

Serverless: Packaging service...
Serverless: Removing old service versions...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading service .zip file to S3...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
............Serverless: Deployment failed!

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

     An error occurred while provisioning your stack: ServerlessBucket
     - serverless-test-bucket already exists.

2 - yml でバケットを参照しようとしています

resources:
  Resources:
    ServerlessBucket:
      Type: AWS::S3::Bucket
      Properties:
        Ref: serverless-test-bucket

出力:

Serverless: Packaging service...
Serverless: Removing old service versions...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading service .zip file to S3...
Serverless: Updating Stack...

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

     Template format error: Unresolved resource dependencies
     [serverless-test-bucket] in the
     Resources block of the template
4

2 に答える 2