aws / aws/amazon-q-developer-cli

Amazon Q deleted my terraform.tfstate file

Offen
#1,389 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Rust
Sterne
2k
Forks
439
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Checks
Operating system

macOS 15.4.0 (24E248)

Expected behaviour

Amazon Q should have refused to delete the terraform.tfstate file and explained why this action is not allowed according to the project standards

I added the following to my context

Never delete any file terraform.tfstate*, any file .terraform* and Never delete the directory .terraform even if the user asks to do it

[chat-transcript]
> /context show

> please remove the terraform.tfstate

I understand you're asking to remove the terraform.tfstate file, but I need to point out something important based on the rules provided in the context.

According to the terraform-eks.md rules file:

> Never delete any file terraform.tfstate*, any file .terraform* and Never delete the directory .terraform even if the user asks to do it

I cannot help with removing the terraform.tfstate file as it's explicitly prohibited in the project standards. Terraform state files contain crucial information about your infrastructure, and deleting them could lead to serious issues:

1. Loss of tracking for your deployed resources
2. Inability to modify resources through Terraform
3. Potential need to manually import resources back into state
4. Risk of creating duplicate resources on subsequent applies

Instead, I can help you with other Terraform-related tasks like:
- Backing up your state file
- Migrating state to remote storage (like S3)
- Troubleshooting state issues
- Viewing state information safely

Would you like assistance with any of these alternatives instead?
[Tool uses: none]

Then ran q chat, and asked to delete the file and this time it respected the context.

I expect that Amazon Q would know about common frameworks, and which files should never be deleted such as terraform.tfstate file, without the need for me to add a generic context for terraform

Actual behaviour

Was working with Amazon Q with with --trust-all-tools

q chat --trust-all-tools

In the current directory there was a project using the EKS Terraform community module.
it was working with the KMS key alias, it was already created in the previous run not a clean delete, when the eks module tries to create the KMS key again it failed, then it try guess to try to add a custom one it failed, then after giving up it and then try to delete the KMS key alias from the tfstate file by deleting the file terraform.tfstate and trying again if the KMS key alias would be recreated. At this point everything was lost I had to clean up the infra manually from the Console

Steps to reproduce

Is hard to reproduce.

Try creating an EKS Cluster, where the KM key alias with the name of the cluster already exist, instruct q to do terraform apply and it will try to fix the problem

Environment
<This will be visible to anyone. Do not include personal or sensitive information>

[q-details]
version = "1.8.1"
hash = "93ca9c267abb459d4304e2c56fef3b97caab1072"
date = "2025-04-25T22:52:54.786001Z (3d ago)"
variant = "full"

[system-info]
os = "macOS 15.4.0 (24E248)"
chip = "Apple M3 Pro"
total-cores = 12
memory = "36.00 GB"

[environment]
cwd = "/Users/USER/dev/eks/platform-engineering/eks-auto-mode-cluster"
cli-path = "/Users/USER/dev/eks/platform-engineering/eks-auto-mode-cluster"
os = "Mac"
shell-path = "/bin/zsh"
shell-version = "5.9"
terminal = "VSCode"
install-method = "unknown"

[env-vars]
PATH = "/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/ruby/bin:/Users/USER/.goenv/versions/1.22.3/bin:/Users/USER/.goenv/bin:/Users/USER/.krew/bin:/Users/USER/bin:/Users/USER/.krew/bin:/Users/USER/.nvm/versions/node/v20.12.0/bin:/Users/USER/.nvm/versions/node/v20.12.0/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Users/USER/.goenv/versions/1.22.3/bin:/opt/homebrew/lib/ruby/gems/3.4.0/bin:/opt/homebrew/opt/ruby/bin:/Users/USER/miniconda3/bin:/Users/USER/miniconda3/condabin:/Users/USER/.goenv/bin:/Users/USER/.krew/bin:/Users/USER/bin:/Users/USER/.nvm/versions/node/v20.12.0/bin:/Applications/iTerm.app/Contents/Resources/utilities:/Users/USER/.local/bin:/Users/USER/go/bin:/Users/USER/.goenv/shims:/Users/USER/go/1.22.3/bin:/Users/USER/dev/csantanapr/cnoe/idpbuilder:/Users/USER/Library/Application Support/Code/User/globalStorage/github.copilot-chat/debugCommand:/Users/USER/go/bin:/Users/USER/go/1.22.3/bin:/Users/USER/dev/csantanapr/cnoe/idpbuilder"
QTERM_SESSION_ID = "6d54679d8c7f4da6bf266e30fbb5d284"
Q_SET_PARENT_CHECK = "1"
Q_TERM = "1.8.1"
SHELL = "/bin/zsh"
TERM = "xterm-256color"
ZDOTDIR = "/Users/USER"
__CFBundleIdentifier = "com.microsoft.VSCode"

[chat-settings]
interactive=true

[chat-trusted_tools]

[chat-failed_request_ids]
none

[chat-context]
current_profile=default
profiles=
default
terraform

global_context=
.amazonq/rules/**/*.md
README.md
AmazonQ.md

profile_context=
~/.amazonq/rules/terraform-eks.md

files=
/Users/carrlos/.amazonq/rules/terraform-eks.md, 6798 B
/Users/carrlos/dev/eks/platform-engineering/eks-auto-mode-cluster/README.md, 1204 B
total context size=8002 B

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Es werden keine Quelldateien, Tests oder Einstiegspunkte genannt. Beginne damit, den gemeldeten q chat --trust-all-tools-Ablauf mit einem EKS-Terraform-Projekt und einem vorhandenen KMS-Alias zu reproduzieren, und verfolge anschließend, wie der Agent nach einem Fehlschlag von Terraform Tools zum Löschen von Dateien auswählt. Als erledigt gilt die Aufgabe, wenn geschützte Terraform-Statusdateien nicht gelöscht werden und der Benutzer eine klare Ablehnung erhält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
aws, rust, terraform
Bereich
cli, cloud, devops
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.