Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Étape 1 : Téléchargez le AWS CloudFormation modèle
Vous pouvez utiliser des AWS CloudFormation modèles pour configurer et approvisionner des portefeuilles et des produits. Ces modèles sont des fichiers texte qui peuvent être formatés en JSON ou YAML et décrivent les ressources que vous souhaitez mettre en service. Pour plus d'informations, consultez Formats de modèle dans le Guide de l'utilisateur AWS CloudFormation. Vous pouvez utiliser l'AWS CloudFormationéditeur ou un éditeur de texte de votre choix pour créer et enregistrer des modèles. Dans ce didacticiel, nous vous proposons un modèle simple, afin que vous puissiez commencer. Le modèle lance une instance Linux unique configurée pour l'accès SSH.
Note
L'utilisation AWS CloudFormation de modèles nécessite des autorisations spéciales. Avant de commencer, assurez-vous que vous disposez des autorisations appropriées. Pour plus d'informations, consultez les conditions préalables dansBibliothèque de mise en route.
Téléchargement du modèle
L'exemple de modèle fourni pour ce didacticiel est disponible à l'adresse https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.templatedevelopment-environment.template
Présentation du modèle
Le texte de l'exemple de modèle est le suivant :
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "AWS Service Catalog sample template. Creates an Amazon EC2 instance
running the Amazon Linux AMI. The AMI is chosen based on the region
in which the stack is run. This example creates an EC2 security
group for the instance to give you SSH access. **WARNING** This
template creates an Amazon EC2 instance. You will be billed for the
AWS resources used if you create a stack from this template.",
"Parameters" : {
"KeyName": {
"Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.",
"Type": "AWS::EC2::KeyPair::KeyName"
},
"InstanceType" : {
"Description" : "EC2 instance type.",
"Type" : "String",
"Default" : "t2.micro",
"AllowedValues" : [ "t2.micro", "t2.small", "t2.medium", "m3.medium", "m3.large",
"m3.xlarge", "m3.2xlarge" ]
},
"SSHLocation" : {
"Description" : "The IP address range that can SSH to the EC2 instance.",
"Type": "String",
"MinLength": "9",
"MaxLength": "18",
"Default": "0.0.0.0/0",
"AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})",
"ConstraintDescription": "Must be a valid IP CIDR range of the form x.x.x.x/x."
}
},
"Metadata" : {
"AWS::CloudFormation::Interface" : {
"ParameterGroups" : [{
"Label" : {"default": "Instance configuration"},
"Parameters" : ["InstanceType"]
},{
"Label" : {"default": "Security configuration"},
"Parameters" : ["KeyName", "SSHLocation"]
}],
"ParameterLabels" : {
"InstanceType": {"default": "Server size:"},
"KeyName": {"default": "Key pair:"},
"SSHLocation": {"default": "CIDR range:"}
}
}
},
"Mappings" : {
"AWSRegionArch2AMI" : {
"us-east-1" : { "HVM64" : "ami-08842d60" },
"us-west-2" : { "HVM64" : "ami-8786c6b7" },
"us-west-1" : { "HVM64" : "ami-cfa8a18a" },
"eu-west-1" : { "HVM64" : "ami-748e2903" },
"ap-southeast-1" : { "HVM64" : "ami-d6e1c584" },
"ap-northeast-1" : { "HVM64" : "ami-35072834" },
"ap-southeast-2" : { "HVM64" : "ami-fd4724c7" },
"sa-east-1" : { "HVM64" : "ami-956cc688" },
"cn-north-1" : { "HVM64" : "ami-ac57c595" },
"eu-central-1" : { "HVM64" : "ami-b43503a9" }
}
},
"Resources" : {
"EC2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"InstanceType" : { "Ref" : "InstanceType" },
"SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ],
"KeyName" : { "Ref" : "KeyName" },
"ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ] }
}
},
"InstanceSecurityGroup" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "Enable SSH access via port 22",
"SecurityGroupIngress" : [ {
"IpProtocol" : "tcp",
"FromPort" : "22",
"ToPort" : "22",
"CidrIp" : { "Ref" : "SSHLocation"}
} ]
}
}
},
"Outputs" : {
"PublicDNSName" : {
"Description" : "Public DNS name of the new EC2 instance",
"Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicDnsName" ] }
},
"PublicIPAddress" : {
"Description" : "Public IP address of the new EC2 instance",
"Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicIp" ] }
}
}
}
Ressources du modèle
Le modèle déclare les ressources à créer lorsque le produit est lancé. Il se compose des sections suivantes :
-
AWSTemplateFormatVersion(facultatif) — Version du format de AWS modèle utilisée pour créer ce modèle. La dernière version du format du modèle est le 09/09/2010 et est actuellement la seule valeur valide.
-
Description (facultatif) — Description du modèle.
-
Paramètres (facultatif) — Les paramètres que votre utilisateur doit spécifier pour lancer le produit. Pour chaque paramètre, le modèle inclut une description et des contraintes qui doivent être satisfaites par la valeur saisie. Pour plus d'informations sur les contraintes, consultez Utilisation de contraintes AWS Service Catalog.
Le
KeyName
paramètre vous permet de spécifier le nom d'une paire de clés Amazon Elastic Compute Cloud (Amazon EC2) que les utilisateurs finaux doivent fournir lors AWS Service Catalog du lancement de votre produit. Vous allez créer la paire de clés à l'étape suivante. -
Métadonnées (facultatif) : objets fournissant des informations supplémentaires sur le modèle. La clé AWS: : CloudFormation : :Interface définit la manière dont la vue de la console de l'utilisateur final affiche les paramètres. La propriété
ParameterGroups
définit la façon dont les paramètres sont regroupés et les en-têtes pour ces groupes. La propriétéParameterLabels
définit des noms de paramètre conviviaux. Lorsqu'un utilisateur spécifie des paramètres pour lancer un produit basé sur ce modèle, la vue de la console Utilisateur final affiche le paramètre étiquetéServer size:
sous l'en-têteInstance configuration
, et les paramètres étiquetésKey pair:
etCIDR range:
, sous l'en-têteSecurity configuration
. -
Mappages (facultatif) : mappage de clés et de valeurs associées que vous pouvez utiliser pour spécifier des valeurs de paramètres conditionnelles, comme dans une table de recherche. Vous pouvez associer une clé à une valeur correspondante en utilisant la fonction FindInMap intrinsèque Fn : : dans les sections Ressources et Sorties. Le modèle ci-dessus inclut une liste de AWS régions et l'Amazon Machine Image (AMI) correspondant à chacune d'elles. AWS Service Catalogutilise ce mappage pour déterminer l'AMI à utiliser en fonction de la AWS région sélectionnée par l'utilisateur dans leAWS Management Console.
-
Ressources (obligatoire) — Empilez les ressources et leurs propriétés. Vous pouvez faire référence aux ressources dans les sections Ressources et Sorties du modèle. Dans le modèle ci-dessus, nous indiquons une instance EC2 exécutant Amazon Linux et un groupe de sécurité qui autorise l'accès SSH à l'instance. La section Propriétés de la ressource d'instance EC2 utilise les informations saisies par l'utilisateur pour configurer le type d'instance et un nom de clé pour l'accès SSH.
AWS CloudFormationutilise la AWS région actuelle pour sélectionner l'ID AMI parmi les mappages définis précédemment et lui assigne un groupe de sécurité. Le groupe de sécurité est configuré pour autoriser l'accès entrant sur le port 22 à partir de la plage d'adresses IP CIDR que spécifie l'utilisateur.
-
Sorties (facultatif) : texte indiquant à l'utilisateur que le lancement du produit est terminé. Le modèle fourni obtient le nom DNS public de l'instance lancée et l'affiche pour l'utilisateur. L'utilisateur a besoin du nom DNS pour se connecter à l'instance à l'aide de SSH.
Pour plus d'informations sur la page d'anatomie du modèle, reportez-vous à la section Référence du modèle dans le guide de AWS CloudFormation l'utilisateur.