因此,我拥有一组 Terraform 项目。我刚刚构建了一个特定应用程序的映像,最终会更新 Terraform 存储库中相应项目的自动变量文件中的标签,然后应用它,我注意到修改时间非常古怪。今天是 28 号。状态文件显示修改时间为三周前(5 号),尽管从那时起我可能已经进行了数十次实际发布,包括刚刚更新并应用了这些版本。自动变量文件上的修改时间和实际 Docker 映像标签中的时间戳证明了这一点(我相信这些是在更新自动变量后不久应用的)。
$ ls -la
total 56
drwxr-xr-x 3 dustin dustin 4096 May 28 14:38 .
drwxr-xr-x 6 dustin dustin 4096 May 4 12:13 ..
-rw-r--r-- 1 dustin dustin 4300 May 16 12:34 main.tf
-rwxr-xr-x 1 dustin dustin 49 May 4 12:13 run.sh
drwxr-xr-x 4 dustin dustin 4096 May 5 15:30 .terraform
-rw-r--r-- 1 dustin dustin 298 May 28 14:38 terraform.auto.tfvars.json
-rw-r--r-- 1 dustin dustin 1409 May 5 15:30 .terraform.lock.hcl
-rw-r--r-- 1 dustin dustin 17556 May 5 15:29 terraform.tfstate.backup
-rw-r--r-- 1 dustin dustin 196 May 4 12:13 variables.tf
$ ls -la .terraform
total 20
drwxr-xr-x 4 dustin dustin 4096 May 5 15:30 .
drwxr-xr-x 3 dustin dustin 4096 May 28 14:38 ..
drwxr-xr-x 2 dustin dustin 4096 May 5 15:29 modules
drwxr-xr-x 3 dustin dustin 4096 May 5 15:30 providers
-rw-r--r-- 1 dustin dustin 1600 May 5 15:29 terraform.tfstate
$ cat terraform.auto.tfvars.json
{
"taskdefinition-web-fq-docker-image": "326764833890.dkr.ecr.us-east-1.amazonaws.com/workflow-web:eb241c0",
"taskdefinition-app-fq-docker-image": "326764833890.dkr.ecr.us-east-1.amazonaws.com/workflow-api:20230528143624-abca7cf",
"taskdefinition-release-version": "20230528143624-abca7cf"
}
我刚刚执行的应用程序显示了所采取的行动:
Plan: 1 to add, 1 to change, 1 to destroy.
module.task-definition.aws_ecs_task_definition.task-definition-default: Destroying... [id=workflow-api-staging]
module.task-definition.aws_ecs_task_definition.task-definition-default: Destruction complete after 1s
module.task-definition.aws_ecs_task_definition.task-definition-default: Creating...
module.task-definition.aws_ecs_task_definition.task-definition-default: Creation complete after 0s [id=workflow-api-staging]
module.load-balancer.module.service.aws_ecs_service.default: Modifying... [id=arn:aws:ecs:us-east-1:326764833890:service/internal-webserver-ssl/staging-workflow-api]
module.load-balancer.module.service.aws_ecs_service.default: Modifications complete after 0s [id=arn:aws:ecs:us-east-1:326764833890:service/internal-webserver-ssl/staging-workflow-api]
Apply complete! Resources: 1 added, 1 changed, 1 destroyed.
有人能解释一下 Terraform 如何管理状态 mtime 吗?文档似乎没有详细说明。