Назад | Перейти на главную страницу

Как оправиться от этого действия по уничтожению терраформ?

Я пытаюсь уничтожить некоторые ресурсы, созданные терраформом на AWS.

Terraform предлагает этот план

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

Однако из-за того, что в моем профиле aws нет разрешения на удаление, один из шагов не удался:

  - 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

Я удалил вышеуказанное aws_db_event_subscription вручную, используя альтернативную роль AWS. Однако я не могу возобновить терраформирование и игнорировать эту ошибку.

Terraform по-прежнему необходимо выполнить следующее:

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 

Как я могу сказать Terraform продолжить и игнорировать module.myproject-mainprocess.aws_db_event_subscription.send_rds_event_to_sns что уже удалено?

Сделайте резервную копию вашего tfstate сначала и используйте rm команда для удаления ресурса из tfstate. Используйте это так:

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 

редактировать Только что прочитал

Эта команда выведет резервную копию состояния до сохранения любых изменений. Резервное копирование нельзя отключить. Из-за разрушительного характера этой команды требуется резервное копирование.

Я бы по-прежнему рекомендовал делать резервное копирование вручную, а также восстановление после поломки tfstate или восстановление tfstate - это трудоемкая и рискованная операция, которую я бы хотел избежать любой ценой.