Bonnes pratiques CloudFormation

VérifiéSûr

Optimisation de templates CloudFormation, piles imbriquées, détection de dérive et modèles prêts pour la production.

Spar Skills Guide Bot
DevOpsIntermédiaire
23/07/2026
Claude CodeCursorWindsurfCopilotCodex
#aws-cloudformation#infrastructure-as-code#aws#iac-templates#nested-stacks

Recommandé pour

Synthèse automatique

Guide la rédaction, la revue et l'optimisation de templates AWS CloudFormation (YAML/JSON), y compris les stacks imbriquées, les références croisées et la détection de dérive.

Points forts

  • Règles concrètes et actionnables : YAML plutôt que JSON, paramétrage par environnement, Conditions multi-environnements, !Sub préféré à !Join
  • Inclut les garde-fous de production : DeletionPolicy/UpdateReplacePolicy sur les ressources avec état et exports pour les références croisées
  • Fournit un cas de dépannage précis sur le blocage UPDATE_ROLLBACK_FAILED avec continue-update-rollback
  • Intègre la validation et le linting (validate-template, cfn-lint, cfn-nag) dans les pipelines CI

Limites

  • Ne couvre ni CDK ni Terraform, et le skill indique lui-même de ne pas l'utiliser dans ce cas
  • Pas de conseils sur la migration d'infrastructure existante ni sur les coûts détaillés malgré la mention d'optimisation
  • Les exemples restent minimaux (un seul template VPC) pour des architectures imbriquées complexes
Quand l'utiliser

À utiliser lorsqu'il faut écrire ou relire un template CloudFormation brut, structurer des stacks imbriquées ou diagnostiquer un échec de stack ou une dérive.

Quand l'éviter

À éviter si l'équipe utilise CDK ou Terraform, ou si la tâche concerne du code applicatif plutôt que de l'infrastructure.

Analyse de sécurité

Sûr
Score qualité86/100

The skill is purely instructional and contains no executable commands, scripts, credential handling, network calls, or destructive operations. It references AWS CLI validation and linting tools as best practices, but does not instruct the agent to run them or modify infrastructure automatically.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Review a production template
Review this CloudFormation YAML template for production readiness: check DeletionPolicy on our RDS and S3 resources, flag hardcoded ARNs, and tell me where I should use !Sub instead of !Join.
Split a monolithic stack
Our single CloudFormation template has 60 resources including VPC, ECS service, and RDS. Propose a nested stack or cross-stack export architecture and show the Outputs/Export wiring.
Fix a stuck rollback
My CloudFormation stack is stuck in UPDATE_ROLLBACK_FAILED after an RDS update. Walk me through continue-update-rollback with --resources-to-skip and how to fix the root cause.

name: cloudformation-best-practices description: "CloudFormation template optimization, nested stacks, drift detection, and production-ready patterns. Use when writing or reviewing CF templates." risk: unknown source: community date_added: "2026-02-27"

You are an expert in AWS CloudFormation specializing in template optimization, stack architecture, and production-grade infrastructure deployment.

Use this skill when

  • Writing or reviewing CloudFormation templates (YAML/JSON)
  • Optimizing existing templates for maintainability and cost
  • Designing nested or cross-stack architectures
  • Troubleshooting stack creation/update failures and drift

Do not use this skill when

  • The user prefers CDK or Terraform over raw CloudFormation
  • The task is application code, not infrastructure

Instructions

  1. Use YAML over JSON for readability.
  2. Parameterize environment-specific values; use Mappings for static lookups.
  3. Apply DeletionPolicy: Retain on stateful resources (RDS, S3, DynamoDB).
  4. Use Conditions to support multi-environment templates.
  5. Validate templates with aws cloudformation validate-template before deployment.
  6. Prefer !Sub over !Join for string interpolation.

Examples

Example 1: Parameterized VPC Template

AWSTemplateFormatVersion: "2010-09-09"
Description: Production VPC with public and private subnets

Parameters:
  Environment:
    Type: String
    AllowedValues: [dev, staging, prod]
  VpcCidr:
    Type: String
    Default: "10.0.0.0/16"

Conditions:
  IsProd: !Equals [!Ref Environment, prod]

Resources:
  VPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: !Ref VpcCidr
      EnableDnsSupport: true
      EnableDnsHostnames: true
      Tags:
        - Key: Name
          Value: !Sub "${Environment}-vpc"

Outputs:
  VpcId:
    Value: !Ref VPC
    Export:
      Name: !Sub "${Environment}-VpcId"

Best Practices

  • ✅ Do: Use Outputs with Export for cross-stack references
  • ✅ Do: Add DeletionPolicy and UpdateReplacePolicy on stateful resources
  • ✅ Do: Use cfn-lint and cfn-nag in CI pipelines
  • ❌ Don't: Hardcode ARNs or account IDs — use !Sub with pseudo parameters
  • ❌ Don't: Put all resources in a single monolithic template

Troubleshooting

Problem: Stack stuck in UPDATE_ROLLBACK_FAILED Solution: Use continue-update-rollback with --resources-to-skip for the failing resource, then fix the root cause.

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/cloudformation-best-practices-mrx3xymc' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/cloudformation-best-practices-mrx3xymc/download' --output '.skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md.part' && mv '.skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md.part' '.skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md' && test -s '.skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/cloudformation-best-practices' && cp -R '.skill-downloads/cloudformation-best-practices-mrx3xymc' '.claude/skills/cloudformation-best-practices'

Cursor
test -f '.skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md' && test -s '.skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/cloudformation-best-practices' && cp -R '.skill-downloads/cloudformation-best-practices-mrx3xymc' '.cursor/skills/cloudformation-best-practices'

Codex
test -f '.skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md' && test -s '.skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/cloudformation-best-practices' && cp -R '.skill-downloads/cloudformation-best-practices-mrx3xymc' '.agents/skills/cloudformation-best-practices'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/cloudformation-best-practices-mrx3xymc'

openskills read 'cloudformation-best-practices-mrx3xymc'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/cloudformation-best-practices-mrx3xymc/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires