【发布时间】:2020-01-31 04:40:48
【问题描述】:
我创建了一个全新的(免费)AWS 账户。
使用 terraform,我创建了一个 EC2 实例,但在 aws 控制台中看不到它。
我的 terraform 脚本很简单
provider "aws" {
region = "us-east-2"
}
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
tags = {
Name = "terraform-example"
}
}
terraform apply 成功完成,但是在 AWS 控制台上转到 EC2 时,它告诉我没有实例...
即使我以 AWS 根帐户登录。
出于好奇,我通过 AWS 控制台手动创建了一个 EC2 实例。我可以看到这个是手动创建的。
如果我再次运行terraform plan,它仍然说一切都很好......
它不应该尝试删除这个新的手动实例吗?
这是否确认我的 terraform 实例没有查看我认为的帐户???
后来,我将完全相同的凭据和 main.tf 文件带到另一台笔记本电脑上
最初 terraform plan 没有识别出我之前创建的 EC2(或任何东西)(我想这是因为我没有复制 Terraform 状态文件...)。
Ran terraform apply 重新创建了项目...这次我可以看到我创建的实例...
下一步:尝试找出这个初始 EC2 实例是否已在另一个区域创建...我希望通过计费/或活动找出...
【问题讨论】:
-
嗨 Eric - 我可以想象 TF 状态文件与实际状态的托管状态不一致,因此值得尝试运行显示信息来获取 instanceId 或者运行销毁并计划/应用。或者 - 不确定您是否有多个帐户,但值得仔细检查为您的 terraform 设置的 API 密钥是否实际上用于同一帐户,以及您的控制台是否指向同一区域。
-
首先检查用于terraform的密钥和访问密钥属于哪个AWS账户,然后在控制台上检查正确的区域。这是一个总是有逻辑的软件,而不是会吃掉你的实例的魔法:)
-
我通过环境变量设置了 AWS_ACCESS_KEY 和 AWS_SECRET_ACCESS_KEY,它们的 AWS_ACCESS_KEY 看起来不错
-
对于 TF 状态,似乎没问题,因为 terraform plan 可以识别实例。它甚至给了我实例 ID,但不确定我能用它做什么
标签: amazon-ec2 terraform terraform-provider-aws