Aquí está la plantilla de formación en la nube que escribí para crear un depósito S3 simple. ¿Cómo especifico el nombre del depósito? ¿Es este el camino correcto?
{ "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 (ie jem). Used for tagging" }, "StackEnvironment": { "Type": "String", "Default": "stage", "Description": "Lowercase version of the environment name (ie 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" } } } }Aquí hay una plantilla de Cloudformation realmente simple que crea un depósito S3, incluida la definición del nombre del depósito.
AWSTemplateFormatVersion: '2010-09-09' Description: create a single S3 bucket Resources: SampleBucket: Type: AWS::S3::Bucket Properties: BucketName: sample-bucket-0827-ccTambién puede dejar las líneas "Properties: BucketName" desactivadas si desea que AWS nombre el depósito por usted. Entonces se verá como $StackName-SampleBucket-$uniqueIdentifier.
Espero que esto ayude.
Su código tiene el nombre del cubo ya especificado:
"BucketName": { "Fn::Join": [ "-", [ { "Ref": "ProductCode" }, { "Ref": "StackEnvironment" }, "deployment", { "Fn::FindInMap": [ "RegionMap", { "Ref": "AWS::Region" }, "ShortRegion" ] } ] ] },El nombre del cubo es una cadena y, dado que está utilizando 'Fn Join', se combinará con las funciones a las que se está uniendo. "La función intrínseca Fn::Join agrega un conjunto de valores en un solo valor, separados por el delimitador especificado. Si un delimitador es la cadena vacía, el conjunto de valores se concatena sin delimitador". El nombre de su depósito si no cambia los valores predeterminados es: cloudops-stage-deplyment-yourAwsRegion
Si cambia los parámetros predeterminados, tanto cloudops como la etapa se pueden cambiar, la implementación está codificada, su AWSRegion se extraerá de donde se ejecuta la pila y se devolverá en formato corto a través de Mapping.
Para extender la respuesta 'cloudquiz', así es como se vería en formato yaml:
Resources: SomeS3Bucket: Type: AWS::S3::Bucket Properties: BucketName: Fn::Join: ["-", ["yourbucketname", {'Fn::Sub': '${AWS::Region}'}, {'Fn::Sub': '${Stage}'}]]