Terraform Error Handing with Try Catch

The code could be improved by adding some error handling. For example, you could check to make sure that the PEM file exists and that the password data is valid. You could also add a retry mechanism in case the AWS API call fails.

This code uses the try and catch blocks to handle errors. If the rsadecrypt function fails, the catch block will be executed and the output will be set to the specified error message.

resource "aws_instance" "example" {
  ami = "ami-065b889ab5c33720e"
  count         = "18"
  instance_type = "t2.medium"
  key_name = "aws-hl-training"
  vpc_security_group_ids =["sg-0541801a7a059ba17"]
  get_password_data = "true"
}

output "public_ip" {
    value = "${aws_instance.example.*.public_ip}"
}

output "public_dns" {
    value = "${aws_instance.example.*.public_dns}"
}

output "Administrator_Password1" {
  value = try {
    [
      for g in aws_instance.example : rsadecrypt(g.password_data,file("aws-hl-training.pem"))
    ]
  } catch {
    // Handle the error
    "Unable to decrypt password data"
  }
}
Rajesh Kumar
Follow me
Latest posts by Rajesh Kumar (see all)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x