这是我为创建一个简单的S3存储桶而编写的cloudformation模板,如何指定存储桶的名称?这条路对吗?
{
"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"
}
}
}
}发布于 2019-10-03 06:38:32
为了扩展'cloudquiz‘的答案,下面是它在yaml格式中的样子:
Resources:
SomeS3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName:
Fn::Join: ["-", ["yourbucketname", {'Fn::Sub': '${AWS::Region}'}, {'Fn::Sub': '${Stage}'}]]发布于 2017-08-28 01:49:44
下面是一个非常简单的Cloudformation模板,它创建了一个S3存储桶,包括定义存储桶名称。
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-$唯一标识符。
希望这能有所帮助。
发布于 2017-08-17 06:47:01
您的代码已经指定了BucketName:
"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将从运行堆栈的位置拉出,并将通过映射以简短的格式返回。
https://stackoverflow.com/questions/42978948
复制相似问题