web-dev-qa-db-fra.com

Conditions conditionnelles Terraform - si la variable n'existe pas

J'ai la condition suivante:

resource "aws_elastic_beanstalk_application" "service" {
  appversion_lifecycle {
    service_role          = "service-role"
    delete_source_from_s3 = "${var.env == "production" ?   false : true}"
  }
}

si var.env est défini sur production, j'obtiens le résultat souhaité.

Merci!

Cependant, si var.env n'est pas défini, le plan terraform échouera car la variable n'a jamais été définie. Comment puis-je faire fonctionner cela, sans jamais avoir à définir cette variable?

5
sebastian

si vous utilisez Terraform 0.12 ou une version ultérieure, vous pouvez affecter la valeur spéciale null à un argument pour le marquer comme "non défini".

variable "env" {
    type = "string"
    default = null
}

Vous ne pouvez pas le laisser vide, pas avec les versions actuelles.

1
Shiv Rajawat