View a markdown version of this page

Déclaration d'action - 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.

Déclaration d'action

Le niveau d'action d'un pipeline possède une structure de base qui inclut les paramètres et la syntaxe suivants. Pour plus d'informations, consultez l'ActionDeclarationobjet dans le Guide de CodePipeline l'API.

L'exemple suivant montre le niveau d'action de la structure du pipeline à la fois en JSON et en YAML.

YAML
. . . stages: - name: Source actions: - name: Source actionTypeId: category: Source owner: AWS provider: S3 version: '1' runOrder: 1 configuration: PollForSourceChanges: 'false' S3Bucket: amzn-s3-demo-bucket S3ObjectKey: codedeploy_linux.zip outputArtifacts: - name: SourceArtifact inputArtifacts: [] region: us-west-2 namespace: SourceVariables - name: Build actions: - name: Build actionTypeId: category: Build owner: AWS provider: CodeBuild version: '1' runOrder: 1 configuration: EnvironmentVariables: >- [{"name":"ETag","value":"#{SourceVariables.ETag}","type":"PLAINTEXT"}] ProjectName: my-project outputArtifacts: - name: BuildArtifact inputArtifacts: - name: SourceArtifact region: us-west-2 namespace: BuildVariables runOrder: 1 configuration: CustomData: >- Here are the exported variables from the build action: S3 ETAG: #{BuildVariables.ETag} outputArtifacts: [] inputArtifacts: [] region: us-west-2
JSON
. . . "stages": [ { "name": "Source", "actions": [ { "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "S3", "version": "1" }, "runOrder": 1, "configuration": { "PollForSourceChanges": "false", "S3Bucket": "amzn-s3-demo-bucket", "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "inputArtifacts": [], "region": "us-west-2", "namespace": "SourceVariables" } ] }, { "name": "Build", "actions": [ { "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "provider": "CodeBuild", "version": "1" }, "runOrder": 1, "configuration": { "EnvironmentVariables": "[{\"name\":\"ETag\",\"value\":\"#{SourceVariables.ETag}\",\"type\":\"PLAINTEXT\"}]", "ProjectName": "my-build-project" }, "outputArtifacts": [ { "name": "BuildArtifact" } ], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-west-2", "namespace": "BuildVariables" } ] . . .

Pour obtenir la liste des exemples des détails de configuration correspondant au type de fournisseur, consultez Paramètres de configuration valides pour chaque type de fournisseur.

La structure de l'action impose les critères suivants :

  • Tous les noms des actions d'une étape doivent être uniques.

  • Une action à la source est requise pour chaque pipeline.

  • Les actions de source qui n'utilisent pas de connexion peuvent être configurées pour détecter les modifications ou pour désactiver la détection des modifications. Voir Méthodes de détection des modifications.

  • Cela s'applique à toutes les actions, qu'elles se trouvent dans la même étape ou dans les étapes suivantes, mais l'artefact d'entrée ne doit pas nécessairement être l'action suivant immédiatement celle ayant fourni l'artefact de sortie. Les actions en parallèle peuvent déclarer différents lots d'artefacts de sortie, qui sont ensuite utilisés par différentes actions subséquentes.

  • Lorsque vous utilisez un compartiment Amazon S3 comme lieu de déploiement, vous spécifiez également une clé d'objet. Une clé d'objet peut être un nom de fichier (objet) ou une combinaison d'un préfixe (chemin d'accès à un dossier) et d'un nom de fichier. Vous pouvez utiliser des variables pour spécifier le nom de l'emplacement que vous souhaitez que le pipeline utilise. Les actions de déploiement Amazon S3 prennent en charge l'utilisation des variables suivantes dans les clés d'objet Amazon S3.

    Utilisation de variables dans Amazon S3
    Variable Exemple d'entrée de console Output
    datetime js-application/{datetime}.zip Horodatage UTC dans ce format : <AAAA>-<MM>-JJ>_<HH>-<MM>-<SS>

    Exemple :

    js- application/2019 -01-10_07-39-57.zip

    uuid js-application/{uuid}.zip L'UUID est un identifiant unique international qui est garanti différent de n'importe quel autre identifiant. L'UUID est au format suivant (tous les chiffres au format hexadécimal) : <8 chiffres>-<4 chiffres>-4 chiffres>-<4 chiffres>-<12 chiffres>

    Exemple :

    js- application/54a60075 -b96a-4bf3-9013-Db3a9 EXAMPLE.zip

name

Le nom de l'action.

region

Pour les actions où le fournisseur est un Service AWS, le Région AWS nom de la ressource.

Cross-Region les actions utilisent le Region champ pour indiquer l' Région AWS endroit où les actions doivent être créées. Les AWS ressources créées pour cette action doivent être créées dans la même région que celle prévue region sur le terrain. Vous ne pouvez pas créer d'actions inter-régions pour les types d'action suivants :

  • Actions source

  • Actions par des fournisseurs tiers

  • Actions par des fournisseurs personnalisés

roleArn

ARN du rôle de service IAM qui effectue l'action déclarée. Cela est supposé par le biais du ROLearn qui est spécifié au niveau du pipeline.

espace de nom

Les actions peuvent être configurées avec des variables. Vous utilisez le champ namespace pour définir l'espace de noms et les informations de variable pour les variables d'exécution. Pour plus d'informations sur les variables d'exécution et les variables de sortie d'action, consultez Référence des variables.

Note

Pour Amazon ECR, Amazon S3 ou les CodeCommit sources, vous pouvez également créer un remplacement de source à l'aide d'une entrée de transformation en entrée EventBridge pour utiliser l'revisionValueentrée de votre événement de pipeline, où le revisionValue est dérivé de la variable d'événement source pour votre clé d'objet, votre commit ou votre ID d'image. Pour plus d'informations, consultez l'étape facultative pour la saisie de la transformation d'entrée incluse dans les procédures sous Actions et ressources relatives aux sources Amazon ECR EventBridgeConnexion aux actions de source Amazon S3 avec une source activée pour les événements, ouCodeCommit actions à la source et EventBridge.

action TypeId

L'ID du type d'action est identifié comme une combinaison des quatre champs suivants.

category

Type d'action, ou étape, du pipeline, telle qu'une action source. Chaque type d'action possède un ensemble spécifique de fournisseurs d'actions valides. Pour obtenir la liste des fournisseurs valides par type d'action, consultez leRéférence sur la structure des actions.

Voici les actionTypeId catégories valides (types d'actions) pour CodePipeline :

  • Source

  • Build

  • Approval

  • Deploy

  • Test

  • Invoke

  • Compute

owner

Pour tous les types d'actions actuellement pris en charge, la seule chaîne propriétaire valide est AWSThirdParty, ouCustom. Pour connaître la chaîne propriétaire valide pour une action spécifique, consultez leRéférence sur la structure des actions.

Pour plus d’informations, consultez la Référence des API CodePipeline .

version

Version de l'action.

provider

Le fournisseur de l'action, tel que CodeBuild.

  • Les types de fournisseur valides pour une catégorie d'action dépendent de la catégorie. Par exemple, pour une catégorie d'action source, un type de fournisseur valide est S3CodeStarSourceConnection,CodeCommit, ouAmazon ECR. Cet exemple illustre la structure pour une action source avec un fournisseur S3 :

    "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3"},

InputArtifacts

Ce champ contient la structure d'artefact en entrée, si elle est prise en charge pour la catégorie d'action. L'artefact d'entrée d'une action doit correspondre exactement à l'artefact de sortie déclaré lors d'une action précédente. Par exemple, si une action précédente comprend la déclaration suivante :

"outputArtifacts": [ { "MyApp" } ],

et il n'y a pas d'autres artefacts de sortie, alors l'artefact d'entrée d'une action suivante doit être :

"inputArtifacts": [ { "MyApp" } ],

Par exemple, une action source ne peut pas comporter d'artefacts d'entrée car il s'agit de la première action du pipeline. Cependant, une action source contiendra toujours des artefacts de sortie qui sont traités par l'action suivante. Les artefacts de sortie d'une action source sont les fichiers d'application du référentiel source, compressés et fournis via le compartiment d'artefacts, qui sont traités par l'action suivante, telle qu'une CodeBuild action agissant sur les fichiers de l'application à l'aide de commandes de génération.

À titre d'exemple d'actions qui ne peuvent pas comporter d'artefacts de sortie, les actions de déploiement ne comportent pas d'artefacts de sortie car il s'agit généralement de la dernière action d'un pipeline.

name

Le nom de l'artefact pour les artefacts d'entrée de l'action.

Artefacts de sortie

Les noms des artefacts de sortie doivent être uniques dans un pipeline. Par exemple, un pipeline peut inclure une action dotée d'un artefact de sortie nommé "MyApp" et une autre action dotée d'un artefact de sortie nommé "MyBuiltApp". Cependant, un pipeline ne peut pas contenir deux actions contenant toutes deux un artefact de sortie nommé "MyApp".

Ce champ contient la structure de l'artefact en sortie, si elle est prise en charge pour la catégorie d'action. L'artefact de sortie d'une action doit correspondre exactement à l'artefact de sortie déclaré lors d'une action précédente. Par exemple, si une action précédente comprend la déclaration suivante :

"outputArtifacts": [ { "MyApp" } ],

et il n'y a pas d'autres artefacts de sortie, alors l'artefact d'entrée d'une action suivante doit être :

"inputArtifacts": [ { "MyApp" } ],

Par exemple, une action source ne peut pas comporter d'artefacts d'entrée car il s'agit de la première action du pipeline. Cependant, une action source contiendra toujours des artefacts de sortie qui sont traités par l'action suivante. Les artefacts de sortie d'une action source sont les fichiers d'application du référentiel source, compressés et fournis via le compartiment d'artefacts, qui sont traités par l'action suivante, telle qu'une CodeBuild action agissant sur les fichiers de l'application à l'aide de commandes de génération.

À titre d'exemple d'actions qui ne peuvent pas comporter d'artefacts de sortie, les actions de déploiement ne comportent pas d'artefacts de sortie car il s'agit généralement de la dernière action d'un pipeline.

name

Le nom de l'artefact pour les artefacts de sortie de l'action.

configuration (par fournisseur d'actions)

La configuration des actions contient des détails et des paramètres adaptés au type de fournisseur. Dans la section ci-dessous, les exemples de paramètres de configuration d'action sont spécifiques à l'action source S3.

La configuration des actions et les limites d' input/output artefacts peuvent varier en fonction du fournisseur d'actions. Pour obtenir une liste d'exemples de configuration d'actions par fournisseur d'actions, consultez Référence sur la structure des actions et le tableau dansParamètres de configuration valides pour chaque type de fournisseur. Le tableau fournit un lien vers la référence des actions pour chaque type de fournisseur, qui répertorie en détail les paramètres de configuration de chaque action. Pour un tableau présentant les limites d'artefacts en entrée et en sortie pour chaque fournisseur d'actions, consultezArtefacts d'entrée et de sortie valides pour chaque type d'action.

Les considérations suivantes s'appliquent à l'utilisation d'actions :

Note

Les actions source CodeCommit et S3 nécessitent soit une ressource de détection des modifications configurée (une EventBridge règle), soit l'utilisation de l'option permettant d'interroger le référentiel pour détecter les modifications apportées à la source. Pour les pipelines comportant une action source Bitbucket ou GitHub Enterprise Server, il n'est pas nécessaire de configurer un webhook ou de lancer un sondage par défaut. GitHub L'action Connections gère la détection des modifications pour vous.

Ordre d'exécution

Nombre entier positif qui indique l'ordre d'exécution de l'action au cours de l'étape. Les actions parallèles de l'étape sont affichées comme ayant le même entier. Par exemple, deux actions avec un ordre d'exécution de deux seront exécutées en parallèle après la première action de la phase.

La valeur par défaut runOrder pour une action est 1. La valeur doit être un nombre entier positif (nombre naturel). Vous ne pouvez pas utiliser des fractions, des nombres décimaux, négatifs ou zéro. Pour spécifier une séquence d'actions en série, utilisez le plus petit nombre pour la première action et les plus grands nombres pour chacune des autres actions de la séquence. Pour spécifier des actions parallèles, utilisez le même nombre entier pour chaque action que vous souhaitez exécuter en parallèle. Dans la console, vous pouvez spécifier une séquence en série pour une action en choisissant Ajouter un groupe d'actions au niveau de l'étape où vous souhaitez qu'elle s'exécute, ou vous pouvez spécifier une séquence parallèle en choisissant Ajouter une action. Le groupe d'actions fait référence à l'ordre d'exécution d'une ou de plusieurs actions au même niveau.

Par exemple, si vous souhaitez que trois actions s'exécutent en séquence dans une étape, vous devez attribuer à la première action runOrder la valeur 1, à la seconde action runOrder la valeur 2 et à la troisième runOrder la valeur 3. Toutefois, si vous souhaitez que les deuxième et troisième actions s'exécutent en parallèle, vous devez attribuer à la première action la runOrder valeur 1 et aux deuxième et troisième actions runOrder la valeur 2.

Note

La numérotation des actions en série ne doit pas nécessairement être dans un ordre strict. Par exemple, si vous avez trois actions dans une séquence et que vous décidez de supprimer la seconde action, vous n'avez pas besoin de réordonner la runOrder valeur de la troisième action. Comme la valeur runOrder de cette action (3) est supérieure à la valeur runOrder de la première action (1), elle s'exécute en série après la première action dans cette étape.