2 votes

Comment récupérer de cette action de destruction de la terraforme ?

J'essaie de détruire des ressources créées par terraform sur AWS.

Terraform propose ce plan

Terraform will perform the following actions:

  - aws_lambda_function.myproject-mainprocess-restore-db-from-snapshot

  - module.myproject-mainprocess.aws_db_event_subscription.send_rds_event_to_sns

  - module.myproject-mainprocess.aws_lambda_permission.allow_sns_call_rds_lambda

  - module.myproject-mainprocess.aws_sns_topic_subscription.call_lambda_by_sns

  - module.myproject-mainprocess.module.lambda.aws_iam_policy.lambda_policy

  - module.myproject-mainprocess.module.lambda.aws_iam_policy.lambda_policy_logs

  - module.myproject-mainprocess.module.lambda.aws_iam_role.lambda_role

  - module.myproject-mainprocess.module.lambda.aws_iam_role_policy_attachment.policy_attachment

  - module.myproject-mainprocess.module.lambda.aws_iam_role_policy_attachment.policy_attachment_logs

  - module.myproject-mainprocess.module.lambda.aws_lambda_function.lambda

  - module.myproject-mainprocess.module.lambda.datadog_monitor.lambda_errors_alert

  - module.myproject-mainprocess.module.rds_event_sns.aws_sns_topic.topic_simple

Cependant, en raison de l'absence d'une autorisation de suppression dans mon profil aws, l'une des étapes a échoué :

  - module.myproject-mainprocess.aws_db_event_subscription.send_rds_event_to_sns

Error: Error applying plan:

1 error(s) occurred:

* module.media-rotate-reports-db.aws_db_event_subscription.send_rds_event_to_sns (destroy): 1 error(s) occurred:

* aws_db_event_subscription.send_rds_event_to_sns: Error deleting RDS Event Subscription dev-media-rotate-reports-db-rds-snapshot-creation-event-subscription: AccessDenied: User: arn:aws:sts::141225792464:assumed-role/myteam/anthony_dev_credentials is not authorized to perform: rds:DeleteEventSubscription on resource: arn:aws:rds:us-east-1:141225792464:es:dev-myproject-mainprocess-rds-snapshot-creation-event-subscription
    status code: 403, request id: a20c2dbf-8526-4a8f-9d86-71f2df4507c5

J'ai supprimé ce qui précède aws_db_event_subscription manuellement en utilisant un autre rôle AWS. Cependant, je ne parviens pas à faire en sorte que terraform reprenne et ignore cette erreur.

Terraform doit encore exécuter ce qui suit :

Terraform will perform the following actions:

  - module.myproject-mainprocess.aws_db_event_subscription.send_rds_event_to_sns

  - module.myproject-mainprocess.module.rds_event_sns.aws_sns_topic.topic_simple 

Comment puis-je dire à Terraform de reprendre et d'ignorer module.myproject-mainprocess.aws_db_event_subscription.send_rds_event_to_sns qui a déjà été supprimé ?

3voto

Henrik Pingel Points 8426

Sauvegardez votre tfstate d'abord et utiliser le rm pour supprimer la ressource de la liste des tfstate . Utilisez-le comme ceci :

terraform state rm module.myproject-mainprocess.aws_db_event_subscription.send_rds_event_to_sns
terraform state rm module.myproject-mainprocess.module.rds_event_sns.aws_sns_topic.topic_simple 

modifier Lis juste

Cette commande produira une copie de sauvegarde de l'état avant d'enregistrer les changements. La sauvegarde ne peut pas être désactivée. En raison de la nature destructive de cette commande, des sauvegardes sont nécessaires.

Je recommande toujours de faire une sauvegarde manuelle, car la récupération d'un tfstate cassé ou la reconstruction d'un tfstate est une opération longue et risquée que je voudrais éviter à tout prix.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X