Exemples d’utilisation de l’AWS CLI avec CodePipeline - AWS Command Line Interface

Exemples d’utilisation de l’AWS CLI avec CodePipeline

Les exemples de code suivants montrent comment réaliser des actions et mettre en œuvre des scénarios courants en utilisant l’AWS Command Line Interface avec CodePipeline.

Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la configuration et l’exécution du code en contexte.

Rubriques

Actions

L’exemple de code suivant montre comment utiliser acknowledge-job.

AWS CLI

Pour récupérer les informations sur une tâche spécifiée

Cet exemple renvoie les informations sur une tâche spécifiée, y compris son statut s’il existe. Ceci n’est utilisé que pour les exécutants de tâches et les actions personnalisées. Pour déterminer la valeur de nonce et l’ID de tâche, utilisez la commande aws codepipeline poll-for-jobs.

Commande :

aws codepipeline acknowledge-job --job-id f4f4ff82-2d11-EXAMPLE --nonce 3

Sortie :

{ "status": "InProgress" }
  • Pour plus de détails sur l’API, consultez AcknowledgeJob dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser create-custom-action-type.

AWS CLI

Pour créer une action personnalisée

Cet exemple crée une action personnalisée pour AWS CodePipeline à l’aide d’un fichier JSON déjà créé (ici nommé MyCustomAction.json) qui contient la structure de l’action personnalisée. Pour plus d’informations sur les conditions requises pour créer une action personnalisée, y compris la structure du fichier, consultez le Guide de l’utilisateur AWS CodePipeline.

aws codepipeline create-custom-action-type --cli-input-json file://MyCustomAction.json

Contenu du fichier JSON MyCustomAction.json :

{ "category": "Build", "provider": "MyJenkinsProviderName", "version": "1", "settings": { "entityUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/", "executionUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/lastSuccessfulBuild/{ExternalExecutionId}/" }, "configurationProperties": [ { "name": "MyJenkinsExampleBuildProject", "required": true, "key": true, "secret": false, "queryable": false, "description": "The name of the build project must be provided when this action is added to the pipeline.", "type": "String" } ], "inputArtifactDetails": { "maximumCount": 1, "minimumCount": 0 }, "outputArtifactDetails": { "maximumCount": 1, "minimumCount": 0 } }

Cette commande renvoie la structure de l’action personnalisée.

  • Pour plus de détails sur l’API, consultez CreateCustomActionType dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser create-pipeline.

AWS CLI

Pour créer un pipeline

Cet exemple crée un pipeline dans AWS CodePipeline à l’aide d’un fichier JSON déjà créé (ici nommé MySecondPipeline.json) qui contient la structure du pipeline. Pour plus d’informations sur les conditions requises pour créer un pipeline, y compris la structure du fichier, consultez le Guide de l’utilisateur AWS CodePipeline.

Commande :

aws codepipeline create-pipeline --cli-input-json file://MySecondPipeline.json

Contenu du fichier JSON en exemple :

{ "pipeline": { "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "awscodepipeline-demo-bucket", "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" }, "runOrder": 1 } ] }, { "name": "Beta", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "CodePipelineDemoFleet", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineDemoFleet" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "codepipeline-us-east-1-11EXAMPLE11" }, "name": "MySecondPipeline", "version": 1 } }

Sortie :

This command returns the structure of the pipeline.
  • Pour plus de détails sur l’API, consultez CreatePipeline dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser delete-custom-action-type.

AWS CLI

Pour supprimer une action personnalisée

Cet exemple supprime une action personnalisée dans AWS CodePipeline à l’aide d’un fichier JSON déjà créé (ici nommé DeleteMyCustomAction.json) qui contient le type d’action, le nom du fournisseur et le numéro de version de l’action à supprimer. Utilisez la commande list-action-types pour afficher les valeurs correctes pour la catégorie, la version et le fournisseur.

Commande :

aws codepipeline delete-custom-action-type --cli-input-json file://DeleteMyCustomAction.json

Contenu du fichier JSON en exemple :

{ "category": "Build", "version": "1", "provider": "MyJenkinsProviderName" }

Sortie :

None.
  • Pour plus de détails sur l’API, consultez DeleteCustomActionType dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser delete-pipeline.

AWS CLI

Pour supprimer un pipeline

Cet exemple supprime un pipeline nommé MySecondPipeline d’AWS CodePipeline. Utilisez la commande list-pipelines pour afficher une liste de tous les pipelines associés à votre compte AWS.

Commande :

aws codepipeline delete-pipeline --name MySecondPipeline

Sortie :

None.
  • Pour plus de détails sur l’API, consultez DeletePipeline dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser delete-webhook.

AWS CLI

Pour supprimer un webhook

L’exemple delete-webhook suivant supprime un webhook pour une action source GitHub version 1. Vous devez utiliser la commande deregister-webhook-with-third-party pour annuler l’enregistrement du webhook avant de le supprimer.

aws codepipeline delete-webhook \ --name my-webhook

Cette commande ne produit aucune sortie.

Pour plus d’informations, consultez Suppression du webhook pour votre source GitHub dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez DeleteWebhook dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser deregister-webhook-with-third-party.

AWS CLI

Pour annuler l’enregistrement d’un webhook

L’exemple deregister-webhook-with-third-party suivant supprime un webhook pour une action source GitHub version 1. Vous devez annuler l’enregistrement du webhook avant de supprimer ce dernier.

aws codepipeline deregister-webhook-with-third-party \ --webhook-name my-webhook

Cette commande ne produit aucune sortie.

Pour plus d’informations, consultez Suppression du webhook pour votre source GitHub dans le Guide de l’utilisateur AWS CodePipeline.

L’exemple de code suivant montre comment utiliser disable-stage-transition.

AWS CLI

Pour désactiver une transition vers une étape d’un pipeline

Cet exemple désactive les transitions vers l’étape bêta du pipeline MyFirstPipeline dans AWS CodePipeline.

Commande :

aws codepipeline disable-stage-transition --pipeline-name MyFirstPipeline --stage-name Beta --transition-type Inbound

Sortie :

None.
  • Pour plus de détails sur l’API, consultez DisableStageTransition dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser enable-stage-transition.

AWS CLI

Pour permettre la transition vers une étape dans un pipeline

Cet exemple permet de passer à l’étape bêta du pipeline MyFirstPipeline dans AWS CodePipeline.

Commande :

aws codepipeline enable-stage-transition --pipeline-name MyFirstPipeline --stage-name Beta --transition-type Inbound

Sortie :

None.
  • Pour plus de détails sur l’API, consultez EnableStageTransition dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-job-details.

AWS CLI

Pour obtenir les informations sur une tâche

Cet exemple renvoie les informations sur une tâche dont l’ID est représenté par f4f4ff82-2d11-EXAMPLE. Cette commande est uniquement utilisée pour les actions personnalisées. Lorsque cette commande est appelée, AWS CodePipeline renvoie les informations d’identification temporaires pour le compartiment Amazon S3 utilisé pour stocker les artefacts du pipeline, si nécessaire pour l’action personnalisée. Cette commande renvoie également toutes les valeurs secrètes définies pour l’action, le cas échéant.

Commande :

aws codepipeline get-job-details --job-id f4f4ff82-2d11-EXAMPLE

Sortie :

{ "jobDetails": { "accountId": "111111111111", "data": { "actionConfiguration": { "__type": "ActionConfiguration", "configuration": { "ProjectName": "MyJenkinsExampleTestProject" } }, "actionTypeId": { "__type": "ActionTypeId", "category": "Test", "owner": "Custom", "provider": "MyJenkinsProviderName", "version": "1" }, "artifactCredentials": { "__type": "AWSSessionCredentials", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "sessionToken": "fICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" }, "inputArtifacts": [ { "__type": "Artifact", "location": { "s3Location": { "bucketName": "codepipeline-us-east-1-11EXAMPLE11", "objectKey": "MySecondPipeline/MyAppBuild/EXAMPLE" }, "type": "S3" }, "name": "MyAppBuild" } ], "outputArtifacts": [], "pipelineContext": { "__type": "PipelineContext", "action": { "name": "MyJenkinsTest-Action" }, "pipelineName": "MySecondPipeline", "stage": { "name": "Testing" } } }, "id": "f4f4ff82-2d11-EXAMPLE" } }
  • Pour plus de détails sur l’API, consultez GetJobDetails dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-pipeline-state.

AWS CLI

Pour obtenir les informations sur l’état d’un pipeline

Cet exemple renvoie l’état le plus récent du pipeline nommé MyFirstPipeline.

Commande :

aws codepipeline get-pipeline-state --name MyFirstPipeline

Sortie :

{ "created": 1446137312.204, "pipelineName": "MyFirstPipeline", "pipelineVersion": 1, "stageStates": [ { "actionStates": [ { "actionName": "Source", "entityUrl": "https://console.aws.amazon.com/s3/home?#", "latestExecution": { "lastStatusChange": 1446137358.328, "status": "Succeeded" } } ], "stageName": "Source" }, { "actionStates": [ { "actionName": "CodePipelineDemoFleet", "entityUrl": "https://console.aws.amazon.com/codedeploy/home?#/applications/CodePipelineDemoApplication/deployment-groups/CodePipelineDemoFleet", "latestExecution": { "externalExecutionId": "d-EXAMPLE", "externalExecutionUrl": "https://console.aws.amazon.com/codedeploy/home?#/deployments/d-EXAMPLE", "lastStatusChange": 1446137493.131, "status": "Succeeded", "summary": "Deployment Succeeded" } } ], "inboundTransitionState": { "enabled": true }, "stageName": "Beta" } ], "updated": 1446137312.204 }
  • Pour plus de détails sur l’API, consultez GetPipelineState dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-pipeline.

AWS CLI

Pour afficher la structure d’un pipeline

Cet exemple renvoie la structure du pipeline nommé MyFirstPipeline.

Commande :

aws codepipeline get-pipeline --name MyFirstPipeline

Sortie :

{ "pipeline": { "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "awscodepipeline-demo-bucket", "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" }, "runOrder": 1 } ] }, { "name": "Beta", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "CodePipelineDemoFleet", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineDemoFleet" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "codepipeline-us-east-1-11EXAMPLE11" }, "name": "MyFirstPipeline", "version": 1 } }
  • Pour plus de détails sur l’API, consultez GetPipeline dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-action-executions.

AWS CLI

Pour répertorier les exécutions d’actions

L’exemple list-action-executions suivant affiche les informations sur l’exécution d’actions d’un pipeline, comme l’ID d’exécution des actions, les artefacts d’entrée et de sortie, le résultat de l’exécution et le statut.

aws codepipeline list-action-executions \ --pipeline-name myPipeline

Sortie :

{ "actionExecutionDetails": [ { "pipelineExecutionId": "EXAMPLE0-adfc-488e-bf4c-1111111720d3", "actionExecutionId": "EXAMPLE4-2ee8-4853-bd6a-111111158148", "pipelineVersion": 12, "stageName": "Deploy", "actionName": "Deploy", "startTime": 1598572628.6, "lastUpdateTime": 1598572661.255, "status": "Succeeded", "input": { "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "CodeDeploy", "version": "1" }, "configuration": { "ApplicationName": "my-application", "DeploymentGroupName": "my-deployment-group" }, "resolvedConfiguration": { "ApplicationName": "my-application", "DeploymentGroupName": "my-deployment-group" }, "region": "us-east-1", "inputArtifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "artifact-bucket", "key": "myPipeline/SourceArti/key" } } ], "namespace": "DeployVariables" }, "output": { "outputArtifacts": [], "executionResult": { "externalExecutionId": "d-EXAMPLEE5", "externalExecutionSummary": "Deployment Succeeded", "externalExecutionUrl": "https://myaddress.com" }, "outputVariables": {} } }, { "pipelineExecutionId": "EXAMPLE0-adfc-488e-bf4c-1111111720d3", "actionExecutionId": "EXAMPLE5-abb4-4192-9031-11111113a7b0", "pipelineVersion": 12, "stageName": "Source", "actionName": "Source", "startTime": 1598572624.387, "lastUpdateTime": 1598572628.16, "status": "Succeeded", "input": { "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "CodeCommit", "version": "1" }, "configuration": { "BranchName": "production", "PollForSourceChanges": "false", "RepositoryName": "my-repo" }, "resolvedConfiguration": { "BranchName": "production", "PollForSourceChanges": "false", "RepositoryName": "my-repo" }, "region": "us-east-1", "inputArtifacts": [], "namespace": "SourceVariables" }, "output": { "outputArtifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "amzn-s3-demo-bucket", "key": "myPipeline/SourceArti/key" } } ], "executionResult": { "externalExecutionId": "1111111ad99dcd35914c00b7fbea13995EXAMPLE", "externalExecutionSummary": "Edited template.yml", "externalExecutionUrl": "https://myaddress.com" }, "outputVariables": { "AuthorDate": "2020-05-08T17:45:43Z", "BranchName": "production", "CommitId": "EXAMPLEad99dcd35914c00b7fbea139951111111", "CommitMessage": "Edited template.yml", "CommitterDate": "2020-05-08T17:45:43Z", "RepositoryName": "my-repo" } } }, . . . .

Pour plus d’informations, consultez Affichage des exécutions des actions (interface de ligne de commande) dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez ListActionExecutions dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-action-types.

AWS CLI

Pour afficher les types d’actions disponibles

Utilisée seule, la commande list-action-types renvoie la structure de toutes les actions disponibles pour votre compte AWS. Cet exemple utilise l’option --action-owner-filter pour renvoyer uniquement les actions personnalisées.

Commande :

aws codepipeline list-action-types --action-owner-filter Custom

Sortie :

{ "actionTypes": [ { "inputArtifactDetails": { "maximumCount": 5, "minimumCount": 0 }, "actionConfigurationProperties": [ { "secret": false, "required": true, "name": "MyJenkinsExampleBuildProject", "key": true, "queryable": true } ], "outputArtifactDetails": { "maximumCount": 5, "minimumCount": 0 }, "id": { "category": "Build", "owner": "Custom", "version": "1", "provider": "MyJenkinsProviderName" }, "settings": { "entityUrlTemplate": "http://192.0.2.4/job/{Config:ProjectName}", "executionUrlTemplate": "http://192.0.2.4/job/{Config:ProjectName}/{ExternalExecutionId}" } }, { "inputArtifactDetails": { "maximumCount": 5, "minimumCount": 0 }, "actionConfigurationProperties": [ { "secret": false, "required": true, "name": "MyJenkinsExampleTestProject", "key": true, "queryable": true } ], "outputArtifactDetails": { "maximumCount": 5, "minimumCount": 0 }, "id": { "category": "Test", "owner": "Custom", "version": "1", "provider": "MyJenkinsProviderName" }, "settings": { "entityUrlTemplate": "http://192.0.2.4/job/{Config:ProjectName}", "executionUrlTemplate": "http://192.0.2.4/job/{Config:ProjectName}/{ExternalExecutionId}" } } ] }
  • Pour plus de détails sur l’API, consultez ListActionTypes dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-pipeline-executions.

AWS CLI

Pour afficher l’historique d’exécution du pipeline

L’exemple list-pipeline-executions suivant montre l’historique d’exécution d’un pipeline dans votre compte AWS.

aws codepipeline list-pipeline-executions \ --pipeline-name MyPipeline

Sortie :

{ "pipelineExecutionSummaries": [ { "lastUpdateTime": 1496380678.648, "pipelineExecutionId": "7cf7f7cb-3137-539g-j458-d7eu3EXAMPLE", "startTime": 1496380258.243, "status": "Succeeded" }, { "lastUpdateTime": 1496591045.634, "pipelineExecutionId": "3137f7cb-8d494hj4-039j-d84l-d7eu3EXAMPLE", "startTime": 1496590401.222, "status": "Succeeded" }, { "lastUpdateTime": 1496946071.6456, "pipelineExecutionId": "4992f7jf-7cf7-913k-k334-d7eu3EXAMPLE", "startTime": 1496945471.5645, "status": "Succeeded" } ] }

Pour plus d’informations, consultez Affichage de l’historique d’exécution dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez ListPipelineExecutions dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-pipelines.

AWS CLI

Pour afficher la liste des pipelines

Cet exemple répertorie tous les pipelines AWS CodePipeline associés au compte AWS de l’utilisateur.

Commande :

aws codepipeline list-pipelines

Sortie :

{ "pipelines": [ { "updated": 1439504274.641, "version": 1, "name": "MyFirstPipeline", "created": 1439504274.641 }, { "updated": 1436461837.992, "version": 2, "name": "MySecondPipeline", "created": 1436460801.381 } ] }
  • Pour plus de détails sur l’API, consultez ListPipelines dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-tags-for-resource.

AWS CLI

Pour afficher la liste des balises

L’exemple list-tags-for-resource suivant récupère une liste de toutes les balises associées à la ressource de pipeline spécifiée.

aws codepipeline list-tags-for-resource \ --resource-arn arn:aws:codepipeline:us-east-1:123456789012:MyPipeline

Sortie :

{ "tags": { "Project": "ProjectA", "IscontainerBased": "true" } }

Pour plus d’informations, consultez Affichage des balises d’un pipeline (interface de ligne de commande) dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez ListTagsForResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-webhooks.

AWS CLI

Pour répertorier des webhooks

L’exemple list-webhooks suivant récupère une liste de toutes les balises associées à la ressource de pipeline spécifiée.

aws codepipeline list-webhooks \ --endpoint-url "https://codepipeline.eu-central-1.amazonaws.com" \ --region "eu-central-1"

Sortie :

{ "webhooks": [ { "url": "https://webhooks.domain.com/trigger111111111EXAMPLE11111111111111111": { "authenticationConfiguration": { "SecretToken": "Secret" }, "name": "my-webhook", "authentication": "GITHUB_HMAC", "targetPipeline": "my-Pipeline", "targetAction": "Source", "filters": [ { "jsonPath": "$.ref", "matchEquals": "refs/heads/{Branch}" } ] }, "arn": "arn:aws:codepipeline:eu-central-1:123456789012:webhook:my-webhook" } ] }

Pour plus d’informations, consultez Affichage de la liste des webhooks de votre compte dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez ListWebhooks dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser poll-for-jobs.

AWS CLI

Pour afficher les tâches disponibles

Cet exemple renvoie les informations sur toutes les tâches sur lesquelles un exécutant de tâches doit agir. Cet exemple utilise un fichier JSON prédéfini (MyActionTypeInfo.json) pour fournir des informations sur le type d’action pour lequel l’exécutant de tâches traite les tâches. Cette commande est uniquement utilisée pour les actions personnalisées. Lorsque cette commande est appelée, AWS CodePipeline renvoie les informations d’identification temporaires pour le compartiment Amazon S3 utilisé pour stocker les artefacts du pipeline. Cette commande renvoie également toutes les valeurs secrètes définies pour l’action, le cas échéant.

Commande :

aws codepipeline poll-for-jobs --cli-input-json file://MyActionTypeInfo.json

Contenu du fichier JSON en exemple :

{ "actionTypeId": { "category": "Test", "owner": "Custom", "provider": "MyJenkinsProviderName", "version": "1" }, "maxBatchSize": 5, "queryParam": { "ProjectName": "MyJenkinsTestProject" } }

Sortie :

{ "jobs": [ { "accountId": "111111111111", "data": { "actionConfiguration": { "__type": "ActionConfiguration", "configuration": { "ProjectName": "MyJenkinsExampleTestProject" } }, "actionTypeId": { "__type": "ActionTypeId", "category": "Test", "owner": "Custom", "provider": "MyJenkinsProviderName", "version": "1" }, "artifactCredentials": { "__type": "AWSSessionCredentials", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "sessionToken": "fICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" }, "inputArtifacts": [ { "__type": "Artifact", "location": { "s3Location": { "bucketName": "codepipeline-us-east-1-11EXAMPLE11", "objectKey": "MySecondPipeline/MyAppBuild/EXAMPLE" }, "type": "S3" }, "name": "MyAppBuild" } ], "outputArtifacts": [], "pipelineContext": { "__type": "PipelineContext", "action": { "name": "MyJenkinsTest-Action" }, "pipelineName": "MySecondPipeline", "stage": { "name": "Testing" } } }, "id": "ef66c259-64f9-EXAMPLE", "nonce": "3" } ] }
  • Pour plus de détails sur l’API, consultez PollForJobs dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser put-webhook.

AWS CLI

Pour créer un webhook

L’exemple put-webhook suivant crée un webhook pour une action source GitHub version 1. Après avoir créé le webhook, vous devez utiliser la commande register-webhook-with-third-party pour l’enregistrer.

aws codepipeline put-webhook \ --cli-input-json file://webhook_json.json \ --region "eu-central-1"

Contenu de webhook_json.json :

{ "webhook": { "name": "my-webhook", "targetPipeline": "pipeline_name", "targetAction": "source_action_name", "filters": [ { "jsonPath": "$.ref", "matchEquals": "refs/heads/{Branch}" } ], "authentication": "GITHUB_HMAC", "authenticationConfiguration": { "SecretToken": "secret" } } }

Sortie :

{ "webhook": { "url": "https://webhooks.domain.com/trigger111111111EXAMPLE11111111111111111", "definition": { "authenticationConfiguration": { "SecretToken": "secret" }, "name": "my-webhook", "authentication": "GITHUB_HMAC", "targetPipeline": "pipeline_name", "targetAction": "Source", "filters": [ { "jsonPath": "$.ref", "matchEquals": "refs/heads/{Branch}" } ] }, "arn": "arn:aws:codepipeline:eu-central-1:123456789012:webhook:my-webhook" }, "tags": [ { "key": "Project", "value": "ProjectA" } ] }

Pour plus d’informations, consultez Création d’un webhook pour une source GitHub dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez PutWebhook dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser retry-stage-execution.

AWS CLI

Pour tenter à nouveau une action qui a échoué

L’exemple retry-stage-execution suivant réessaie une étape dont l’action a échoué.

aws codepipeline retry-stage-execution \ --pipeline-name MyPipeline \ --stage-name Deploy \ --pipeline-execution-id b59babff-5f34-EXAMPLE \ --retry-mode FAILED_ACTIONS

Sortie :

{ "pipelineExecutionId": "b59babff-5f34-EXAMPLE" }

Pour plus d’informations, consultez Nouvelle tentative d’actions ayant échoué (interface de ligne de commande) dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez RetryStageExecution dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser start-pipeline-execution.

AWS CLI

Pour exécuter la dernière révision via un pipeline

Cet exemple exécute la dernière révision présente dans l’étape source d’un pipeline via le pipeline nommé « MyFirstPipeline ».

Commande :

aws codepipeline start-pipeline-execution --name MyFirstPipeline

Sortie :

{ "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE" }
  • Pour plus de détails sur l’API, consultez StartPipelineExecution dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser stop-pipeline-execution.

AWS CLI

Pour arrêter l’exécution d’un pipeline

L’exemple stop-pipeline-execution suivant montre par défaut comment attendre la fin des actions en cours, puis arrête le pipeline. Vous ne pouvez pas choisir d’arrêter et d’attendre si l’exécution est déjà à l’état Stopping. Vous pouvez choisir d’arrêter et d’abandonner une exécution déjà à l’état Stopping.

aws codepipeline stop-pipeline-execution \ --pipeline-name MyFirstPipeline \ --pipeline-execution-id d-EXAMPLE \ --reason "Stopping pipeline after the build action is done"

Cette commande ne renvoie aucun résultat.

Pour plus d’informations, consultez Arrêt de l’exécution d’un pipeline (interface de ligne de commande) dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez StopPipelineExecution dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser tag-resource.

AWS CLI

Pour baliser une ressource

L’exemple tag-resource suivant associe un ensemble de balises fournies à un pipeline. Utilisez cette commande pour ajouter ou modifier des balises.

aws codepipeline tag-resource \ --resource-arn arn:aws:codepipeline:us-east-1:123456789012:MyPipeline \ --tags key=Project,value=ProjectA key=IscontainerBased,value=true

Cette commande ne produit aucune sortie.

Pour plus d’informations, consultez Ajout de balises à un pipeline (interface de ligne de commande) dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez TagResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser untag-resource.

AWS CLI

Pour supprimer des balises AWS d’une ressource de connexions

L’exemple untag-resource suivant supprime une balise de la ressource spécifiée.

aws codepipeline untag-resource \ --resource-arn arn:aws:codepipeline:us-east-1:123456789012:MyPipeline \ --tag-keys Project IscontainerBased

Cette commande ne produit aucune sortie.

Pour plus d’informations, consultez Suppression des balises d’un pipeline (interface de ligne de commande) dans le Guide de l’utilisateur AWS CodePipeline.

  • Pour plus de détails sur l’API, consultez UntagResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser update-pipeline.

AWS CLI

Pour mettre à jour la structure d’un pipeline

Cet exemple utilise la commande update-pipeline avec l’argument --cli-input-json. Cet exemple utilise un fichier JSON prédéfini (MyFirstPipeline.json) pour mettre à jour la structure d’un pipeline. AWS CodePipeline reconnaît le nom du pipeline contenu dans le fichier JSON, puis applique les modifications apportées aux champs modifiés de la structure du pipeline pour mettre à jour ce dernier.

Suivez ces directives lors de la création du fichier JSON prédéfini :

Si vous travaillez avec une structure de pipeline extraite à l’aide de la commande get-pipeline, vous devez supprimer la section de métadonnées de la structure du pipeline dans le fichier JSON (les lignes « "metadata": { } » et les champs « created », « pipelineARN » et « updated » qu’elles contiennent). Le nom du pipeline ne peut pas être modifié.

Commande :

aws codepipeline update-pipeline --cli-input-json file://MyFirstPipeline.json

Exemple de contenu du fichier JSON :

{ "pipeline": { "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "awscodepipeline-demo-bucket2", "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" }, "runOrder": 1 } ] }, { "name": "Beta", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "CodePipelineDemoFleet", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineDemoFleet" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "codepipeline-us-east-1-11EXAMPLE11" }, "name": "MyFirstPipeline", "version": 1 } }

Sortie :

{ "pipeline": { "artifactStore": { "location": "codepipeline-us-east-1-11EXAMPLE11", "type": "S3" }, "name": "MyFirstPipeline", "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", "stages": [ { "actions": [ { "actionTypeId": { "__type": "ActionTypeId", "category": "Source", "owner": "AWS", "provider": "S3", "version": "1" }, "configuration": { "S3Bucket": "awscodepipeline-demo-bucket2", "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" }, "inputArtifacts": [], "name": "Source", "outputArtifacts": [ { "name": "MyApp" } ], "runOrder": 1 } ], "name": "Source" }, { "actions": [ { "actionTypeId": { "__type": "ActionTypeId", "category": "Deploy", "owner": "AWS", "provider": "CodeDeploy", "version": "1" }, "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineDemoFleet" }, "inputArtifacts": [ { "name": "MyApp" } ], "name": "CodePipelineDemoFleet", "outputArtifacts": [], "runOrder": 1 } ], "name": "Beta" } ], "version": 3 } }
  • Pour plus de détails sur l’API, consultez UpdatePipeline dans la Référence des commandes de l’AWS CLI.