Utiliser des variables dans votre document de composant personnalisé - EC2Image Builder

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser des variables dans votre document de composant personnalisé

Les variables permettent d'étiqueter les données avec des noms significatifs qui peuvent être utilisés dans l'ensemble d'une application. Vous pouvez définir des variables personnalisées avec des formats simples et lisibles pour les flux de travail complexes, et les référencer dans le document du composant d'YAMLapplication correspondant à un AWSTOE composant.

Cette section fournit des informations qui vous aideront à définir les variables de votre AWSTOE composant dans le document du composant de l'YAMLapplication, notamment la syntaxe, les contraintes de nom et des exemples.

Paramètres

Les paramètres sont des variables mutables, avec des paramètres que l'application appelante peut fournir au moment de l'exécution. Vous pouvez définir des paramètres dans la Parameters section du YAML document.

Règles relatives aux noms de paramètres
  • Le nom doit comporter entre 3 et 128 caractères.

  • Le nom ne peut contenir que des caractères alphanumériques (a-z, A-Z, 0-9), des tirets (-) ou des traits de soulignement (_).

  • Le nom doit être unique dans le document.

  • Le nom doit être spécifié sous forme de YAML chaîne.

Syntaxe

parameters: - <name>: type: <parameter type> default: <parameter value> description: <parameter description>

Nom de la touche

Obligatoire

Description

name

Oui

Nom du paramètre. Doit être unique pour le document (il ne doit pas être identique aux autres noms de paramètres ou constantes).

type

Oui

Type de données du paramètre. Les types pris en charge incluent :string.

default

Non

La valeur par défaut du paramètre.

description

Non

Décrit le paramètre.

Valeurs des paramètres de référence dans un document

Vous pouvez référencer des paramètres dans des entrées par étapes ou en boucle à l'intérieur de votre YAML document, comme suit :

  • Les références aux paramètres distinguent les majuscules et minuscules, et le nom doit correspondre exactement.

  • Le nom doit être placé entre accolades {{ MyParameter }}.

  • Les espaces sont autorisés à l'intérieur des bretelles bouclées et sont automatiquement rognés. Par exemple, toutes les références suivantes sont valides :

    {{ MyParameter }}, {{ MyParameter}}, {{MyParameter }}, {{MyParameter}}

  • La référence dans le YAML document doit être spécifiée sous forme de chaîne (entre guillemets simples ou doubles).

    Par exemple : n'- {{ MyParameter }}est pas valide, car il n'est pas identifié comme une chaîne.

    Toutefois, les références suivantes sont toutes deux valides : - '{{ MyParameter }}' et- "{{ MyParameter }}".

Exemples

Les exemples suivants montrent comment utiliser les paramètres dans votre YAML document :

  • Référez-vous à un paramètre dans les entrées d'étape :

    name: Download AWS CLI version 2 schemaVersion: 1.0 parameters: - Source: type: string default: 'https://awscli.amazonaws.com/AWSCLIV2.msi' description: The AWS CLI installer source URL. phases: - name: build steps: - name: Download action: WebDownload inputs: - source: '{{ Source }}' destination: 'C:\Windows\Temp\AWSCLIV2.msi'
  • Référez-vous à un paramètre dans les entrées de boucle :

    name: PingHosts schemaVersion: 1.0 parameters: - Hosts: type: string default: 127.0.0.1,amazon.com description: A comma separated list of hosts to ping. phases: - name: build steps: - name: Ping action: ExecuteBash loop: forEach: list: '{{ Hosts }}' delimiter: ',' inputs: commands: - ping -c 4 {{ loop.value }}

Remplacer les paramètres lors de l'exécution

Vous pouvez utiliser l'--parametersoption AWS CLI avec une paire clé-valeur pour définir une valeur de paramètre lors de l'exécution.

  • <value>Spécifiez la paire clé-valeur du paramètre sous forme de nom et de valeur, séparés par un signe égal (<name>=).

  • Les paramètres multiples doivent être séparés par une virgule.

  • Les noms de paramètres introuvables dans le document du YAML composant sont ignorés.

  • Le nom et la valeur du paramètre sont tous deux obligatoires.

Important

Les paramètres des composants sont des valeurs en texte brut et sont connectés AWS CloudTrail. Nous vous recommandons d'utiliser AWS Secrets Manager le AWS Systems Manager Parameter Store pour stocker vos secrets. Pour plus d'informations sur Secrets Manager, voir Qu'est-ce que Secrets Manager ? dans le guide de AWS Secrets Manager l'utilisateur. Pour plus d'informations sur AWS Systems Manager Parameter Store, voir AWS Systems Manager Parameter Store dans le guide de AWS Systems Manager l'utilisateur.

Syntaxe

--parameters name1=value1,name2=value2...

CLIoption

Obligatoire

Description

--parameters name=value,...

Non

Cette option prend une liste de paires clé-valeur, avec le nom du paramètre comme clé.

Exemples

Les exemples suivants montrent comment utiliser les paramètres dans votre YAML document :

  • La paire clé-valeur du paramètre spécifiée dans cette --parameter option n'est pas valide :

    --parameters ntp-server=
  • Définissez une paire clé-valeur de paramètre avec l'--parameteroption dans le champ : AWS CLI

    --parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
  • Définissez plusieurs paires clé-valeur de paramètres à l'aide de l'--parameteroption suivante : AWS CLI

    --parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com

Constantes

Les constantes sont des variables immuables qui ne peuvent pas être modifiées ou remplacées une fois définies. Les constantes peuvent être définies à l'aide des valeurs figurant dans la constants section d'un AWSTOE document.

Règles pour les noms de constantes
  • Le nom doit comporter entre 3 et 128 caractères.

  • Le nom ne peut contenir que des caractères alphanumériques (a-z, A-Z, 0-9), des tirets (-) ou des traits de soulignement (_).

  • Le nom doit être unique dans le document.

  • Le nom doit être spécifié sous forme de YAML chaîne.

Syntaxe

constants: - <name>: type: <constant type> value: <constant value>
Nom de la touche Obligatoire Description

name

Oui

Nom de la constante. Doit être unique pour le document (il ne doit pas être identique aux autres noms de paramètres ou constantes).

value

Oui Valeur de la constante.

type

Oui Type de constante. Le type pris en charge eststring.
Valeurs constantes de référence dans un document

Vous pouvez référencer des constantes dans les entrées par étapes ou en boucle à l'intérieur de votre YAML document, comme suit :

  • Les références constantes distinguent les majuscules et minuscules, et le nom doit correspondre exactement.

  • Le nom doit être placé entre accolades {{ MyConstant }}.

  • Les espaces sont autorisés à l'intérieur des bretelles bouclées et sont automatiquement rognés. Par exemple, toutes les références suivantes sont valides :

    {{ MyConstant }}, {{ MyConstant}}, {{MyConstant }}, {{MyConstant}}

  • La référence dans le YAML document doit être spécifiée sous forme de chaîne (entre guillemets simples ou doubles).

    Par exemple : n'- {{ MyConstant }}est pas valide, car il n'est pas identifié comme une chaîne.

    Toutefois, les références suivantes sont toutes deux valides : - '{{ MyConstant }}' et- "{{ MyConstant }}".

Exemples

Constante référencée dans les entrées d'étape

name: Download AWS CLI version 2 schemaVersion: 1.0 constants: - Source: type: string value: https://awscli.amazonaws.com/AWSCLIV2.msi phases: - name: build steps: - name: Download action: WebDownload inputs: - source: '{{ Source }}' destination: 'C:\Windows\Temp\AWSCLIV2.msi'

Constante référencée dans les entrées de boucle

name: PingHosts schemaVersion: 1.0 constants: - Hosts: type: string value: 127.0.0.1,amazon.com phases: - name: build steps: - name: Ping action: ExecuteBash loop: forEach: list: '{{ Hosts }}' delimiter: ',' inputs: commands: - ping -c 4 {{ loop.value }}