Tom*_*ino 1 amazon-s3 terraform
我发现我的 aws 帐户中有一个不是由 terraform 创建的存储桶。
我想确保它在我的 terraform 存储库中说明,但在我添加它之前,我运行terraform plan并得到以下响应:
No changes. Infrastructure is up-to-date.
This means that Terraform did not detect any differences between your
configuration and real physical resources that exist. As a result, no
actions need to be performed.
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为当我跑步时,aws s3 ls我看到了桶:
#not real names from obvious reasons
2019-07-15 13:33:16 bucket-from-terrform
2019-07-15 13:19:26 terraform-state-bucket
2019-07-23 17:47:26 bucket-created-manually
Run Code Online (Sandbox Code Playgroud)
更重要的是,当我添加一个名称与之前忽略的存储桶匹配的资源时,terraform 会尝试添加它(即使它已经存在)
怎么了?terraform 忽略那个桶的原因可能是什么?
Terraform 是声明式的,你定义你想要的资源,它会为你创建和管理它们。它只能管理它在状态内知道的资源。要允许 terraform 管理手动创建的资源,您可以将它们导入状态。
对于 s3 存储桶,您将通过存储桶名称https://www.terraform.io/docs/providers/aws/r/s3_bucket.html#import导入
所以如果你的地形看起来像
resource "aws_s3_bucket" "my-bucket" {
bucket = "bucket-created-manually"
acl = "private"
}
Run Code Online (Sandbox Code Playgroud)
你会使用命令
terraform import aws_s3_bucket.my-bucket bucket-created-manually
Run Code Online (Sandbox Code Playgroud)
然后下次您运行计划时,terraform 将了解它并能够对其进行管理。
| 归档时间: |
|
| 查看次数: |
1790 次 |
| 最近记录: |