Variables - AWS CodePipeline

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.

Variables

Cette section est fournie à des fins de référence uniquement. Pour plus d'informations sur la création de variables, consultez Utilisation des variables.

Les variables vous permettent de configurer les actions de votre pipeline avec des valeurs déterminées au moment de l'exécution du pipeline ou de l'exécution de l'action.

Certains fournisseurs d'actions produisent un ensemble défini de variables. Vous choisissez parmi des clés de variable par défaut pour ce fournisseur d'action, telles que l'ID de validation.

Important

Lorsque vous transmettez des paramètres secrets, n'entrez pas directement la valeur. La valeur est rendue en texte brut ; elle est donc lisible. Pour des raisons de sécurité, n'utilisez pas de texte brut contenant des secrets. Nous vous recommandons vivement de l'utiliser AWS Secrets Manager pour stocker des secrets.

Pour voir step-by-step des exemples d'utilisation de variables :

Limites de variable

Pour plus d'informations sur les limites, consultez Quotas dans AWS CodePipeline.

Note

Lorsque vous entrez une syntaxe variable dans les champs de configuration des actions, ne dépassez pas la limite de 1 000 caractères pour les champs de configuration. Une erreur de validation est renvoyée lorsque cette limite est dépassée.

Concepts

Cette section répertorie les termes et concepts clés liés aux variables et aux espaces de noms.

Variables

Les variables sont des paires clé-valeur qui peuvent être utilisées pour configurer dynamiquement des actions dans votre pipeline. Ces variables sont actuellement mises à disposition de trois manières :

  • Il existe un ensemble de variables qui sont implicitement disponibles au début de chaque exécution de pipeline. Cet ensemble comprend actuellement PipelineExecutionId, l'ID de l'exécution du pipeline en cours.

  • Les variables au niveau du pipeline sont définies lors de la création du pipeline et résolues au moment de son exécution.

    Vous spécifiez des variables au niveau du pipeline lorsque celui-ci est créé, et vous pouvez fournir des valeurs au moment de l'exécution du pipeline.

  • Il existe des types d'action qui produisent des ensembles de variables lorsqu'ils sont exécutés. Vous pouvez voir les variables produites par une action en inspectant le outputVariables champ qui fait partie de l'ListActionExecutionsAPI. Pour obtenir la liste des noms de clé disponibles par fournisseur d'actions, consultez Variables disponibles pour les actions de pipeline. Pour connaître les variables produites par chaque type d'action, consultez le CodePipeline Référence sur la structure des actions.

Pour référencer ces variables dans votre configuration d'action, vous devez utiliser la syntaxe de référence de variable avec l'espace de noms correct.

Pour un exemple de flux de travail de variable, consultez Configuration des variables .

Espaces de noms

Pour que les variables puissent être référencées de manière unique, elles doivent être affectées à un espace de noms. Une fois qu’un ensemble de variables a été affecté à un espace de noms, elles peuvent être référencées dans une configuration d'action à l'aide de l'espace de noms et d’une clé de variable avec la syntaxe suivante :

#{namespace.variable_key}

Il existe trois types d'espaces de noms sous lesquels des variables peuvent être attribuées :

  • L' espace de noms réservé codepipeline

    Il s'agit de l'espace de noms affecté à l'ensemble des variables implicites disponibles au début de chaque exécution du pipeline. Cet espace de noms est codepipeline. Exemple de référence de variable :

    #{codepipeline.PipelineExecutionId}
  • L'espace de noms des variables au niveau du pipeline

    Il s'agit de l'espace de noms attribué aux variables au niveau du pipeline. L'espace de noms pour toutes les variables au niveau du pipeline estvariables. Exemple de référence de variable :

    #{variables.variable_name}
  • Espace de noms affecté à l'action

    Il s'agit d'un espace de noms que vous affectez à une action. Toutes les variables produites par l'action relèvent de cet espace de noms. Pour que les variables produites par une action puissent être utilisées dans une configuration d'action en aval, vous devez configurer l'action de production avec un espace de noms. Les espaces de noms doivent être uniques au sein de la définition du pipeline et ne peuvent pas entrer en conflit avec les noms d'artefact. Voici un exemple de référence de variable pour une action configurée avec l’espace de noms SourceVariables.

    #{SourceVariables.VersionId}

Cas d'utilisation des variables

Voici quelques-uns des cas d'utilisation les plus courants des variables au niveau du pipeline, qui vous aideront à déterminer comment vous pouvez utiliser les variables en fonction de vos besoins spécifiques.

  • Les variables au niveau du pipeline sont destinées CodePipeline aux clients qui souhaitent utiliser le même pipeline à chaque fois avec des variations mineures dans les entrées de la configuration des actions. Tout développeur qui démarre un pipeline ajoute la valeur variable dans l'interface utilisateur au démarrage du pipeline. Avec cette configuration, vous ne transmettez des paramètres que pour cette exécution.

  • Avec les variables au niveau du pipeline, vous pouvez transmettre des entrées dynamiques aux actions du pipeline. Vous pouvez migrer vos pipelines paramétrés vers des pipelines CodePipeline sans avoir à gérer différentes versions du même pipeline ou à créer des pipelines complexes.

  • Vous pouvez utiliser des variables au niveau du pipeline pour transmettre des paramètres d'entrée qui vous permettent de réutiliser un pipeline à chaque exécution, par exemple lorsque vous souhaitez spécifier la version que vous souhaitez déployer dans un environnement de production, afin de ne pas avoir à dupliquer les pipelines.

  • Vous pouvez utiliser un pipeline unique pour déployer des ressources dans plusieurs environnements de création et de déploiement. Par exemple, pour un pipeline doté d'un CodeCommit référentiel, le déploiement à partir d'une branche et d'un environnement de déploiement cible spécifiés peut être effectué CodeBuild et CodeDeploy les paramètres transmis au niveau du pipeline.

Configuration des variables

Vous pouvez configurer des variables au niveau du pipeline ou au niveau de l'action dans la structure du pipeline.

Configuration des variables au niveau du pipeline

Vous pouvez ajouter une ou plusieurs variables au niveau du pipeline. Vous pouvez référencer cette valeur dans la configuration des CodePipeline actions. Vous pouvez ajouter les noms des variables, les valeurs par défaut et les descriptions lors de la création du pipeline. Les variables sont résolues au moment de l'exécution.

Note

Si aucune valeur par défaut n'est définie pour une variable au niveau du pipeline, la variable est considérée comme obligatoire. Vous devez spécifier des remplacements pour toutes les variables requises lorsque vous démarrez un pipeline, sinon l'exécution du pipeline échouera avec une erreur de validation.

Vous fournissez des variables au niveau du pipeline à l'aide de l'attribut variables de la structure du pipeline. Dans l'exemple suivant, la valeur de la variable Variable1 estValue1.

"variables": [ { "name": "Variable1", "defaultValue": "Value1", "description": "description" } ]

Pour un exemple de la structure JSON du pipeline, consultezCréez un pipeline dans CodePipeline.

Pour un didacticiel avec une variable au niveau du pipeline transmise au moment de l'exécution du pipeline, voir. Tutoriel : Utiliser des variables au niveau du pipeline

Notez que l'utilisation de variables au niveau du pipeline dans tout type d'action Source n'est pas prise en charge.

Note

Si l'espace de variables noms est déjà utilisé dans certaines actions du pipeline, vous devez mettre à jour la définition de l'action et choisir un autre espace de noms pour l'action en conflit.

Configuration des variables au niveau de l'action

Vous configurez une action pour produire des variables en déclarant un espace de noms pour l'action. L'action doit déjà être un des fournisseurs d'actions qui génère des variables. Sinon, les variables disponibles sont des variables de niveau pipeline.

Vous pouvez déclarer l'espace de noms comme suit :

  • Sur la page d'action Modifier de la console, entrez un espace de noms dans Espace de noms variable.

  • En entrant un espace de noms dans le champ du paramètre namespace de la structure du pipeline JSON.

Dans cet exemple, vous ajoutez le namespace paramètre à l'action CodeCommit source avec le nomSourceVariables. Cela configure l'action pour produire les variables disponibles pour ce fournisseur d'actions, telles que CommitId.

{ "name": "Source", "actions": [ { "outputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Source", "namespace": "SourceVariables", "configuration": { "RepositoryName": "MyRepo", "BranchName": "mainline", "PollForSourceChanges": "false" }, "inputArtifacts": [], "region": "us-west-2", "actionTypeId": { "provider": "CodeCommit", "category": "Source", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

Ensuite, vous configurez l'action en aval pour utiliser les variables produites par l'action précédente. Pour ce faire, procédez comme suit :

  • Dans la page Edit action (Modifier l'action) de la console, saisissez la syntaxe de variable (pour l'action en aval) dans les champs de configuration de l'action.

  • Saisie de la syntaxe de variable (pour l'action en aval) dans les champs de configuration de l'action dans la structure du pipeline JSON

Dans cet exemple, le champ de configuration de l'action de build affiche les variables d'environnement mises à jour lors de l'exécution de l'action. L'exemple spécifie l'espace de noms et la variable pour l'ID d'exécution avec #{codepipeline.PipelineExecutionId} et l'espace de noms et la variable pour l'ID de validation avec #{SourceVariables.CommitId}.

{ "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifact" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Release_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]", "ProjectName": "env-var-test" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-west-2", "actionTypeId": { "provider": "CodeBuild", "category": "Build", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

Résolution des variables

Chaque fois qu'une action est exécutée dans le cadre d'une exécution de pipeline, les variables produites peuvent être utilisées dans toute action dont l'exécution est garantie après l'action de production. Pour utiliser ces variables dans une action de consommation, vous pouvez les ajouter à la configuration de l'action de consommation en utilisant la syntaxe indiquée dans l'exemple précédent. Avant d'exécuter une action consommatrice, il CodePipeline résout toutes les références de variables présentes dans la configuration avant de lancer l'exécution de l'action.

Exemple : variables pour plusieurs actions

Règles pour les variables

Les règles suivantes vous aident à configurer les variables :

  • Vous spécifiez l'espace de noms et la variable pour une action via une nouvelle propriété d'action ou en modifiant une action.

  • Lorsque vous utilisez l'assistant de création de pipeline, la console génère un espace de noms pour chaque action créée avec l'assistant.

  • Si l'espace de noms n'est pas spécifié, les variables produites par cette action ne peuvent être référencées dans aucune configuration d'action.

  • Pour référencer des variables produites par une action, l'action de référencement doit se produire après l'action qui produit les variables. Cela signifie qu'elle doit se produire soit au cours d’une étape ultérieure à l'action produisant les variables, soit au cours de la même étape mais dans un ordre d'exécution supérieur.

Variables disponibles pour les actions de pipeline

Le fournisseur d'actions détermine les variables qui peuvent être générées par l'action.

Pour step-by-step les procédures de gestion des variables, voirUtilisation des variables.

Actions avec des clés variables définies

Contrairement à un espace de noms que vous pouvez choisir, les actions suivantes utilisent des clés variables qui ne peuvent pas être modifiées. Par exemple, pour le fournisseur d'actions Amazon S3, seules les clés de VersionId variable ETag et sont disponibles.

Chaque exécution possède également un ensemble de variables de pipeline CodePipeline générées qui contiennent des données sur l'exécution, telles que l'ID de version du pipeline. Ces variables peuvent être utilisées par n'importe quelle action du pipeline.

CodePipelinevariable d'ID d'exécution

CodePipelinevariable d'ID d'exécution
Fournisseur Clé de variable Exemple de valeur Exemple de syntaxe de variable
codepipeline PipelineExecutionId 8abc75f0-fbf8-4f4c-bfEXAMPLE #{codepipeline.PipelineExecutionId}

Variables de sortie d'action Amazon ECR

Variables Amazon ECR
Clé de variable Exemple de valeur Exemple de syntaxe de variable
ImageDigest sha256:EXAMPLE1122334455 #{SourceVariables.ImageDigest}
ImageTag dernières #{SourceVariables.ImageTag}
ImageURI 11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest #{SourceVariables.ImageURI}
RegistryId EXAMPLE12233 #{SourceVariables.RegistryId}
RepositoryName my-image-repo #{SourceVariables.RepositoryName}

AWS CloudFormation StackSets variables de sortie d'action

AWS CloudFormation StackSets variables
Clé de variable Exemple de valeur Exemple de syntaxe de variable
OperationId 11111111-2bbb-111-2bbb-11111 exemple #{DeployVariables.OperationId}
StackSetId my-stackset:1111aaaa-1111-2222-2bbb-11111 exemple #{DeployVariables.StackSetId}

CodeCommit variables de sortie d'action

CodeCommit variables
Clé de variable Exemple de valeur Exemple de syntaxe de variable
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName développement #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage Correction d'un bug (taille maximale de 100 Ko) #{SourceVariables.CommitMessage}
CommitterDate 2019-10-29T03:32:21Z #{SourceVariables.CommitterDate}
RepositoryName myCodeCommitRepo #{SourceVariables.RepositoryName}

CodeStarSourceConnection variables de sortie d'action

CodeStarSourceConnectionvariables (Bitbucket Cloud GitHub, GitHub Enterprise Repository et GitLab .com)
Clé de variable Exemple de valeur Exemple de syntaxe de variable
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName développement #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage Correction d'un bug (taille maximale de 100 Ko) #{SourceVariables.CommitMessage}
ConnectionArn arn:aws:codestar-connections:region : account-id : connection/ connection-id #{SourceVariables.ConnectionArn}
FullRepositoryName nom d'utilisateur/ GitHubRepo #{SourceVariables.FullRepositoryName}

GitHub variables de sortie d'GitHub action (version d'action 1)

GitHub variables (GitHub action version 1)
Clé de variable Exemple de valeur Exemple de syntaxe de variable
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName principal #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage

Correction d'un bug (taille maximale de 100 Ko)

#{SourceVariables.CommitMessage}
CommitterDate 2019-10-29T03:32:21Z #{SourceVariables.CommitterDate}
CommitUrl #{SourceVariables.CommitUrl}
RepositoryName myGitHubRepo #{SourceVariables.RepositoryName}

Variables de sortie d'action S3

Variables S3
Clé de variable Exemple de valeur Exemple de syntaxe de variable
ETag example28be1c3 #{SourceVariables.ETag}
VersionId exampleta_IUQCv #{SourceVariables.VersionId}

Actions avec des touches variables configurées par l'utilisateur

Pour les actions CodeBuild AWS CloudFormation,, et Lambda, les clés variables sont configurées par l'utilisateur.

CloudFormation variables de sortie d'action

AWS CloudFormation variables
Clé de variable Exemple de syntaxe de variable

Pour les AWS CloudFormation actions, les variables sont produites à partir de toutes les valeurs désignées dans la Outputs section d'un modèle de pile. Notez que les seuls modes CloudFormation d'action qui génèrent des sorties sont ceux qui aboutissent à la création ou à la mise à jour d'une pile, tels que la création de pile, les mises à jour de piles et l'exécution d'ensembles de modifications. Les modes d'action correspondants qui génèrent des variables sont les suivants :

  • CREATE_UPDATE

  • CHANGE_SET_EXECUTE

  • CHANGE_SET_REPLACE

  • REPLACE_ON_FAILURE

Pour plus d'informations sur ces modes d'action, consultezAWS CloudFormation. Pour un didacticiel qui explique comment créer un pipeline avec une action de AWS CloudFormation déploiement dans un pipeline utilisant des variables AWS CloudFormation de sortie, voirTutoriel : Création d'un pipeline qui utilise des variables issues d'actions de AWS CloudFormation déploiement.
#{DeployVariables.StackName}

CodeBuild variables de sortie d'action

CodeBuild variables
Clé de variable Exemple de syntaxe de variable

Pour les CodeBuild actions, les variables sont produites à partir des valeurs générées par les variables d'environnement exportées. Configurez une variable d' CodeBuild environnement en modifiant votre CodeBuild action CodePipeline ou en ajoutant la variable d'environnement à la spécification de construction.

Ajoutez des instructions à votre spécification de CodeBuild construction pour ajouter la variable d'environnement dans la section des variables exportées. Voir env/exported-variables dans le guide de l'utilisateur.AWS CodeBuild

#{BuildVariables.EnvVar}

Variables de sortie de l'action Lambda

Variables Lambda
Clé de variable Exemple de syntaxe de variable
L'action Lambda produira sous forme de variables toutes les paires clé-valeur incluses dans la outputVariables section de la demande d'API. PutJobSuccessResult

Pour un didacticiel présentant une action Lambda qui utilise les variables d'une action en amont (CodeCommit) et génère des variables de sortie, voir. Tutoriel : Utilisation de variables avec des actions d'appel Lambda

#{TestVariables.testRunId}