Citrix Application Delivery Management service

Propriétés facultatives

Dans certains cas, une propriété d’un composant tire sa valeur d’une expression, qui peut être une expression simple telle qu’une référence de paramètre, ou une expression plus complexe. La définition de cette valeur de propriété est facultative dans le composant. Vous pouvez choisir de définir la valeur de la propriété uniquement si l’expression renvoie une valeur réelle, sinon vous pouvez choisir de ne pas définir cette propriété.

Par exemple, considérez que l’une des propriétés que vous souhaitez définir est la lbmethod (algorithme d’équilibrage de charge) d’un composant dont le type est ns። lbvserver. La valeur de la propriété lbmethod est tirée d’une valeur de paramètre fournie par l’utilisateur, comme indiqué ci-dessous :

components

  -

      name: lbvserver_comp

      type: ns::lbvserver

      properties:

        name: $parameters.lb-appname + "-lb"

        servicetype: $parameters.lb-service-type

        ipv46: $parameters.lb-virtual-ip

        port: 80

        lbmethod: $parameters.lb-advanced.algorithm

Maintenant, considérez que le paramètre lb-advanced.algorithm est un paramètre facultatif. Et, si l’utilisateur ne fournit pas de valeur pour ce paramètre parce qu’il est facultatif, l’expression $parameters.lb-advanced.algorithm est évaluée à valeur vide. Par conséquent, une valeur non valide est transmise pour la propriété lbmethod. Afin d’éviter une telle situation, vous pouvez annoter la propriété comme facultative en suffixant son nom avec «  ? « comme suit :

components

   -

     name: lbvserver_comp

     type: ns::lbvserver

     properties:

       name: $parameters.lb-appname + "-lb"

       servicetype: $parameters.lb-service-type

       ipv46: $parameters.lb-virtual-ip

       port: 80

       lbmethod?: $parameters.lb-advanced.algorithm

L’utilisation de «  ? « omet la propriété si l’expression sur le droit n’évalue rien, ce qui équivaudrait, dans ce cas, à un composant défini comme suit :

components

  -

    name: lbvserver_comp

    type: ns::lbvserver

    properties:

      name: $parameters.lb-appname + "-lb"

      servicetype: $parameters.lb-service-type

      ipv46: $parameters.lb-virtual-ip

      port: 80

Comme lbmethod est facultative, l’omettre en fait toujours un composant valide. Notez que lbmethod peut prendre sa valeur par défaut si on est défini dans son type « ns::lbvserver. »

Propriétés facultatives