View a markdown version of this page

Dichiarazione della pipeline - AWS CodePipeline

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à.

Dichiarazione della pipeline

Il livello di pipeline e metadati di una pipeline ha una struttura di base che include i parametri e la sintassi seguenti. Il parametro pipeline rappresenta la struttura delle azioni e delle fasi da eseguire nella pipeline.

Per ulteriori informazioni, consultate l'PipelineDeclarationoggetto nella Guida CodePipeline API.

L'esempio seguente mostra il livello della pipeline e dei metadati della struttura della pipeline in JSON e YAML per una pipeline di tipo V2.

YAML
pipeline: name: MyPipeline roleArn: >- arn:aws:iam::ACCOUNT_ID:role/service-role/AWSCodePipelineServiceRole-us-west-2-MyPipeline artifactStore: type: S3 location: amzn-s3-demo-bucket stages: ... version: 6 executionMode: SUPERSEDED pipelineType: V2 variables: - name: MyVariable defaultValue: '1' triggers: - providerType: CodeStarSourceConnection gitConfiguration: sourceActionName: Source push: - branches: includes: - main excludes: - feature-branch pullRequest: - events: - CLOSED branches: includes: - main* metadata: pipelineArn: 'arn:aws:codepipeline:us-west-2:ACCOUNT_ID:MyPipeline' created: '2019-12-12T06:49:02.733000+00:00' updated: '2020-09-10T06:34:07.447000+00:00' pollingDisabledAt: '2020-09-10T06:34:07.447000+00:00'
JSON
{ "pipeline": { "name": "MyPipeline", "roleArn": "arn:aws:iam::ACCOUNT_ID:role/service-role/AWSCodePipelineServiceRole-us-west-2-MyPipeline", "artifactStore": { "type": "S3", "location": "amzn-s3-demo-bucket" }, "stages": { ... }, "version": 6, "executionMode": "SUPERSEDED", "pipelineType": "V2", "variables": [ { "name": "MyVariable", "defaultValue": "1" } ], "triggers": [ { "providerType": "CodeStarSourceConnection", "gitConfiguration": { "sourceActionName": "Source", "push": [ { "branches": { "includes": [ "main" ], "excludes": [ "feature-branch" ] } } ], "pullRequest": [ { "events": [ "CLOSED" ], "branches": { "includes": [ "main*" ] } } ] } } ] }, "metadata": { "pipelineArn": "arn:aws:codepipeline:us-west-2:ACCOUNT_ID:MyPipeline", "created": "2019-12-12T06:49:02.733000+00:00", "updated": "2020-09-10T06:34:07.447000+00:00", "pollingDisabledAt": "2020-09-10T06:34:07.447000+00:00" } }

nome

Il nome della pipeline. Quando modifichi o aggiorni una pipeline, il nome della pipeline non può essere modificato.

Nota

Se vuoi rinominare una pipeline esistente, puoi utilizzare il comando get-pipeline dell'interfaccia a riga di comando per creare un file JSON che contiene la struttura della pipeline. Quindi puoi utilizzare il comando create-pipeline dell'interfaccia a riga di comando per creare una pipeline con quella struttura e assegnarle un nuovo nome.

roleArn

L'ARN IAM per il ruolo di servizio, ad esempio arn:aws:iam: :80398 CodePipeline _. EXAMPLE:role/CodePipeline Service_Role

Per utilizzare la console per visualizzare il ruolo ARN del servizio di pipeline anziché la struttura JSON, scegli la pipeline nella console, quindi scegli Impostazioni. Nella scheda Generale, viene visualizzato il campo ARN del ruolo del servizio.

ArtifactStore O ArtifactStores

Il artifactStore campo contiene il tipo e la posizione del bucket degli artefatti per una pipeline con tutte le azioni nella stessa regione. AWS Se aggiungi azioni in una regione diversa dalla pipeline, la artifactStores mappatura viene utilizzata per elencare il bucket di artefatti per ciascuna regione in cui vengono eseguite le azioni. AWS Quando crei o modifichi una pipeline, devi disporre di un bucket di artefatti nella regione della pipeline e di un bucket di artefatti per ogni regione in cui prevedi di eseguire un'operazione.

Nota

Nella struttura della pipeline, è necessario includere l'uno artifactStore o l'altro artifactStores nella pipeline, ma non è possibile utilizzarli entrambi. Se crei un'operazione tra Regioni nella pipeline, devi utilizzare artifactStores.

L'esempio seguente mostra la struttura di base per una pipeline con operazioni tra più regioni che usa il parametro artifactStores:

"pipeline": { "name": "YourPipelineName", "roleArn": "CodePipeline_Service_Role", "artifactStores": { "us-east-1": { "type": "S3", "location": "S3 artifact bucket name, such as amzn-s3-demo-bucket" }, "us-west-2": { "type": "S3", "location": "S3 artifact bucket name, such as amzn-s3-demo-bucket" } }, "stages": [ { ...

tipo

Il tipo di posizione per il bucket di artefatti, specificato come Amazon S3.

location

Il nome del bucket Amazon S3 generato automaticamente la prima volta che crei una pipeline utilizzando la console, ad esempio codepipeline-us-east-2-1234567890, o qualsiasi bucket Amazon S3 di cui esegui il provisioning a tale scopo

fasi

Questo parametro contiene il nome di ogni fase della pipeline. Per ulteriori informazioni sui parametri e sulla sintassi a livello di fase della struttura della pipeline, consultate l'StageDeclarationoggetto nella Guida API. CodePipeline

La struttura della pipeline per le fasi presenta i seguenti requisiti:

  • Una pipeline deve contenere almeno due fasi.

  • La prima fase di una pipeline deve contenere almeno un'operazione di origine. Può contenere solo operazioni di origine.

  • Solo la prima fase di una pipeline può contenere operazioni di origine.

  • Almeno una fase in ogni pipeline deve contenere un'operazione diversa da un'operazione di origine.

  • Tutti i nomi delle fasi all'interno di una pipeline devono essere univoci.

  • I nomi delle fasi non possono essere modificati nella CodePipeline console. Se modificate il nome di uno stage utilizzando il AWS CLI, e lo stage contiene un'azione con uno o più parametri segreti (ad esempio un token OAuth), il valore di tali parametri segreti non viene mantenuto. Dovrai immettere manualmente i valori dei parametri (mascherati da quattro asterischi nel JSON restituito da AWS CLI) e includerli nella struttura JSON.

Importante

Le pipeline che rimangono inattive per più di 30 giorni avranno il polling disabilitato per la pipeline. Per ulteriori informazioni, consultate il riferimento al polling DisabledAt in the pipeline structure. Per i passaggi per migrare la pipeline dal polling al rilevamento delle modifiche basato sugli eventi, consulta Metodi di rilevamento delle modifiche. Azioni all'origine e metodi di rilevamento delle modifiche

version

Il numero di versione di una pipeline viene generato automaticamente e cambia ogni volta che si aggiorna la pipeline.

executionMode

Puoi impostare la modalità di esecuzione della pipeline in modo da poter specificare il comportamento della pipeline per esecuzioni consecutive, come l'accodamento, la sostituzione o l'esecuzione in modalità parallela. Per ulteriori informazioni, consulta Imposta o modifica la modalità di esecuzione della pipeline.

Importante

Per le pipeline in modalità PARALLELA, lo stage rollback non è disponibile. Analogamente, le condizioni di errore con un tipo di risultato di rollback non possono essere aggiunte a una pipeline in modalità PARALLELA.

Tipo di pipeline

Il tipo di pipeline specifica la struttura e le funzionalità disponibili nella pipeline, ad esempio per una pipeline di tipo V2. Per ulteriori informazioni, consulta Tipi di pipeline.

variables

Le variabili a livello di pipeline vengono definite quando la pipeline viene creata e risolta in fase di esecuzione della pipeline. Per ulteriori informazioni, consulta Riferimento alle variabili. Per un tutorial con una variabile a livello di pipeline che viene passata al momento dell'esecuzione della pipeline, vedi. Tutorial: Usa variabili a livello di pipeline

trigger

I trigger consentono di configurare la pipeline in modo che inizi in base a un particolare tipo di evento o tipo di evento filtrato, ad esempio quando viene rilevata una modifica su un particolare ramo o una richiesta pull. I trigger sono configurabili per le azioni di origine con connessioni che utilizzano l'CodeStarSourceConnectionazione in CodePipeline, ad esempio, Bitbucket e GitHub. GitLab Per ulteriori informazioni sulle azioni di origine che utilizzano connessioni, vedere. Aggiungi fornitori di sorgenti di terze parti alle pipeline utilizzando CodeConnections

Per ulteriori informazioni ed esempi più dettagliati, vedereAutomatizza l'avvio delle pipeline utilizzando trigger e filtri.

Per il filtraggio, sono supportati i modelli di espressioni regolari in formato glob, come descritto in dettaglio in. Lavorare con i modelli a globo nella sintassi

Nota

Le azioni di origine di S3 CodeCommit e S3 richiedono una risorsa di rilevamento delle modifiche configurata (una EventBridge regola) o utilizzano l'opzione per interrogare il repository per individuare le modifiche all'origine. Per le pipeline con un'azione sorgente Bitbucket o GitHub Enterprise Server GitHub, non è necessario impostare un webhook o utilizzare di default il polling. L'azione connections gestisce il rilevamento delle modifiche per te.

Importante

Le pipeline che rimangono inattive per più di 30 giorni avranno il polling disabilitato per la pipeline. Per ulteriori informazioni, consultate il riferimento al polling DisabledAt in the pipeline structure. Per i passaggi per migrare la pipeline dal polling al rilevamento delle modifiche basato sugli eventi, consulta Metodi di rilevamento delle modifiche. Azioni all'origine e metodi di rilevamento delle modifiche

Campi GitConfiguration

La configurazione Git per il trigger, inclusi i tipi di eventi e tutti i parametri per il filtraggio per branch, percorsi di file, tag o eventi di pull request.

I campi nella struttura JSON sono definiti come segue:

  • sourceActionName: il nome dell'azione sorgente della pipeline con la configurazione Git.

  • push: invia eventi con filtro. Questi eventi utilizzano un'operazione OR tra diversi filtri push e un'operazione AND all'interno dei filtri.

    • branches: I rami su cui filtrare. Le filiali utilizzano un'operazione AND tra le inclusioni e le esclusioni.

      • includes: modelli in base ai quali filtrare in base ai rami che verranno inclusi. Include l'uso di un'operazione OR.

      • excludes: Schemi in base ai quali filtrare per individuare le filiali che verranno escluse. Esclude l'uso di un'operazione OR.

    • filePaths: i nomi dei percorsi dei file in base ai quali filtrare.

      • includes: modelli in base ai quali filtrare in base ai percorsi dei file che verranno inclusi. Include l'uso di un'operazione OR.

      • excludes: modelli in base ai quali filtrare in base ai percorsi dei file che verranno esclusi. Esclude l'uso di un'operazione OR.

    • tags: i nomi dei tag in base ai quali filtrare.

      • includes: modelli su cui filtrare per i tag che verranno inclusi. Include l'uso di un'operazione OR.

      • excludes: modelli in base ai quali filtrare i tag che verranno esclusi. Esclude l'uso di un'operazione OR.

  • pullRequest: eventi di richiesta pull con filtro sugli eventi di pull request e sui filtri di pull request.

    • events: filtra gli eventi di pull request aperti, aggiornati o chiusi, come specificato.

    • branches: i rami in base ai quali filtrare. Le filiali utilizzano un'operazione AND tra le inclusioni e le esclusioni.

      • includes: modelli in base ai quali filtrare in base ai rami che verranno inclusi. Include l'uso di un'operazione OR.

      • excludes: Schemi in base ai quali filtrare per individuare le filiali che verranno escluse. Esclude l'uso di un'operazione OR.

    • filePaths: i nomi dei percorsi dei file in base ai quali filtrare.

      • includes: modelli in base ai quali filtrare in base ai percorsi dei file che verranno inclusi. Include l'uso di un'operazione OR.

      • excludes: modelli su cui filtrare per i percorsi dei file che verranno esclusi. Esclude l'uso di un'operazione OR.

Di seguito è riportato un esempio della configurazione del trigger per i tipi di eventi di richiesta push e pull.

"triggers": [ { "provider": "Connection", "gitConfiguration": { "sourceActionName": "ApplicationSource", "push": [ { "filePaths": { "includes": [ "projectA/**", "common/**/*.js" ], "excludes": [ "**/README.md", "**/LICENSE", "**/CONTRIBUTING.md" ] }, "branches": { "includes": [ "feature/**", "release/**" ], "excludes": [ "mainline" ] }, "tags": { "includes": [ "release-v0", "release-v1" ], "excludes": [ "release-v2" ] } } ], "pullRequest": [ { "events": [ "CLOSED" ], "branches": { "includes": [ "feature/**", "release/**" ], "excludes": [ "mainline" ] }, "filePaths": { "includes": [ "projectA/**", "common/**/*.js" ], "excludes": [ "**/README.md", "**/LICENSE", "**/CONTRIBUTING.md" ] } } ] } } ],

Tipo di evento: campi push per includere ed escludere

Il comportamento di inclusione ed esclusione per i livelli dei campi di configurazione Git per i tipi di eventi push è mostrato nell'elenco seguente:

push (OR operation is used between push and pullRequest or multiples) filePaths (AND operation is used between filePaths, branches, and tags) includes (AND operation is used between includes and excludes) **/FILE.md, **/FILE2 (OR operation is used between file path names) excludes (AND operation is used between includes and excludes) **/FILE.md, **/FILE2 (OR operation is used between file path names) branches (AND operation is used between filePaths, branches, and tags) includes (AND operation is used between includes and excludes) BRANCH/**", "BRANCH2/** (OR operation is used between branch names) excludes (AND operation is used between includes and excludes) BRANCH/**", "BRANCH2/** (OR operation is used between branch names) tags (AND operation is used between filePaths, branches, and tags) includes (AND operation is used between includes and excludes) TAG/**", "TAG2/** (OR operation is used between tag names) excludes (AND operation is used between includes and excludes) TAG/**", "TAG2/** (OR operation is used between tag names)

Tipo di evento: campi di richiesta pull per l'inclusione e l'esclusione

Il comportamento di inclusione ed esclusione per i livelli dei campi di configurazione Git per i tipi di eventi di richiesta pull è mostrato nell'elenco seguente:

pullRequest (OR operation is used between push and pullRequest or multiples) events (AND operation is used between events, filePaths, and branches). Includes/excludes are N/A for pull request events. filePaths (AND operation is used between events, filePaths, and branches) includes (AND operation is used between includes and excludes) **/FILE.md, **/FILE2 (OR operation is used between file path names) excludes (AND operation is used between includes and excludes) **/FILE.md, **/FILE2 (OR operation is used between file path names) branches (AND operation is used between events, filePaths, and branches) includes (AND operation is used between includes and excludes) BRANCH/**", "BRANCH2/** (OR operation is used between branch names) excludes (AND operation is used between includes and excludes) BRANCH/**", "BRANCH2/** (OR operation is used between branch names)

metadati

I campi dei metadati della pipeline sono distinti dalla struttura della pipeline e non possono essere modificati. Quando aggiorni una pipeline, la data nel campo dei metadati updated viene modificata automaticamente.

pipelineArn

L'Amazon Resource Name (ARN) della pipeline.

Per utilizzare la console per visualizzare l'ARN della pipeline anziché la struttura JSON, scegli la pipeline nella console, quindi scegli Impostazioni. Nella scheda Generale, viene visualizzato il campo Pipeline ARN.

created

La data e l'ora di creazione della pipeline.

updated

La data e l'ora dell'ultimo aggiornamento della pipeline.

sondaggi DisabledAt

La data e l'ora in cui, per una pipeline configurata per il polling per il rilevamento delle modifiche, il polling è stato disabilitato.

Le pipeline inattive per più di 30 giorni avranno il polling disabilitato per la pipeline.

  • Il polling delle pipeline inattive verrà disattivato dopo 30 giorni di mancata esecuzione.

  • Le pipeline che utilizzano EventBridge, CodeStar Connessioni o webhook non saranno interessate.

  • Le pipeline attive non saranno interessate.

Per ulteriori informazioni, consultate il pollingDisabledAt parametro sotto PipelineMetadata object nella Guida CodePipeline API. Per i passaggi per migrare la pipeline dal polling al rilevamento delle modifiche basato sugli eventi, consulta Metodi di rilevamento delle modifiche.