CodePipeline esempi utilizzando AWS CLI - AWS Command Line Interface

Questa documentazione è valida AWS CLI solo per la versione 1. Per la documentazione relativa alla versione 2 di AWS CLI, consulta la Guida per l'utente della versione 2.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

CodePipeline esempi utilizzando AWS CLI

I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface with CodePipeline.

Le azioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

Il seguente esempio di codice mostra come utilizzareacknowledge-job.

AWS CLI

Come recuperare le informazioni relative a un processo specificato

Questo esempio restituisce le informazioni su un processo specificato, incluso il relativo stato, se esistente. Viene utilizzato solo per i worker del processo e le azioni personalizzate. Per determinare il valore di nonce e l'ID del lavoro, usa aws poll-for-jobs codepipeline.

Comando:

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

Output:

{ "status": "InProgress" }
  • Per i dettagli sull'API, consulta Command AcknowledgeJobReference AWS CLI .

Il seguente esempio di codice mostra come utilizzarecreate-custom-action-type.

AWS CLI

Come creare un’azione personalizzata

Questo esempio crea un'azione personalizzata per AWS CodePipeline l'utilizzo di un file JSON già creato (qui denominato MyCustomAction .json) che contiene la struttura dell'azione personalizzata. Per ulteriori informazioni sui requisiti per la creazione di un'azione personalizzata, inclusa la struttura del file, consulta la Guida per l'utente. AWS CodePipeline

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

Contenuto del file 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 } }

Questo comando restituisce la struttura dell’azione personalizzata.

Il seguente esempio di codice mostra come utilizzarecreate-pipeline.

AWS CLI

Come creare una pipeline

Questo esempio crea una pipeline AWS CodePipeline utilizzando un file JSON già creato (qui denominato MySecondPipeline .json) che contiene la struttura della pipeline. Per ulteriori informazioni sui requisiti per la creazione di una pipeline, inclusa la struttura del file, consulta la Guida per l'utente. AWS CodePipeline

Comando:

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

Contenuto del file JSON di esempio:

{ "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 } }

Output:

This command returns the structure of the pipeline.

Il seguente esempio di codice mostra come utilizzaredelete-custom-action-type.

AWS CLI

Come eliminare un’azione personalizzata

Questo esempio elimina un'azione personalizzata AWS CodePipeline utilizzando un file JSON già creato (qui denominato DeleteMyCustomAction .json) che contiene il tipo di azione, il nome del provider e il numero di versione dell'azione da eliminare. Utilizzate il list-action-types comando per visualizzare i valori corretti per categoria, versione e provider.

Comando:

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

Contenuto del file JSON di esempio:

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

Output:

None.

Il seguente esempio di codice mostra come utilizzaredelete-pipeline.

AWS CLI

Come eliminare una pipeline

Questo esempio elimina una pipeline denominata MySecondPipeline from. AWS CodePipeline Utilizzate il comando list-pipelines per visualizzare un elenco di pipeline associate al vostro account. AWS

Comando:

aws codepipeline delete-pipeline --name MySecondPipeline

Output:

None.
  • Per i dettagli sull'API, consulta DeletePipelineCommand Reference.AWS CLI

Il seguente esempio di codice mostra come utilizzaredelete-webhook.

AWS CLI

Come eliminare un webhook

L'delete-webhookesempio seguente elimina un webhook per un'azione di origine della GitHub versione 1. Prima di eliminare il webhook, devi annullarne la registrazione utilizzando il comando deregister-webhook-with-third-party.

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

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Eliminare il webhook dalla GitHub fonte nella Guida per l'AWS CodePipeline utente.

Il seguente esempio di codice mostra come utilizzarederegister-webhook-with-third-party.

AWS CLI

Come annullare la registrazione di un webhook

L'deregister-webhook-with-third-partyesempio seguente elimina un webhook per un'azione di origine della GitHub versione 1. Prima di eliminare il webhook, devi annullarne la registrazione.

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

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Eliminare il webhook dalla GitHub fonte nella Guida per l'AWS CodePipeline utente.

Il seguente esempio di codice mostra come utilizzaredisable-stage-transition.

AWS CLI

Come disabilitare una transizione verso una fase in una pipeline

Questo esempio disabilita le transizioni alla fase Beta della MyFirstPipeline pipeline in. AWS CodePipeline

Comando:

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

Output:

None.

Il seguente esempio di codice mostra come utilizzareenable-stage-transition.

AWS CLI

Come abilitare una transizione verso una fase in una pipeline

Questo esempio abilita le transizioni alla fase Beta della MyFirstPipeline pipeline in. AWS CodePipeline

Comando:

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

Output:

None.

Il seguente esempio di codice mostra come utilizzareget-job-details.

AWS CLI

Come ottenere i dettagli di un processo

Questo esempio restituisce i dettagli su un processo il cui ID è rappresentato da f4f4ff82-2d11-EXAMPLE. Questo comando viene utilizzato solo per le azioni personalizzate. Quando viene chiamato questo comando, AWS CodePipeline restituisce le credenziali temporanee per il bucket Amazon S3 utilizzato per archiviare gli artefatti per la pipeline, se necessario per l'azione personalizzata. Questo comando restituirà anche tutti i valori del segreto definiti per l’azione, se definiti.

Comando:

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

Output:

{ "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" } }
  • Per i dettagli sull'API, consulta Command Reference. GetJobDetailsAWS CLI

Il seguente esempio di codice mostra come utilizzareget-pipeline-state.

AWS CLI

Come ottenere informazioni sullo stato di una pipeline

Questo esempio restituisce lo stato più recente di una pipeline denominata MyFirstPipeline.

Comando:

aws codepipeline get-pipeline-state --name MyFirstPipeline

Output:

{ "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 }

Il seguente esempio di codice mostra come utilizzareget-pipeline.

AWS CLI

Come visualizzare la struttura di una pipeline

Questo esempio restituisce la struttura di una pipeline denominata MyFirstPipeline.

Comando:

aws codepipeline get-pipeline --name MyFirstPipeline

Output:

{ "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 } }
  • Per i dettagli sull'API, vedere GetPipelinein AWS CLI Command Reference.

Il seguente esempio di codice mostra come utilizzarelist-action-executions.

AWS CLI

Come elencare le esecuzioni di azioni

L’esempio list-action-executions seguente visualizza i dettagli di esecuzione di un’azione per una pipeline, ad esempio l’ID di esecuzione dell’azione, gli artefatti di input, gli artefatti di output, i risultati dell’esecuzione e lo stato.

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

Output:

{ "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" } } }, . . . .

Per ulteriori informazioni, consulta Visualizza esecuzioni di azioni (CLI) nella Guida per AWS CodePipeline l'utente.

Il seguente esempio di codice mostra come utilizzarelist-action-types.

AWS CLI

Come visualizzare i tipi di azione disponibili

Utilizzato da solo, il list-action-types comando restituisce la struttura di tutte le azioni disponibili per l' AWS account. Questo esempio utilizza l'action-owner-filter opzione -- per restituire solo azioni personalizzate.

Comando:

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

Output:

{ "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}" } } ] }
  • Per i dettagli sull'API, vedere ListActionTypesin AWS CLI Command Reference.

Il seguente esempio di codice mostra come utilizzarelist-pipeline-executions.

AWS CLI

Come visualizzare la cronologia di esecuzione delle pipeline

L'list-pipeline-executionsesempio seguente mostra la cronologia di esecuzione di una pipeline nel tuo AWS account.

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

Output:

{ "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" } ] }

Per ulteriori informazioni, consulta Visualizza la cronologia di esecuzione nella Guida per l'AWS CodePipeline utente.

Il seguente esempio di codice mostra come utilizzarelist-pipelines.

AWS CLI

Come visualizzare un elenco di pipeline

Questo esempio elenca tutte le AWS CodePipeline pipeline associate all' AWS account dell'utente.

Comando:

aws codepipeline list-pipelines

Output:

{ "pipelines": [ { "updated": 1439504274.641, "version": 1, "name": "MyFirstPipeline", "created": 1439504274.641 }, { "updated": 1436461837.992, "version": 2, "name": "MySecondPipeline", "created": 1436460801.381 } ] }
  • Per i dettagli sull'API, vedere ListPipelinesin AWS CLI Command Reference.

Il seguente esempio di codice mostra come utilizzarelist-tags-for-resource.

AWS CLI

Come elencare i tag

L’esempio list-tags-for-resource seguente recupera un elenco di tutti i tag collegati alla risorsa pipeline specificata.

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

Output:

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

Per ulteriori informazioni, consulta Visualizza i tag per una pipeline (CLI) nella Guida per AWS CodePipeline l'utente.

Il seguente esempio di codice mostra come utilizzarelist-webhooks.

AWS CLI

Come elencare i webhook

L’esempio list-webhooks seguente recupera un elenco di tutti i tag collegati alla risorsa pipeline specificata.

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

Output:

{ "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" } ] }

Per ulteriori informazioni, consulta Elenca i webhook presenti nel tuo account nella Guida per l'AWS CodePipeline utente.

  • Per i dettagli sull'API, consulta AWS CLI Command ListWebhooksReference.

Il seguente esempio di codice mostra come utilizzarepoll-for-jobs.

AWS CLI

Come visualizzare tutti i processi disponibili

Questo esempio restituisce le informazioni su qualsiasi processo su cui può agire un worker. Questo esempio utilizza un file JSON predefinito (MyActionTypeInfo.json) per fornire informazioni sul tipo di azione per cui il job worker elabora i job. Questo comando viene utilizzato solo per le azioni personalizzate. Quando viene chiamato questo comando, AWS CodePipeline restituisce le credenziali temporanee per il bucket Amazon S3 utilizzato per archiviare gli artefatti per la pipeline. Questo comando restituirà anche tutti i valori del segreto definiti per l’azione, se definiti.

Comando:

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

Contenuto del file JSON di esempio:

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

Output:

{ "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" } ] }
  • Per i dettagli sull'API, consulta Command Reference. PollForJobsAWS CLI

Il seguente esempio di codice mostra come utilizzareput-webhook.

AWS CLI

Come creare un webhook

L'put-webhookesempio seguente crea un webhook per un'azione di origine della GitHub versione 1. Dopo aver creato il webhook, è necessario utilizzare il comando register-webhook-with-third -party per registrarlo.

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

Contenuto di 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" } } }

Output:

{ "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" } ] }

Per ulteriori informazioni, consulta Creare un webhook per una GitHub fonte nella Guida per l'AWS CodePipeline utente.

Il seguente esempio di codice mostra come utilizzareretry-stage-execution.

AWS CLI

Come riprovare a eseguire un’azione non riuscita

L’esempio retry-stage-execution seguente ritenta una fase con un’azione non riuscita.

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

Output:

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

Per ulteriori informazioni, consulta Retry failed actions (CLI) nella Guida per AWS CodePipeline l'utente.

Il seguente esempio di codice mostra come utilizzarestart-pipeline-execution.

AWS CLI

Come eseguire la revisione più recente tramite una pipeline

Questo esempio esegue l'ultima revisione presente nella fase di origine di una pipeline tramite la pipeline denominata "». MyFirstPipeline

Comando:

aws codepipeline start-pipeline-execution --name MyFirstPipeline

Output:

{ "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE" }

Il seguente esempio di codice mostra come utilizzarestop-pipeline-execution.

AWS CLI

Come arrestare l’esecuzione di una pipeline

L’esempio stop-pipeline-execution seguente attende, per impostazione predefinita, il completamento delle azioni in corso e quindi arresta la pipeline. Non è possibile scegliere di interrompere e attendere se l’esecuzione è già in uno stato di arresto. È possibile scegliere di interrompere e abbandonare un’esecuzione già in uno stato di arresto.

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

Questo comando non restituisce alcun output.

Per ulteriori informazioni, consulta Arrestare l'esecuzione di una pipeline (CLI) nella Guida per AWS CodePipeline l'utente.

Il seguente esempio di codice mostra come utilizzaretag-resource.

AWS CLI

Come taggare a una risorsa

L’esempio tag-resource seguente associa un set di tag forniti a una connessione. Utilizza questo comando per aggiungere o modificare tag.

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

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Aggiungere tag a una pipeline (CLI) nella Guida per AWS CodePipeline l'utente.

  • Per i dettagli sull'API, consulta AWS CLI Command TagResourceReference.

Il seguente esempio di codice mostra come utilizzareuntag-resource.

AWS CLI

Per rimuovere i AWS tag da una risorsa di connessione

L’esempio untag-resource seguente rimuove un tag dalla risorsa specificata.

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

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Rimuovere tag da una pipeline (CLI) nella Guida per AWS CodePipeline l'utente.

  • Per i dettagli sull'API, consulta AWS CLI Command UntagResourceReference.

Il seguente esempio di codice mostra come utilizzareupdate-pipeline.

AWS CLI

Come aggiornare la struttura di una pipeline

Questo esempio utilizza il comando update-pipeline con l'argomento --. cli-input-json Questo esempio utilizza un file JSON predefinito (MyFirstPipeline.json) per aggiornare la struttura di una pipeline. AWS CodePipeline riconosce il nome della pipeline contenuto nel file JSON, quindi applica tutte le modifiche apportate ai campi modificati nella struttura della pipeline per aggiornare la pipeline.

Utilizza le linee guida seguenti per creare il file JSON predefinito:

Se utilizzi una struttura di pipeline recuperata mediante il comando get-pipeline, rimuovi la sezione dei metadati dalla struttura della pipeline nel file JSON, ovvero le righe “metadata”: { } e i campi “created”, “pipelineARN” e “updated” al loro interno. Il nome della pipeline non può essere modificato.

Comando:

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

Contenuto del file JSON di esempio:

{ "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 } }

Output:

{ "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 } }
  • Per i dettagli sull'API, consulta Command Reference. UpdatePipelineAWS CLI