View a markdown version of this page

Référence des actions des commandes - 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.

Référence des actions des commandes

L'action Commandes vous permet d'exécuter des commandes shell dans une instance de calcul virtuelle. Lorsque vous exécutez l'action, les commandes spécifiées dans la configuration de l'action sont exécutées dans un conteneur distinct. Tous les artefacts spécifiés comme artefacts d'entrée pour une CodeBuild action sont disponibles dans le conteneur qui exécute les commandes. Cette action vous permet de spécifier des commandes sans créer de CodeBuild projet au préalable. Pour plus d'informations, veuillez consulter les sections ActionDeclaration et OutputArtifact (français non garanti) de la Référence d'API AWS CodePipeline .

Important

Cette action utilise le CodeBuild calcul CodePipeline géré pour exécuter des commandes dans un environnement de génération. L'exécution de l'action des commandes entraînera des frais distincts dans AWS CodeBuild.

Note

L'action Commandes n'est disponible que pour les pipelines de type V2.

Considérations relatives à l'action des commandes

Les considérations suivantes s'appliquent à l'action Commandes.

  • L'action de commandes utilise CodeBuild des ressources similaires à l' CodeBuild action, tout en autorisant les commandes d'environnement shell dans une instance de calcul virtuelle sans qu'il soit nécessaire d'associer ou de créer un projet de génération.

    Note

    L'exécution de l'action des commandes entraînera des frais distincts dans AWS CodeBuild.

  • Étant donné que l'action CodeBuild Commandes CodePipeline utilise des ressources, les builds exécutés par l'action seront attribués aux limites de génération de votre compte dans CodeBuild. Les builds exécutés par l'action Commandes seront pris en compte dans les limites de génération simultanées configurées pour ce compte.

  • Le délai d'expiration des builds avec l'action Commandes est de 55 minutes, selon les CodeBuild builds.

  • L'instance de calcul utilise un environnement de génération isolé dans CodeBuild.

    Note

    Étant donné que l'environnement de génération isolé est utilisé au niveau du compte, une instance peut être réutilisée pour une autre exécution de pipeline.

  • Tous les formats sont pris en charge, à l'exception des formats multilignes. Vous devez utiliser le format sur une seule ligne lors de la saisie des commandes.

  • L'action des commandes est prise en charge pour les actions entre comptes. Pour ajouter une action de commande inter-comptes, ajoutez-la actionRoleArn depuis votre compte cible dans la déclaration d'action.

  • Pour cette action, CodePipeline assumera le rôle de service de pipeline et utilisera ce rôle pour autoriser l'accès aux ressources lors de l'exécution. Il est recommandé de configurer le rôle de service de manière à ce que les autorisations soient limitées au niveau de l'action.

  • Les autorisations ajoutées au rôle CodePipeline de service sont détaillées dansAjouter des autorisations au rôle CodePipeline de service.

  • L'autorisation requise pour afficher les journaux dans la console est détaillée dansAutorisations requises pour afficher les journaux de calcul dans la console.

  • Contrairement aux autres actions de CodePipeline, vous ne définissez pas de champs dans la configuration des actions ; vous définissez les champs de configuration des actions en dehors de la configuration des actions.

Autorisations relatives aux politiques de rôle de service

Lorsque l'action est CodePipeline exécutée, CodePipeline crée un groupe de journaux en utilisant le nom du pipeline comme suit. Cela vous permet de limiter les autorisations d'enregistrement des ressources à l'aide du nom du pipeline.

/aws/codepipeline/MyPipelineName

Si vous utilisez un rôle de service existant, pour utiliser l'action Commandes, vous devez ajouter les autorisations suivantes pour ce rôle de service.

  • journaux : CreateLogGroup

  • journaux : CreateLogStream

  • journaux : PutLogEvents

Dans la déclaration de politique relative aux rôles de service, réduisez les autorisations au niveau du pipeline, comme indiqué dans l'exemple suivant.

{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME", "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*" ] }

Pour afficher les journaux dans la console à l'aide de la page de dialogue des détails des actions, l'autorisation d'affichage des journaux doit être ajoutée au rôle de console. Pour plus d'informations, consultez l'exemple de politique d'autorisations de console dansAutorisations requises pour afficher les journaux de calcul dans la console.

Type d'action

  • Catégorie : Compute

  • Propriétaire : AWS

  • Fournisseur : Commands

  • Version : 1

Paramètres de configuration

Commandes

Obligatoire : oui

Vous pouvez fournir des commandes shell pour exécuter l'Commandsaction. Dans la console, les commandes sont saisies sur des lignes distinctes. Dans la CLI, les commandes sont saisies sous forme de chaînes distinctes.

Note

Multi-line les formats ne sont pas pris en charge et un message d'erreur s'affichera. Single-line format doit être utilisé pour saisir des commandes dans le champ Commandes.

Important

Les ComputeType valeurs EnvironmentType et correspondent à celles de CodeBuild. Nous prenons en charge un sous-ensemble des types disponibles. Pour de plus amples informations, veuillez consulter Types de calcul de l'environnement de génération.

EnvironmentType

Obligatoire : non

L'image du système d'exploitation de l'environnement de génération qui prend en charge l'action Commandes. Les valeurs valides pour les environnements de construction sont les suivantes :

  • LINUX_CONTAINER

  • WINDOWS_SERVER_2022_CONTAINER

La sélection de EnvironmentType autorisera ensuite le type de calcul pour ce système d'exploitation dans le ComputeType champ. Pour plus d'informations sur les types de CodeBuild calcul disponibles pour cette action, consultez la référence sur les modes et types de calcul de l'environnement de création dans le Guide de CodeBuild l'utilisateur.

Note

S'il n'est pas spécifié, le calcul prend par défaut la valeur suivante pour l'environnement de génération :

  • Type de calcul : BUILD_GENERAL1_SMALL

  • Type d'environnement : LINUX_CONTAINER

ComputeType

Obligatoire : non

Sur la base de la sélection pour EnvironmentType, le type de calcul peut être fourni. Les valeurs disponibles pour le calcul sont les suivantes. Notez toutefois que les options disponibles peuvent varier en fonction du système d'exploitation.

  • BUILD_GENERAL1_SMALL

  • BUILD_GENERAL1_MEDIUM

  • BUILD_GENERAL1_LARGE

Important

Certains types de calcul ne sont pas compatibles avec certains types d'environnement. Par exemple, WINDOWS_SERVER_2022_CONTAINER n'est pas compatible avec BUILD_GENERAL1_SMALL. L'utilisation de combinaisons incompatibles entraîne l'échec de l'action et génère une erreur d'exécution.

Variables de sortie

Obligatoire : non

Spécifiez les noms des variables de votre environnement que vous souhaitez exporter. Pour obtenir une référence sur les variables d' CodeBuild environnement, consultez la section Variables d'environnement dans les environnements de génération du Guide de CodeBuild l'utilisateur.

Fichiers

Obligatoire : non

Vous pouvez fournir les fichiers que vous souhaitez exporter en tant qu'artefacts de sortie pour l'action.

Le format pris en charge pour les fichiers est le même que pour les modèles de CodeBuild fichiers. Par exemple, entrez **/ pour tous les fichiers. Pour plus d'informations, consultez la section Créer une référence de spécification CodeBuild dans le Guide de CodeBuild l'utilisateur.

La page d'action Modifier pour un nouveau pipeline avec l'action Commandes
VpcId

Obligatoire : non

L'ID VPC de vos ressources.

Subnets

Obligatoire : non

Les sous-réseaux du VPC. Ce champ est nécessaire lorsque vos commandes doivent se connecter aux ressources d'un VPC.

SecurityGroupIds

Obligatoire : non

Les groupes de sécurité pour le VPC. Ce champ est nécessaire lorsque vos commandes doivent se connecter aux ressources d'un VPC.

Voici un exemple JSON de l'action avec des champs de configuration affichés pour l'environnement et le type de calcul, ainsi qu'un exemple de variable d'environnement.

{ "name": "Commands1", "actionTypeId": { "category": "Compute", "owner": "AWS", "provider": "Commands", "version": "1" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "commands": [ "ls", "echo hello", "echo $BEDROCK_TOKEN", ], "configuration": { "EnvironmentType": "LINUX_CONTAINER", "ComputeType": "BUILD_GENERAL1_MEDIUM" }, "environmentVariables": [ { "name": "BEDROCK_TOKEN", "value": "apiTokens:bedrockToken", "type": "SECRETS_MANAGER" } ], "runOrder": 1 }

Artefacts d'entrée

  • Nombre d'objets : 1 to 10

Artefacts de sortie

  • Nombre d'objets : 0 to 1

Variables d’environnement

Clé

La clé d'une paire de variables d'environnement clé-valeur, telle que. BEDROCK_TOKEN

Value

La valeur de la paire clé-valeur, telle que. apiTokens:bedrockToken La valeur peut être paramétrée à l'aide de variables de sortie issues d'actions de pipeline ou de variables de pipeline.

Lorsque vous utilisez le SECRETS_MANAGER type, cette valeur doit être le nom d'un secret que vous avez déjà stocké dans AWS Secrets Manager.

Type

Spécifie le type d'utilisation de la valeur de la variable d'environnement. La valeur peut être PLAINTEXT ou SECRETS_MANAGER. Si la valeur estSECRETS_MANAGER, indiquez la référence Secrets dans la EnvironmentVariable valeur. Si rien spécifié, la valeur par défaut est PLAINTEXT.

Note

Nous déconseillons vivement l'utilisation de variables d'environnement en texte brut pour stocker des valeurs sensibles, en particulier AWS des informations d'identification. Lorsque vous utilisez la CodeBuild console ou AWS CLI, les variables d'environnement en texte brut sont affichées en texte brut. Pour les valeurs sensibles, nous vous recommandons d'utiliser plutôt le type SECRETS_MANAGER.

Note

Lorsque vous entrez la configuration namevalue, et type pour vos variables d'environnement, en particulier si la variable d'environnement contient la syntaxe de la variable de CodePipeline sortie, ne dépassez pas la limite de 1 000 caractères pour le champ de valeur de la configuration. Une erreur de validation est renvoyée lorsque cette limite est dépassée.

Pour un exemple de déclaration d'action montrant une variable d'environnement, consultezParamètres de configuration.

Note
  • Le SECRETS_MANAGER type n'est pris en charge que pour l'action Commandes.

  • Les secrets référencés dans l'action Commandes seront supprimés dans les journaux de construction de la même manière que CodeBuild. Toutefois, les utilisateurs du pipeline qui disposent d'un accès de modification au pipeline peuvent toujours accéder à ces valeurs secrètes en modifiant les commandes.

  • Pour utiliser le SecretsManager, vous devez ajouter les autorisations suivantes à votre rôle de service de pipeline :

    { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "SECRET_ARN" ] }

Autorisations relatives aux rôles de service : action des commandes

Pour la prise en charge des commandes, ajoutez ce qui suit à votre déclaration de politique :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:iam::*:role/Service*", "arn:aws:iam::*:role/Service*" ] } ] }

Déclaration d'action (exemple)

YAML
name: Commands_action actionTypeId: category: Compute owner: AWS provider: Commands version: '1' runOrder: 1 configuration: {} commands: - ls - echo hello - 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}' outputArtifacts: - name: BuildArtifact files: - **/ inputArtifacts: - name: SourceArtifact outputVariables: - AWS_DEFAULT_REGION region: us-east-1 namespace: compute
JSON
{ "name": "Commands_action", "actionTypeId": { "category": "Compute", "owner": "AWS", "provider": "Commands", "version": "1" }, "runOrder": 1, "configuration": {}, "commands": [ "ls", "echo hello", "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}" ], "outputArtifacts": [ { "name": "BuildArtifact", "files": [ "**/" ] } ], "inputArtifacts": [ { "name": "SourceArtifact" } ], "outputVariables": [ "AWS_DEFAULT_REGION" ], "region": "us-east-1", "namespace": "compute" }

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.