Configuration de StyleBook

Propriétés facultatives

Parfois, une propriété d’un composant prend 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 le lbmethod (algorithme d’équilibrage de charge) d’un composant dont le type est ns። lbvserver. La valeur de la propriété lbmethod est extraie 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
<!--NeedCopy-->

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 passée pour la lbmethod propriété. 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
<!--NeedCopy-->

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
<!--NeedCopy-->

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

Propriétés facultatives

Dans cet article