首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cloudformation S3bucket创建

Cloudformation S3bucket创建
EN

Stack Overflow用户
提问于 2017-03-23 22:27:50
回答 3查看 10.3K关注 0票数 1

这是我为创建一个简单的S3存储桶而编写的cloudformation模板,如何指定存储桶的名称?这条路对吗?

代码语言:javascript
复制
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "Simple S3 Bucket",
  "Parameters": {
    "OwnerService": {
      "Type": "String",
      "Default": "CloudOps",
      "Description": "Owner or service name. Used to identify the owner of the vpc stack"
    },
    "ProductCode": {
      "Type": "String",
      "Default": "cloudops",
      "Description": "Lowercase version of the product code (i.e. jem). Used for tagging"
    },
    "StackEnvironment": {
      "Type": "String",
      "Default": "stage",
      "Description": "Lowercase version of the environment name (i.e. stage). Used for tagging"
    }
  },
  "Mappings": {
    "RegionMap": {
      "us-east-1": {
        "ShortRegion": "ue1"
      },
      "us-west-1": {
        "ShortRegion": "uw1"
      },
      "us-west-2": {
        "ShortRegion": "uw2"
      },
      "eu-west-1": {
        "ShortRegion": "ew1"
      },
      "ap-southeast-1": {
        "ShortRegion": "as1"
      },
      "ap-northeast-1": {
        "ShortRegion": "an1"
      },
      "ap-northeast-2": {
        "ShortRegion": "an2"
      }
    }
  },
  "Resources": {
    "JenkinsBuildBucket": {
      "Type": "AWS::S3::Bucket",
      "Properties": {
        "BucketName": {
          "Fn::Join": [
            "-",
            [
              {
                "Ref": "ProductCode"
              },
              {
                "Ref": "StackEnvironment"
              },
              "deployment",
              {
                "Fn::FindInMap": [
                  "RegionMap",
                  {
                    "Ref": "AWS::Region"
                  },
                  "ShortRegion"
                ]
              }
            ]
          ]
        },
        "AccessControl": "Private"
      },
      "DeletionPolicy": "Delete"
    }
  },
  "Outputs": {
    "DeploymentBucket": {
      "Description": "Bucket Containing Chef files",
      "Value": {
        "Ref": "DeploymentBucket"
      }
    }
  }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-03 06:38:32

为了扩展'cloudquiz‘的答案,下面是它在yaml格式中的样子:

代码语言:javascript
复制
Resources:
  SomeS3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName:
        Fn::Join: ["-", ["yourbucketname", {'Fn::Sub': '${AWS::Region}'}, {'Fn::Sub': '${Stage}'}]]
票数 1
EN

Stack Overflow用户

发布于 2017-08-28 01:49:44

下面是一个非常简单的Cloudformation模板,它创建了一个S3存储桶,包括定义存储桶名称。

代码语言:javascript
复制
AWSTemplateFormatVersion: '2010-09-09'
Description: create a single S3 bucket

Resources:
  SampleBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: sample-bucket-0827-cc

如果您想让亚马逊网络服务为您命名存储桶,也可以不使用“属性: BucketName”行。然后,它将看起来像$StackName-SampleBucket-$唯一标识符。

希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2017-08-17 06:47:01

您的代码已经指定了BucketName:

代码语言:javascript
复制
"BucketName": {
      "Fn::Join": [
        "-",
        [
          {
            "Ref": "ProductCode"
          },
          {
            "Ref": "StackEnvironment"
          },
          "deployment",
          {
            "Fn::FindInMap": [
              "RegionMap",
              {
                "Ref": "AWS::Region"
              },
              "ShortRegion"
            ]
          }
        ]
      ]
    },

BucketName是一个字符串,由于您使用的是'Fn Join',因此它将由您要连接的函数组合而成。“内部函数Fn::Join将一组值附加到由指定分隔符分隔的单个值中。如果分隔符是空字符串,则不使用分隔符连接该组值。”如果不更改默认值,则您的存储桶名称为:cloudops-stage-deplyment Your yourAwsRegion

如果您更改默认参数,那么cloudops和stage都可以更改,部署是硬编码的,yourAWSRegion将从运行堆栈的位置拉出,并将通过映射以简短的格式返回。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42978948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档