Да, вы можете достичь этого одним из двух способов. Вы можете добавить локальный exec Provider к своему ресурсу ec2 или добавить null_resource с локальным exec Provider, который имеет depen_on на вашем ресурсе ec2. Затем я бы использовал интерфейс командной строки AWS, чтобы продолжать проверять состояние вашего экземпляра, пока проверки состояния не будут выполнены. Это потребует от вас, чтобы у любых ресурсов, которые вы хотите использовать в следующий раз, также была зависимость - чтобы связать их вместе, поскольку terraform не сможет это выяснить. Здесь - это мой блог, где я делаю нечто подобное для Azure.
Нулевой поставщик ресурсов:
resource "null_resource" "status" {
provisioner "local-exec" {
command = "aws ec2 wait instance-status-ok --instance-ids ${use interpolation here to get id}"
}
depends_on = ["ec2 instance"]
}
В качестве альтернативы, вы можете выполнить скрипт Python, который использует API-интерфейс Boto, чтобы сделать то же самое вместо интерфейса командной строки AWS.
Надеюсь, это поможет вам в правильном направлении.