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.
Ressources
La Resources
section requise déclare les AWS ressources que vous souhaitez inclure dans la pile, telles qu'une instance Amazon EC2 ou un compartiment Amazon S3.
Syntaxe
La section Resources
se compose du nom de clé Resources
. Le pseudo-modèle suivant illustre la section Resources
:
JSON
"Resources" : { "
Logical ID
" : { "Type" : "Resource type
", "Properties" : {Set of properties
} } }
YAML
Resources:
Logical ID
: Type:Resource type
Properties:Set of properties
Champs de ressources
- ID logique
-
L'ID logique doit être alphanumérique (A-Za-z0-9) et ne doit correspondre à aucun autre ID logique dans le modèle. Utilisez le nom logique pour faire référence à la ressource dans d'autres parties du modèle. Par exemple, si vous souhaitez mapper un volume Amazon Elastic Block Store sur une instance Amazon EC2, vous référencez les ID logiques pour associer les magasins de blocs à l'instance.
En plus de l'ID logique, certaines ressources ont également un ID physique, qui constitue le nom réel affecté à cette ressource (par exemple, un ID d'instance EC2 ou un nom de compartiment S3). Utilisez les identifiants physiques pour identifier les ressources en dehors des AWS CloudFormation modèles, mais uniquement après leur création. Par exemple, supposons que vous attribuez l'ID logique
MyEC2Instance
à une ressource d'instance EC2. Lors de la AWS CloudFormation création de l'instance, il génère et attribue AWS CloudFormation automatiquement un identifiant physique (tel quei-28f9ba55
) à l'instance. Vous pouvez utiliser cet ID physique pour identifier l'instance et afficher ses propriétés (telles que le nom DNS) via la console Amazon EC2. Pour les ressources qui prennent en charge des noms personnalisés, vous pouvez assigner vos propres noms (ID physiques) afin de faciliter l'identification des ressources. Par exemple, vous pouvez attribuer le nomMyPerformanceLogs
à un compartiment S3 qui stocke des journaux. Pour plus d’informations, consultez Type de nom. - Type de ressource
-
Le type de ressource identifie le type de ressource que vous déclarez. Par exemple,
AWS::EC2::Instance
déclare une instance EC2. Pour afficher la liste de tous les types de ressources, consultez AWS référence aux types de ressources et de propriétés. - Propriétés de ressource
-
Les propriétés de ressource sont des options supplémentaires que vous pouvez spécifier pour une ressource. Par exemple, pour chaque instance EC2, vous devez spécifier un ID d'Amazon Machine Image (AMI) pour cette instance. Vous déclarez l'ID d'AMI comme propriété de l'instance, comme l'illustre l'exemple suivant :
Exemple JSON
"Resources" : { "MyEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-0ff8a91507f77f867" } } }
Exemple YAML
Resources: MyEC2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: "ami-0ff8a91507f77f867"
Si une ressource ne nécessite pas la déclaration de propriétés, vous pouvez ignorer la section correspondante de cette ressource.
Les valeurs de propriété peuvent être des chaînes littérales, des listes de chaînes, des valeurs booléennes, des références de paramètres, des pseudo-références ou la valeur renvoyée par une fonction. L'exemple suivant présente comment déclarer les types de valeurs de propriété :
Exemple JSON
"Properties" : { "String" : "one-string-value", "Number" : 123, "LiteralList" : [ "first-value", "second-value" ], "Boolean" : true, "ReferenceForOneValue" : { "Ref" : "MyLogicalResourceName" } , "FunctionResultWithFunctionParams" : { "Fn::Join" : [ "%", [ "Key=", { "Ref" : "MyParameter" } ] ] } }
Exemple YAML
Properties: String: OneStringValue String: A longer string value Number: 123 LiteralList: - "[first]-string-value with a special characters" - "[second]-string-value with a special characters" Boolean: true ReferenceForOneValue: Ref: MyLogicalResourceName ReferenceForOneValueShortCut: !Ref MyLogicalResourceName FunctionResultWithFunctionParams: !Sub | Key=%${MyParameter}
Vous pouvez créer une ressource de manière conditionnelle en y associant une condition. Vous devez définir la condition dans la section Conditions
du modèle.
Exemples
L'exemple suivant présente une déclaration de ressource. Il définit deux ressources. La ressource MyInstance
inclue la ressource MyQueue
dans le cadre de sa propriété UserData
:
JSON
"Resources" : { "MyInstance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "UserData" : { "Fn::Base64" : { "Fn::Join" : [ "", [ "Queue=", { "Ref" : "MyQueue" } ] ] } }, "AvailabilityZone" : "us-east-1a", "ImageId" : "ami-0ff8a91507f77f867" } }, "MyQueue" : { "Type" : "AWS::SQS::Queue", "Properties" : { } } }
YAML
Resources: MyInstance: Type: "AWS::EC2::Instance" Properties: UserData: "Fn::Base64": !Sub | Queue=${MyQueue} AvailabilityZone: "us-east-1a" ImageId: "ami-0ff8a91507f77f867" MyQueue: Type: "AWS::SQS::Queue" Properties: {}