View a markdown version of this page

CloudFormation Serveur de langue - AWS CloudFormation

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.

CloudFormation Serveur de langue

Le serveur de AWS CloudFormation langues vous permet de rédiger CloudFormation des modèles dans un éditeur. Au fur et à mesure que vous tapez, il suggère des types de ressources et des propriétés, affiche la documentation, détecte les erreurs, vous permet d'accéder aux définitions et propose des solutions à certains problèmes. Il utilise le protocole LSP (Language Server Protocol), qui permet au serveur de travailler avec différents éditeurs. Le démarrage et l'utilisation du serveur de langue pour ces fonctionnalités de création locales ne nécessitent pas d'informations d' AWS identification Compte AWS ou.

Les intégrations du AWS Toolkit utilisent également le serveur linguistique pour les flux de travail en ligne qui appellent AWS des services. Ces flux de travail peuvent parcourir les ressources et les piles. Ils peuvent également exécuter une validation des modèles côté service, déployer des modèles, afficher les différences entre les ensembles de modifications et surveiller les événements liés à la pile. Ces flux de travail en ligne sont les seules fonctionnalités qui nécessitent des informations d' AWS identification actives Compte AWS et valides.

IDE s'intégrant au serveur de CloudFormation langues

AWS fournit une intégration prête à l'emploi avec le serveur de CloudFormation langue via le AWS Toolkit pour les IDE suivants :

Les IDE suivants prennent également en charge le serveur de CloudFormation langue :

Pour Visual Studio Code et les JetBrains IDE, installez le AWS Toolkit. La boîte à outils inclut et démarre le serveur de langue, vous n'avez donc pas besoin de télécharger le serveur séparément.

Pour un autre éditeur prenant en charge le LSP, téléchargez le fichier pour votre ordinateur à partir de la dernière version GitHub, extrayez-le et configurez votre éditeur pour exécuter la commande suivante :

node /path/to/install-location/cfn-lsp-server-standalone.js --stdio

Pour les Node.js versions prises en charge, les téléchargements disponibles, la vérification des fichiers et des exemples de configuration pour différents éditeurs, consultez le guide d'installation autonome.

Prise en main

Les étapes suivantes montrent comment utiliser le serveur de langue via le AWS Toolkit pour Visual Studio Code et les JetBrains IDE. Pour un autre éditeur, suivez son exemple de configuration dans le guide d'installation autonome.

Conditions préalables

Avant de commencer, assurez-vous que :

  • Vous utilisez un IDE compatible sur macOSWindows, ouLinux.

  • Pour Visual Studio Code ou un JetBrains IDE, installez ou mettez à jour le AWS Toolkit.

  • Pour un autre éditeur, installez une Node.js version prise en charge et téléchargez le fichier Language Server pour votre ordinateur. Le guide d'installation autonome répertorie les versions et les fichiers pris en charge.

Vous n'avez pas besoin d' AWS informations d'identification Compte AWS ou pour démarrer le serveur de langues ou utiliser ses fonctionnalités locales de création et de vérification des modèles. Configurez des AWS informations d'identification valides dans le Toolkit uniquement lorsque vous utilisez des flux de travail en ligne qui parcourent des ressources ou des piles, appellent le CloudFormation service ou déploient un modèle.

Étape 1 : installez ou mettez à niveau le AWS Boîte à outils

Installez ou mettez à jour la dernière version du AWS Toolkit à partir de l'extension ou du gestionnaire de plugins de votre IDE, puis redémarrez votre IDE.

Après l'installation, le AWS Toolkit active automatiquement la prise en charge CloudFormation de l'IDE. Lorsque vous installez ou mettez à niveau le AWS Toolkit pour la première fois avec le serveur de CloudFormation langue, vous êtes invité AWS à autoriser la collecte de données d'utilisation anonymes. Ces données contribuent à AWS améliorer le serveur CloudFormation linguistique et à améliorer l'expérience de création. Aucune information sensible n'est collectée et AWS n'enregistre ni ne stocke le contenu des modèles, les configurations des ressources ou aucune donnée client identifiable. Vous pouvez modifier vos préférences de télémétrie à tout moment depuis les paramètres de l'IDE. Redémarrez l'IDE pour que les modifications soient prises en compte. Les données d'utilisation collectées se concentrent uniquement sur les interactions entre les fonctionnalités et les mesures de performance. Ces informations permettent AWS d'identifier et de hiérarchiser les améliorations, telles qu'une validation plus rapide, une saisie semi-automatique améliorée et de meilleurs diagnostics d'erreurs.

Étape 2 : Accès CloudFormation dans le AWS Boîte à outils

Après avoir installé le AWS Toolkit, ouvrez le CloudFormation panneau dans votre IDE. Dans VS Code, ouvrez le panneau AWS Toolkit depuis la barre d'activité et choisissez CLOUDFORMATION. Dans les JetBrains IDE, ouvrez la fenêtre de l'outil AWS Toolkit dans la barre latérale et sélectionnez l'CloudFormationonglet.

Le CloudFormation panneau contient les sections suivantes :

  • Région  : affiche le courant Région AWS. Dans VS Code, vous pouvez le modifier en sélectionnant le nom de la région ou en utilisant la commande AWS CloudFormation : Select Region dans la palette de commandes. Dans les JetBrains IDE, la région est configurée via les paramètres de connexion du AWS Toolkit.

  • Piles  : affiche une liste paginée des CloudFormation piles de votre compte. Développez une pile pour afficher son nœud Change Sets, qui répertorie les ensembles de modifications associés à cette pile. Utilisez l'action Afficher les détails de la pile pour ouvrir la vue détaillée de la pile, qui affiche l'aperçu de la pile, les événements, les sorties et les ressources.

  • Ressources  : Une fois que vous avez ajouté un type de ressource, le panneau affiche les AWS ressources de ce type dans votre compte. Vous pouvez les afficher, les actualiser, les copier ou les importer dans votre modèle.

Dans les JetBrains IDE, la barre d'outils située au-dessus de l'arborescence permet d'accéder rapidement aux actions courantes, notamment Valider et déployer , Réexécuter la validation et le déploiement, Ajouter un type de ressource et Actualiser. Les actions sont également disponibles via les menus contextuels du bouton droit de la souris sur les nœuds de l'arborescence.

Étape 3 : Validez, testez et affinez votre modèle

Lorsque vous rédigez votre CloudFormation modèle, le serveur de CloudFormation langue s'exécute en arrière-plan et fournit une assistance à la création locale sans AWS informations d'identification :

  • Complétion du code : suggère des types de ressources, des paramètres et des propriétés en fonction de CloudFormation schémas.

  • Extraire vers le paramètre : lorsque votre curseur se trouve sur une valeur littérale dans un modèle (par exemple, une chaîne similairet2.micro), l'EDI propose une action de refactorisation pour extraire la valeur dans la Parameters section et remplacer le littéral par un !Ref vers le nouveau paramètre. Si la même valeur littérale apparaît à plusieurs endroits, vous pouvez choisir d'extraire toutes les occurrences en une seule fois.

La boîte à outils fournit également un flux de travail en ligne pour ajouter AWS des ressources existantes à votre modèle. Ce flux de travail nécessite des AWS informations d'identification valides et utilise le API de commande du Cloud AWS (CCAPI) pour récupérer la configuration et les propriétés en temps réel d'une ressource, ce qui vous permet de cloner ou de réutiliser l'infrastructure existante dans votre modèle.

Pour ajouter des ressources à votre modèle

  • Ajouter un type de ressource  : dans le CloudFormation panneau AWS Boîte à outils, sous Ressources, ajoutez un type de ressource à parcourir. Dans VS Code, cliquez sur l'icône Ajouter + ou utilisez la commande AWS CloudFormation : Ajouter des types de ressources dans la palette de commandes. Dans JetBrains, cliquez sur le bouton Ajouter un type de ressource dans la barre d'outils ou cliquez avec le bouton droit sur le nœud Ressources.

  • Rechercher un type de ressource  : Dans la boîte de dialogue de recherche, saisissez le type de AWS ressource que vous souhaitez ajouter. Exemple :

    • AWS::S3::Bucket

    • AWS::Lambda::Function

  • Parcourir les ressources  : dans la section Ressources, une liste paginée des AWS ressources détectées dans votre compte s'affiche. Si vous disposez de nombreuses ressources, seule la première page s'affiche. Utilisez les commandes de navigation pour parcourir des pages supplémentaires et afficher toutes les ressources disponibles.

  • Choisissez la ressource que vous souhaitez inclure dans votre modèle.

  • Vous pouvez insérer une ressource dans votre modèle de deux manières, en fonction de votre objectif :

    • Cloner une ressource existante  : créez une nouvelle ressource dans votre modèle en utilisant la configuration et les propriétés dynamiques d'une AWS ressource existante.

    • Importer une ressource existante  : insérez la ressource réelle dans votre pile en l'ajoutant à votre modèle en utilisant son état actif.

Astuces

  • Vous pouvez actualiser la section Ressources à tout moment pour consulter la liste la plus récente des ressources disponibles dans votre compte ou votre région.

  • Si vous importez des ressources, n'ajoutez pas de ressource qui appartient déjà à une CloudFormation pile existante dans le même compte.

  • Pour vérifier si une ressource est déjà gérée par CloudFormation, utilisez l'action d'information à côté de la ressource. Dans VS Code, cliquez sur l'icône i. Dans les JetBrains IDE, cliquez avec le bouton droit sur la ressource et choisissez Get Stack Management Info.

Dans VS Code, exécutez la commande AWS CloudFormation : Ajouter des ressources associées par type depuis la palette de commandes. Sélectionnez un type de ressource parmi ceux déjà définis dans votre modèle. L'EDI répertorie les types de ressources auxquels le type sélectionné peut faire référence par le biais de ses propriétés. Par exemple, si vous sélectionnez unAWS::EC2::Instance, l'EDI peut suggérer AWS::EC2::SecurityGroup ouAWS::EC2::Subnet. Sélectionnez un ou plusieurs types de ressources associés, puis choisissez de créer de nouvelles définitions de ressources ou d'importer des ressources existantes. Cette fonctionnalité n'est actuellement pas prise en charge dans les JetBrains IDE.

Validation statique

Le serveur de CloudFormation langues fournit une validation statique intégrée alimentée par CloudFormation Linter etCloudFormation Guard. Ces contrôles sont exécutés localement dans les coulisses et ne nécessitent pas AWS d'informations d'identification. Ils vous aident à identifier les erreurs de syntaxe, les lacunes de conformité et les problèmes liés aux meilleures pratiques avant le déploiement.

Présentation de la validation statique

Vous verrez deux types de validations statiques en temps réel dans l'EDI :

  • CloudFormation Linter (cfn-lint) : valide votre modèle par rapport aux spécifications CloudFormation des ressources et aux règles du schéma.

  • Guard (cfn-guard) : valide votre modèle par rapport aux règles de conformité et aux packs de politiques organisationnels.

CloudFormation Linter (cfn-lint)

Le CloudFormation Linter est intégré à l'IDE pour vérifier automatiquement la syntaxe et la structure de votre modèle au fur et à mesure que vous tapez.

  • Validation du schéma  : détecte les erreurs de syntaxe et de schéma pour garantir la conformité de vos modèles au schéma CloudFormation des ressources.

  • Surlignage des erreurs  : affiche des marqueurs en ligne sous les problèmes, représentant des bloqueurs de déploiement ou des avertissements.

  • Aide au survol  : lorsque vous passez la souris sur une erreur, l'EDI affiche le message de diagnostic associé à ce problème. Si une solution rapide est disponible, elle est également proposée.

Intégration de Guard

Guard valide vos modèles par rapport à des ensembles de règles qui définissent les politiques de conformité et de sécurité. L'IDE exécute les validations Guard en temps réel via le serveur de CloudFormation langue, ce qui vous permet de recevoir des commentaires immédiats pendant que vous créez des modèles.

  • Packs de règles par défaut  : l'IDE inclut un ensemble préenregistré de règles Guard axées sur les meilleures pratiques fondamentales en matière de sécurité des ressources et d'hygiène de la configuration. Pour en savoir plus, consultez le registre des règles de garde.

  • Ajouter des packs de règles  : pour ajouter ou modifier des ensembles de règles, ouvrez les paramètres de votre IDE et accédez à la section Configuration de Guard pour sélectionner ou télécharger des packs de règles Guard supplémentaires.

Conseils  : comprendre les indicateurs de diagnostic

  • Indicateurs bleus : conseils de bonnes pratiques ou recommandations d'optimisation.

  • Indicateurs jaunes : avertissements concernant des problèmes non bloquants (par exemple, des balises ou des paramètres manquants).

  • Indicateurs rouges : bloqueurs de déploiement tels que des noms de propriétés non valides, des champs obligatoires manquants ou des incohérences de schéma.

Étape 4 : Naviguez dans le modèle

L'EDI fournit une vue hiérarchique structurée de votre CloudFormation modèle, organisée en sections telles queParameters,Resources, et OutputsMappings, affichant chaque type de ressource et chaque identifiant logique. Cela permet de localiser et d'accéder rapidement à des ressources ou à des paramètres spécifiques dans des modèles volumineux. Dans VS Code, le panneau Plan de la barre latérale de l'Explorateur affiche cette structure. Dans les JetBrains IDE, ouvrez la fenêtre de l'outil Structure pour afficher la structure du modèle pour le fichier actuellement ouvert.

Vous pouvez utiliser Go to Definition pour les fonctions intrinsèques telles que GetAtt etRef, ce qui vous permet d'accéder directement à la ressource ou au paramètre référencé dans votre modèle. Cela vous permet de suivre les dépendances, de comprendre les relations entre les ressources et d'apporter des modifications plus efficacement.

Étape 5 : Valider et déployer

Validate and Deploy est un flux de travail en ligne qui appelle le CloudFormation service et nécessite des AWS informations d'identification valides. Lorsque vous êtes prêt à déployer votre modèle, utilisez cette fonctionnalité pour créer un ensemble de modifications. L'EDI valide votre modèle et, si aucune erreur de blocage n'est détectée, il crée un ensemble de modifications tenant compte de la dérive. L'EDI affiche ensuite une vue diff afin que vous puissiez passer en revue toutes les modifications proposées avant d'exécuter l'ensemble de modifications.

Dans VS Code, ouvrez la palette de commandes et exécutez AWS CloudFormation : Valider et déployer. La palette de commandes vous guide pas à pas dans la sélection d'un modèle, d'un nom de pile, de paramètres, de fonctionnalités et d'autres options de déploiement. Dans les JetBrains IDE, utilisez le bouton Valider et déployer de la barre d'outils, cliquez avec le bouton droit sur un fichier modèle dans l'éditeur ou cliquez avec le bouton droit sur une pile dans l'arborescence. JetBrains présente une boîte de dialogue d'assistant dans laquelle vous configurez toutes les options de déploiement, notamment la sélection du modèle, le nom de la pile, les paramètres, les fonctionnalités, les balises et les options avancées.

Comment fonctionne la validation

L'IDE effectue automatiquement un contrôle de validation avant le déploiement et valide votre modèle en fonction des causes de défaillance courantes, notamment :

  • Syntaxe de propriété non valide ou incohérences de schéma : ces problèmes sont généralement détectés cfn-lint lors de la création, mais si vous procédez au déploiement sans les résoudre, la validation au moment CloudFormation du déploiement fait apparaître les mêmes erreurs avant la création ou la mise à jour de la pile.

  • Le nom de la ressource est en conflit avec les ressources existantes de votre compte.

  • Service-specific des contraintes, telles que des conflits de noms de compartiment S3 ou un chiffrement manquant.

Si la validation détecte des erreurs, l'EDI met en évidence les problèmes directement dans votre modèle et répertorie les erreurs dans le panneau de diagnostic. Chaque problème inclut la propriété ou la ressource spécifique à l'origine de la panne, ainsi qu'une solution suggérée. S'il n'y a pas d'erreur de blocage, vous pouvez passer à la phase de déploiement.

Si des avertissements sont détectés (problèmes non bloquants), une boîte de dialogue apparaît vous permettant de poursuivre le déploiement ou d'annuler et d'apporter des corrections.

L'IDE ouvre un ensemble de modifications tenant compte de la dérive qui affiche les différences entre votre modèle actuel et la configuration de pile déployée. Cela vous permet de vérifier, de confirmer ou d'annuler l'ensemble de modifications avant son exécution. L'annulation du déploiement supprime l'ensemble de modifications.

Drift-aware les ensembles de modifications améliorent le processus de CloudFormation déploiement en vous permettant de gérer la dérive de la pile en toute sécurité. La dérive de pile se produit lorsque l'état réel de vos ressources diffère de ce qui est défini dans votre CloudFormation modèle, souvent en raison de modifications manuelles apportées via la Console de gestion AWS CLI ou le SDK. CloudFormation les ensembles de modifications sensibles à la dérive comparent la configuration de votre pile traitée à l'état réel des ressources, et l'IDE met en évidence ces différences afin que vous puissiez remettre les ressources en conformité avant le déploiement.

Afficher les événements de la pile

Lorsque le déploiement commence, vous pouvez suivre la progression en temps réel depuis le CloudFormation panneau. Sous Stack Events, vous pouvez voir la liste des opérations effectuées pendant le déploiement. Chaque événement comprend des informations telles que :

  • Horodatage  : heure à laquelle l'événement s'est produit

  • Ressource  : AWS ressource spécifique en cours de création, de mise à jour ou de suppression

  • État  : état actuel de l'opération (par exempleCREATE_IN_PROGRESS,UPDATE_COMPLETE, ouROLLBACK_IN_PROGRESS)

  • Motif  : contexte ou messages d'erreur supplémentaires, le cas échéant

Vous pouvez également consulter les ressources et les sorties de la pile à partir de ce panneau. La vue Stack Events vous permet de suivre la progression du déploiement, d'identifier les problèmes potentiels et de confirmer que votre stack est terminé avec succès.

Initialisation d'un CloudFormation projet dans l'IDE (VS Code uniquement)

L'initialisation d'un CloudFormation projet dans l'EDI vous permet de configurer un espace de travail structuré avec les dossiers et la configuration d'environnement appropriés pour la validation et le déploiement côté service. Ces flux de travail en ligne nécessitent des AWS informations d'identification, mais pas les fonctionnalités de création locale et de validation statique du serveur linguistique. Vous pouvez initialiser un nouveau CloudFormation projet directement depuis l'EDI pour créer cette configuration recommandée. Cette fonctionnalité est actuellement disponible uniquement dans VS Code et n'est pas prise en charge dans les JetBrains IDE.

Pour initialiser un CloudFormation projet :

  • Ouvrez la palette de commandes

    • Dans VS Code, ouvrez la palette de commandes (Ctrl+Shift+Pou Cmd+Shift+P activez cette optionmacOS).

    • Choisissez AWS CloudFormation : CFN Init : Initialiser le projet.

  • Choisissez un répertoire de projet

    • Par défaut, l'EDI utilise votre répertoire de travail actuel.

    • Vous pouvez modifier ce chemin vers n'importe quel dossier dans lequel vous souhaitez stocker vos CloudFormation modèles.

  • Sélectionnez votre profil AWS d'identification

    • Vous êtes invité à choisir un profil AWS d'identification. Le profil sélectionné est utilisé pour la détection de l'environnement, la validation côté service et le déploiement.

  • Configurez votre environnement

    • Vous êtes invité à créer ou à sélectionner un environnement.

    • Les environnements définissent où et comment vos modèles sont déployés ou validés (par exemple, développement, version bêta ou production). Vous pouvez utiliser AWS CloudFormation : CFN Init : Add Environment pour sélectionner ou modifier votre environnement.

    • Vous pouvez utiliser AWS CloudFormation : CFN Init : Remove Environment pour supprimer l'environnement que vous avez sélectionné.

  • (Facultatif) Importer des fichiers de paramètres

    • Si vous disposez déjà de fichiers de paramètres, l'EDI vous permet de les importer lors de l'initialisation.

    • L'IDE détecte automatiquement les fichiers compatibles et les relie à votre projet pour les utiliser dans la validation et le déploiement des modèles.

  • Nommez et finalisez le projet

    • Entrez un nom de projet, tel que l'environnement bêta, et terminez la configuration.

    • L'IDE crée la structure initiale du projet et le fichier de configuration pour vous.

Vous pouvez exécuter des validations, prévisualiser des déploiements ou passer d'un environnement à un autre directement depuis l'EDI.

Open source

Le serveur de CloudFormation langues est open source sous Apache-2.0 licence, offrant aux clients une transparence totale sur la manière dont les diagnostics des modèles, la validation des schémas et l'analyse statique sont effectués. Cela réduit les problèmes de sécurité et de conformité pour les clients qui ont besoin d'une visibilité au niveau de la source avant d'adopter des outils.

La base de code est accessible au public sur GitHub : https://github.com/aws-cloudformation/cloudformation-languageserver/.

Vous avez besoin d’aide ?

Essayez la CloudFormation communauté AWS re:Post.