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.
Résoudre l'écart avec une opération d'importation
Dans certains cas, la configuration d'une ressource peut s'écarter de sa configuration prévue ; vous pouvez alors souhaiter accepter la nouvelle configuration comme configuration prévue. Dans la plupart des cas, vous pouvez résoudre les résultats de l'écart en mettant à jour la définition de ressource dans le modèle de pile avec une nouvelle configuration, puis effectuer une mise à jour de pile. Toutefois, si la nouvelle configuration met à jour une propriété de ressource qui nécessite un remplacement, la ressource sera recréée lors de la mise à jour de la pile. Si vous souhaitez conserver la ressource existante, vous pouvez utiliser la fonction d'importation de ressource pour mettre à jour la ressource et résoudre les résultats de l'écart sans provoquer le remplacement de la ressource.
La résolution de l'écart d'une ressource par le biais d'une opération d'importation se compose des étapes de base suivantes :
-
Ajoutez un attribut DeletionPolicy, défini sur Retain, à la ressource. Cela garantit que la ressource existante est conservée et non supprimée lorsqu'elle est retirée de la pile.
-
Retirez la ressource du modèle et exécutez une opération de mise à jour de la pile. La ressource est retirée de la pile, mais n'est pas supprimée.
-
Décrivez l'état réel de la ressource dans le modèle de pile, puis réimportez la ressource existante dans la pile. La ressource est à nouveau ajoutée dans la pile et les différences de propriété qui causaient les résultats de l'écart sont résolues.
Pour plus d’informations sur l’importation de ressources, voir Importation manuelle de ressources AWS dans une pile CloudFormation. Pour obtenir la liste des ressources qui prennent en charge l’importation, consultez Prise en charge des types de ressources.
Dans cet exemple, nous utilisons le modèle suivant, nommé templateToImport.json.
Dans cet exemple, supposons qu'un utilisateur ait modifié une ressource en dehors de CloudFormation. Après avoir exécuté la détection de l'écart, nous avons découvert que GamesTable a été modifié BillingMode en PAY_PER_REQUEST. Pour plus d’informations sur la détection d’écart, voir Détectez les modifications de configuration non gérées apportées aux piles et aux ressources grâce à la détection des écarts.
Notre pile est maintenant obsolète, nos ressources sont actives, mais nous voulons préserver la configuration de ressources prévue. Pour ce faire, nous pouvons résoudre l'écart via une opération d'importation, sans interrompre les services.
Résoudre l'écart avec une opération d'importation à l'aide de la console CloudFormation
Étape 1. Mettre à jour la pile avec la politique de suppression Retain
Pour mettre à jour la pile à l'aide d'un attribut DeletionPolicy avec l'option Retain
Connectez-vous à la AWS Management Console et ouvrez la console CloudFormation à l’adresse https://console.aws.amazon.com/cloudformation
. -
Sur la page Stacks (Piles) choisissez la pile qui a fait l'objet de l'écart.
-
Choisissez Update (Mettre à jour), puis Replace current template (Remplacer le modèle actuel) dans le volet des détails de la pile.
-
Dans la page Specify template (Spécifier un modèle), indiquez votre modèle mis à jour contenant l'attribut
DeletionPolicyavec l'optionRetainvia une des méthodes suivantes :-
Choisissez Amazon S3 URL (URL Amazon S3), puis spécifiez l'URL de votre modèle dans la zone de texte.
-
Choisissez Upload a template file (Charger un fichier de modèle), puis recherchez votre modèle.
Ensuite, choisissez Suivant.
-
-
Vérifiez la page Specify stack details (Spécifier les détails de la pile) et choisissez Next (Suivant).
-
Vérifiez la page Configure stack options (Configurer les options de la pile) et choisissez Next (Suivant).
-
Sur la page Review
nom_pile(Passer en revue nom_pile), choisissez Update stack (Mettre à jour la pile).
Résultats : Sur la page Events (Événements) de votre pile, le statut est UPDATE_COMPLETE.
Pour résoudre l'écart à travers une opération d'importation sans interrompre les services, spécifiez un attribut DeletionPolicy Retain pour les ressources que vous souhaitez retirer de votre pile. Dans l'exemple suivant, nous avons ajouté à la ressource GamesTable un attribut DeletionPolicy, défini sur Retain.
Étape 2. Retirer les ressources présentant des écarts, les paramètres associés et les sorties
Pour retirer les ressources présentant des écarts, les paramètres associés et les sorties
-
Choisissez Update (Mettre à jour), puis Replace current template (Remplacer le modèle actuel) dans le volet des détails de la pile.
-
Dans la page Specify template (Spécifier un modèle), indiquez à votre modèle mis à jour ses ressources, ses paramètres associés et ses sorties supprimées du modèle de pile à l'aide de l'une des méthodes suivantes :
-
Choisissez Amazon S3 URL (URL Amazon S3), puis spécifiez l'URL de votre modèle dans la zone de texte.
-
Choisissez Upload a template file (Charger un fichier de modèle), puis recherchez votre modèle.
Ensuite, choisissez Suivant.
-
-
Vérifiez la page Specify stack details (Spécifier les détails de la pile) et choisissez Next (Suivant).
-
Vérifiez la page Configure stack options (Configurer les options de la pile) et choisissez Next (Suivant).
-
Sur la page Review
nom_pile(Passer en revue nom_pile), choisissez Update stack (Mettre à jour la pile).
Résultats : L'ID logique GamesTable a un statut DELETE_SKIPPED sur la page Events (Événements) de votre pile.
Attendez que CloudFormation termine l'opération de mise à jour de la pile. Une fois l'opération de mise à jour de la pile terminée, supprimez la ressource, les paramètres associés et les sorties du modèle de pile. Ensuite, importez le modèle mis à jour. Lorsque ces actions ont été effectuées, l'exemple de modèle ressemble à ce qui suit.
Étape 3. Mettre à jour le modèle afin qu'il corresponde à l'état réel de vos ressources
Pour mettre à jour le modèle afin qu'il corresponde à l'état réel des ressources
-
Pour importer le modèle mis à jour, choisissez Stack actions (Actions de la pile) puis Import resources into stack (Importer des ressources dans la pile).
-
Consultez la page Import overview (Vue d'ensemble de l'importation) pour obtenir la liste des éléments que vous devez fournir dans le cadre de cette opération, puis choisissez Next (Suivant).
-
Dans la page Specify template (Spécifier le modèle) indiquez votre modèle mis à jour via une des méthodes suivantes :
-
Choisissez Amazon S3 URL (URL Amazon S3), puis spécifiez l'URL de votre modèle dans la zone de texte.
-
Choisissez Upload a template file (Charger un fichier de modèle), puis recherchez votre modèle.
Ensuite, choisissez Suivant.
-
-
Dans la page Identify resources (Identifier les ressources), identifiez chaque ressource cible. Pour de plus amples informations, consultez Identifiants de ressource.
-
Sous Identifier property (Propriété de l'identifiant), choisissez le type d'identifiant de ressource. Par exemple, la propriété
TableNameidentifie la ressourceAWS::DynamoDB::Table. -
Sous Identifier value (Valeur de l'identifiant), entrez la valeur réelle de la propriété. Dans l'exemple de modèle,
TableNamepour la ressourceGamesTableestGames. -
Choisissez Next (Suivant).
-
-
Consultez la page Specify stack details (Spécifier les détails de la pile), puis choisissez Next (Suivant).
-
Dans la page Import overview (Aperçu de l'importation), vérifiez les ressources importées, puis choisissez Import resources (Importer les ressources). Le type de ressource
AWS::DynamoDB::Tablesera à nouveau importé dans votre pile.
Résultats: Dans cet exemple, nous avons résolu l'écart de ressource via une opération d'importation, sans interrompre les services. Vous pouvez vérifier la progression d'une action d'importation dans l'onglet Events (Événements) de la console CloudFormation. Les ressources importées auront un état IMPORT_COMPLETE suivi d'un statut CREATE_COMPLETE avec Resource import complete (Importation de ressource terminée) comme raison du statut.
Attendez que CloudFormation termine l'opération de mise à jour de la pile. Une fois l'opération de mise à jour de la pile terminée, mettez à jour votre modèle de sorte qu'il corresponde à l'état de l'écart réel de vos ressources. Par exemple, BillingMode sera défini sur PAY_PER_REQUEST, et ReadCapacityUnits et WriteCapacityUnits seront définis sur 0.