Esempi di CodePipeline che utilizzano la AWS CLI - AWS Command Line Interface

Esempi di CodePipeline che utilizzano la AWS CLI

Negli esempi di codice seguenti viene mostrato come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface con CodePipeline.

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

Ogni esempio include un link al codice sorgente completo, dove è possibile trovare le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Operazioni

L’esempio di codice seguente mostra come utilizzare acknowledge-job.

AWS CLI

Come recuperare le informazioni relative a un processo specificato

In questo esempio vengono restituite 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 processo, utilizza aws codepipeline poll-for-jobs.

Comando:

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

Output:

{ "status": "InProgress" }
  • Per informazioni dettagliate sull’API, consulta AcknowledgeJob in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare create-custom-action-type.

AWS CLI

Come creare un’azione personalizzata

In questo esempio viene creata un’azione personalizzata per AWS CodePipeline utilizzando 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 di 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.

L’esempio di codice seguente mostra come utilizzare create-pipeline.

AWS CLI

Per creare una pipeline

In questo esempio, in AWS CodePipeline viene creata una pipeline utilizzando un file JSON precedentemente creato (in questo caso 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 di 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.
  • Per informazioni dettagliate sull’API, consulta CreatePipeline in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare delete-custom-action-type.

AWS CLI

Come eliminare un’azione personalizzata

In questo esempio viene eliminata un’azione personalizzata in AWS CodePipeline utilizzando un file JSON precedentemente creato (in questo caso denominato DeleteMyCustomAction.json) e contenente il tipo di azione, il nome del provider e il numero di versione dell’azione da eliminare. Utilizza il comando list-action-types 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.

L’esempio di codice seguente mostra come utilizzare delete-pipeline.

AWS CLI

Per eliminare una pipeline

In questo esempio, una pipeline denominata MySecondPipeline viene eliminata da AWS CodePipeline. Utilizza il comando list-pipelines per visualizzare l’elenco delle pipeline associate all’account AWS in uso.

Comando:

aws codepipeline delete-pipeline --name MySecondPipeline

Output:

None.
  • Per informazioni dettagliate sull’API, consulta DeletePipeline in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare delete-webhook.

AWS CLI

Come eliminare un webhook

L’esempio delete-webhook seguente elimina un webhook per un’azione di origine 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 Eliminazione del webhook per l’origine GitHub nella Guida per l’utente di AWS CodePipeline.

  • Per informazioni dettagliate sull’API, consulta DeleteWebhook in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare deregister-webhook-with-third-party.

AWS CLI

Come annullare la registrazione di un webhook

L’esempio deregister-webhook-with-third-party seguente elimina un webhook per un’azione di origine 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 Eliminazione del webhook per l’origine GitHub nella Guida per l’utente di AWS CodePipeline.

L’esempio di codice seguente mostra come utilizzare disable-stage-transition.

AWS CLI

Come disabilitare una transizione verso una fase in una pipeline

In questo esempio vengono disabilitate le transizioni verso la fase Beta della pipeline MyFirstPipeline in AWS CodePipeline.

Comando:

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

Output:

None.

L’esempio di codice seguente mostra come utilizzare enable-stage-transition.

AWS CLI

Come abilitare una transizione verso una fase in una pipeline

In questo esempio vengono abilitate le transizioni verso la fase Beta della pipeline MyFirstPipeline in AWS CodePipeline.

Comando:

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

Output:

None.

L’esempio di codice seguente mostra come utilizzare get-job-details.

AWS CLI

Come ottenere i dettagli di un processo

In questo esempio vengono restituiti i dettagli su un processo il cui ID è rappresentato da f4f4ff82-2d11-EXAMPLE. Questo comando viene utilizzato solo per le azioni personalizzate. Quando questo comando viene chiamato, AWS CodePipeline restituisce credenziali temporanee per il bucket Amazon S3 utilizzato per archiviare gli artefatti per la pipeline, se richiesto dall’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 informazioni dettagliate sull’API, consulta GetJobDetails in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare get-pipeline-state.

AWS CLI

Come ottenere informazioni sullo stato di una pipeline

In questo esempio viene restituito 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 }
  • Per informazioni dettagliate sull’API, consulta GetPipelineState in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare get-pipeline.

AWS CLI

Come visualizzare la struttura di una pipeline

In questo esempio viene restituita 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 informazioni dettagliate sull’API, consulta GetPipeline in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare list-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 Visualizzazione delle esecuzioni delle operazioni (CLI) nella Guida per l’utente di AWS CodePipeline.

  • Per informazioni dettagliate sull’API, consulta ListActionExecutions in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare list-action-types.

AWS CLI

Come visualizzare i tipi di azione disponibili

Utilizzato da solo, il comando list-action-types restituisce la struttura di tutte le azioni disponibili per l’account AWS in uso. In questo esempio viene utilizzata l’opzione --action-owner-filter per restituire solo le 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 informazioni dettagliate sull’API, consulta ListActionTypes in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare list-pipeline-executions.

AWS CLI

Come visualizzare la cronologia di esecuzione delle pipeline

L’esempio list-pipeline-executions seguente mostra la cronologia di esecuzione della pipeline per una pipeline nel tuo account AWS.

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 Visualizzazione della cronologia delle esecuzioni nella Guida per l’utente di AWS CodePipeline.

L’esempio di codice seguente mostra come utilizzare list-pipelines.

AWS CLI

Per visualizzare un elenco di pipeline

In questo esempio vengono elencate tutte le pipeline di AWS CodePipeline associate all’account AWS 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 informazioni dettagliate sull’API, consulta ListPipelines in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare list-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 Visualizzazione di tag per una pipeline (CLI) nella Guida per l’utente di AWS CodePipeline.

  • Per informazioni dettagliate sull’API, consulta ListTagsForResource in Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare list-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 Elenco di webhook nell’account nella Guida per l’utente di AWS CodePipeline.

  • Per informazioni dettagliate sull’API, consulta ListWebhooks in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare poll-for-jobs.

AWS CLI

Come visualizzare tutti i processi disponibili

In questo esempio vengono restituite le informazioni su qualsiasi processo su cui può un worker agire. In questo esempio viene utilizzato un file JSON predefinito (MyActionTypeInfo.json) per fornire informazioni sul tipo di azione per cui il worker del processo elabora i processi. Questo comando viene utilizzato solo per le azioni personalizzate. Quando questo comando viene chiamato, AWS CodePipeline restituisce 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 informazioni dettagliate sull’API, consulta PollForJobs in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare put-webhook.

AWS CLI

Come creare un webhook

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

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 Creazione di un webhook per un’origine GitHub nella Guida per l’utente di AWS CodePipeline.

  • Per informazioni dettagliate sull’API, consulta PutWebhook in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare retry-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 Nuovo tentativo di operazioni non riuscite (CLI) nella AWSCodePipeline User Guide.

  • Per informazioni dettagliate sull’API, consulta RetryStageExecution in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare start-pipeline-execution.

AWS CLI

Come eseguire la revisione più recente tramite una pipeline

In questo esempio viene eseguita 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" }

L’esempio di codice seguente mostra come utilizzare stop-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 Arresto dell’esecuzione di una pipeline (CLI) nella Guida per l’utente di AWS CodePipeline.

L’esempio di codice seguente mostra come utilizzare tag-resource.

AWS CLI

Come aggiungere un tag 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 Aggiunta di tag a una pipeline (CLI) nella Guida per l’utente di AWS CodePipeline.

  • Per informazioni dettagliate sull’API, consulta TagResource in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare untag-resource.

AWS CLI

Come rimuovere i tag AWS 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 Rimozione di tag da una pipeline (CLI) nella Guida per l’utente di AWS CodePipeline.

  • Per informazioni dettagliate sull’API, consulta UntagResource in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare update-pipeline.

AWS CLI

Come aggiornare la struttura di una pipeline

In questo esempio, il comando update-pipeline viene utilizzato con l’argomento --cli-input-json. In questo esempio viene utilizzato un file JSON predefinito (MyFirstPipeline.json) per aggiornare la struttura di una pipeline AWS. CodePipeline riconosce il nome della pipeline contenuta nel file JSON e applica eventuali modifiche apportate ai campi nella struttura della pipeline per aggiornarla.

Per creare il file JSON predefinito, utilizza le linee guida seguenti:

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 informazioni dettagliate sull’API, consulta UpdatePipeline in AWS CLI Command Reference.