J'utilise Troposphere pour générer des piles CloudFormation et je souhaite passer l'attribut Elastic Load Balancer ConnectionSettings
uniquement s'il est défini dans ma configuration, sinon je ne souhaite pas le spécifier.Comment passer un attribut d'objet Troposphere sous condition?
Si je le mets à None
par défaut alors j'obtiens une erreur au sujet de la valeur n'étant pas du type prévu de troposphere.elasticloadbalancing.ConnectionSettings
.
Je préfère essayer d'éviter de définir un paramètre par défaut explicite dans l'appel, car il peut remplacer d'autres paramètres.
Idealy, je voudrais être en mesure d'ajouter des attributs à un objet existant, .: par exemple
lb = template.add_resource(elb.LoadBalancer(
...
))
if condition:
lb.add_attribute(ConnectionSettings = elb.ConnectionSettings(
...
))
Yat-il un moyen d'y parvenir?
MISE À JOUR: je l'ai réalisé en utilisant une méthode Troposphere
cachée, qui fonctionne mais je ne suis pas satisfait:
if condition:
lb.__setattr__('ConnectionSettings', elb.ConnectionSettings(
....
))
Je suis toujours intéressé par une solution qui ne comporte pas l'aide d'un privé méthode de l'extérieur du module.
Merci. Ça marche. J'ai seulement trouvé une référence à cette fonctionnalité dans le fichier README après une lecture très attentive (réglage de 'instance.ImageId'), peut-être que le doc peut le mettre en évidence un peu plus en évidence. –