Riferimento alle variabili - 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à.

Riferimento alle variabili

Questa sezione è solo per riferimento. Per informazioni sulla creazione di variabili, vedere Utilizzo delle variabili.

Le variabili consentono di configurare le azioni della pipeline con valori determinati al momento dell'esecuzione della pipeline o dell'esecuzione dell'azione.

Alcuni provider di azioni producono un insieme definito di variabili. È possibile scegliere tra le chiavi variabili predefinite per tale provider di azioni, ad esempio l'ID di commit.

Importante

Quando passate parametri segreti, non inserite direttamente il valore. Il valore viene reso come testo in chiaro ed è quindi leggibile. Per motivi di sicurezza, non utilizzate testo semplice con segreti. Ti consigliamo vivamente di AWS Secrets Manager utilizzarlo per memorizzare i segreti.

Per vedere step-by-step esempi di utilizzo delle variabili:

Limiti variabili

Per informazioni sui limiti, vedere Quote in AWS CodePipeline.

Nota

Quando inserite la sintassi delle variabili nei campi di configurazione delle azioni, non superate il limite di 1000 caratteri per i campi di configurazione. Quando questo limite viene superato, viene restituito un errore di convalida.

Concetti

Questa sezione elenca i termini e i concetti chiave relativi alle variabili e agli spazi dei nomi.

Variables

Le variabili sono coppie chiave-valore che possono essere utilizzate per configurare dinamicamente le azioni nella pipeline. Attualmente esistono tre modi in cui queste variabili vengono rese disponibili:

  • Esiste un insieme di variabili che sono implicitamente disponibili all'inizio di ogni esecuzione della pipeline. Questo set include attualmente PipelineExecutionId, l'ID dell'esecuzione della pipeline corrente.

  • Le variabili a livello di pipeline vengono definite al momento della creazione della pipeline e risolte in fase di esecuzione della pipeline.

    Le variabili a livello di pipeline vengono specificate al momento della creazione della pipeline e possono fornire valori al momento dell'esecuzione della pipeline.

  • Ci sono tipi di azione che producono insiemi di variabili quando vengono eseguiti. È possibile visualizzare le variabili prodotte da un'azione esaminando il outputVariables campo che fa parte di. ListActionExecutionsAPI Per un elenco dei nomi delle chiavi disponibili per provider di azioni, vedere Variabili disponibili per le operazioni della pipeline. Per vedere quali variabili produce ogni tipo di azione, consulta CodePipeline Riferimento per la struttura delle operazioni.

Per fare riferimento a queste variabili nella configurazione dell'azione, è necessario utilizzare la sintassi di riferimento variabile con lo spazio dei nomi corretto.

Per un flusso di lavoro variabile di esempio, vedere Configurazione delle variabili .

Spazi dei nomi

Per garantire che le variabili possano essere referenziate in modo univoco, devono essere assegnate a uno spazio dei nomi. Dopo aver assegnato un set di variabili a uno spazio dei nomi, è possibile fare riferimento a queste variabili in una configurazione di azione utilizzando lo spazio dei nomi e la chiave variabile con la seguente sintassi:

#{namespace.variable_key}

Esistono tre tipi di namespace in base ai quali è possibile assegnare le variabili:

  • Lo spazio dei nomi riservato codepipeline

    Questo è lo spazio dei nomi assegnato al set di variabili implicite disponibili all'inizio di ogni esecuzione della pipeline. Questo spazio dei nomi è codepipeline. Esempio di riferimento variabile:

    #{codepipeline.PipelineExecutionId}
  • Lo spazio dei nomi delle variabili a livello di pipeline

    Questo è lo spazio dei nomi assegnato alle variabili a livello di pipeline. Lo spazio dei nomi per tutte le variabili a livello di pipeline è. variables Esempio di riferimento variabile:

    #{variables.variable_name}
  • Spazio dei nomi assegnato all'azione

    Si tratta di uno spazio dei nomi assegnato a un'azione. Tutte le variabili prodotte dall'azione rientrano in questo spazio dei nomi. Per rendere le variabili prodotte da un'azione disponibili per l'uso in una configurazione di azione downstream, è necessario configurare l'azione di produzione con uno spazio dei nomi. Gli spazi dei nomi devono essere univoci nella definizione della pipeline e non possono entrare in conflitto con i nomi degli artefatti. Ecco un riferimento di variabile di esempio per un'azione configurata con uno spazio dei nomi di SourceVariables.

    #{SourceVariables.VersionId}

Casi d'uso per le variabili

Di seguito sono riportati alcuni dei casi d'uso più comuni per le variabili a livello di pipeline, che consentono di determinare come utilizzare le variabili per esigenze specifiche.

  • Le variabili a livello di pipeline sono destinate CodePipeline ai clienti che desiderano utilizzare la stessa pipeline ogni volta con variazioni minori negli input per la configurazione dell'azione. Qualsiasi sviluppatore che avvia una pipeline aggiunge il valore della variabile nell'interfaccia utente all'avvio della pipeline. Con questa configurazione, si passano i parametri solo per quell'esecuzione.

  • Con le variabili a livello di pipeline, è possibile passare input dinamici alle azioni nella pipeline. È possibile migrare le tubazioni parametrizzate verso CodePipeline senza dover mantenere versioni diverse della stessa pipeline o creare tubazioni complesse.

  • È possibile utilizzare variabili a livello di pipeline per passare parametri di input che consentono di riutilizzare una pipeline ad ogni esecuzione, ad esempio quando si desidera specificare quale versione si desidera distribuire in un ambiente di produzione, in modo da non dover duplicare le pipeline.

  • È possibile utilizzare una singola pipeline per distribuire risorse in più ambienti di compilazione e distribuzione. Ad esempio, per una pipeline con un CodeCommit repository, è possibile eseguire la distribuzione da una filiale specifica e da un ambiente di distribuzione di destinazione e passare CodeDeploy i parametri a livello CodeBuild di pipeline.

Configurazione delle variabili

È possibile configurare le variabili a livello di pipeline o a livello di azione nella struttura della pipeline.

Configurazione delle variabili a livello di pipeline

È possibile aggiungere una o più variabili a livello di pipeline. È possibile fare riferimento a questo valore nella configurazione delle CodePipeline azioni. È possibile aggiungere i nomi delle variabili, i valori predefiniti e le descrizioni quando si crea la pipeline. Le variabili vengono risolte al momento dell'esecuzione.

Nota

Se non è definito un valore predefinito per una variabile a livello di pipeline, la variabile viene considerata obbligatoria. È necessario specificare le sostituzioni per tutte le variabili obbligatorie quando si avvia una pipeline, altrimenti l'esecuzione della pipeline fallirà con un errore di convalida.

Le variabili vengono fornite a livello di pipeline utilizzando l'attributo variables nella struttura della pipeline. Nell'esempio seguente, la variabile Variable1 ha un valore di. Value1

"variables": [ { "name": "Variable1", "defaultValue": "Value1", "description": "description" } ]

Per un esempio della JSON struttura della pipeline, vedereCrea una pipeline, fasi e azioni.

Per un tutorial con una variabile a livello di pipeline che viene passata al momento dell'esecuzione della pipeline, vedi. Tutorial: utilizzare le variabili a livello di pipeline

Nota che l'utilizzo di variabili a livello di pipeline in qualsiasi tipo di azione Source non è supportato.

Nota

Se lo spazio dei variables nomi è già utilizzato in alcune azioni all'interno della pipeline, è necessario aggiornare la definizione dell'azione e scegliere un altro spazio dei nomi per l'azione in conflitto.

Configurazione delle variabili a livello di azione

È possibile configurare un'azione per produrre variabili dichiarando uno spazio dei nomi per l'azione. L'azione deve essere già uno dei provider di azioni che genera variabili. In caso contrario, le variabili disponibili sono variabili a livello di pipeline.

Dichiari lo spazio dei nomi da:

  • Nella pagina Modifica azione della console, immettere uno spazio dei nomi nello spazio dei nomi variabile.

  • Inserimento di uno spazio dei nomi nel campo dei namespace parametri nella struttura della JSON pipeline.

In questo esempio, aggiungete il namespace parametro all'azione di CodeCommit origine con il nome. SourceVariables In questo modo viene configurata l'azione per produrre le variabili disponibili per tale provider di azioni, ad esempio CommitId.

{ "name": "Source", "actions": [ { "outputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Source", "namespace": "SourceVariables", "configuration": { "RepositoryName": "MyRepo", "BranchName": "mainline", "PollForSourceChanges": "false" }, "inputArtifacts": [], "region": "us-west-2", "actionTypeId": { "provider": "CodeCommit", "category": "Source", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

Successivamente, è possibile configurare l'azione downstream per utilizzare le variabili prodotte dall'azione precedente. Lo puoi fare procedendo come segue:

  • Nella pagina Modifica azione della console, immettere la sintassi della variabile (per l'azione downstream) nei campi di configurazione delle azioni.

  • Immissione della sintassi della variabile (per l'azione a valle) nei campi di configurazione dell'azione nella struttura della pipeline JSON

In questo esempio, il campo di configurazione dell'azione di compilazione mostra le variabili di ambiente che vengono aggiornate all'esecuzione dell'azione. L'esempio specifica lo spazio dei nomi e la variabile per l'ID di esecuzione con #{codepipeline.PipelineExecutionId} e lo spazio dei nomi e la variabile per l'ID commit con #{SourceVariables.CommitId}.

{ "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifact" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Release_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]", "ProjectName": "env-var-test" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-west-2", "actionTypeId": { "provider": "CodeBuild", "category": "Build", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

Risoluzione delle variabili

Ogni volta che un'azione viene eseguita come parte di un'esecuzione di una pipeline, le variabili che produce sono disponibili per l'uso in qualsiasi azione che è garantita che si verifichi dopo l'azione di produzione. Per utilizzare queste variabili in un'azione consuming, è possibile aggiungerle alla configurazione dell'azione consuming utilizzando la sintassi mostrata nell'esempio precedente. Prima di eseguire un'azione di consumo, CodePipeline risolve tutti i riferimenti alle variabili presenti nella configurazione prima di iniziare l'esecuzione dell'azione.

Esempio: Variabili per più azioni

Regole per le variabili

Le seguenti regole consentono di configurare le variabili:

  • Specificare lo spazio dei nomi e la variabile per un'azione tramite una nuova proprietà azione o modificando un'azione.

  • Quando si utilizza la creazione guidata pipeline, la console genera uno spazio dei nomi per ogni azione creata con la procedura guidata.

  • Se lo spazio dei nomi non è specificato, le variabili prodotte da tale azione non possono essere referenziate in alcuna configurazione di azione.

  • Per fare riferimento alle variabili prodotte da un'azione, l'azione di riferimento deve avvenire dopo l'azione che produce le variabili. Ciò significa che è in una fase successiva rispetto all'azione che produce le variabili, o nella stessa fase, ma in un ordine di esecuzione superiore.

Variabili disponibili per le operazioni della pipeline

Il provider di azioni determina quali variabili possono essere generate dall'azione.

Per step-by-step le procedure per la gestione delle variabili, vedere. Utilizzo delle variabili

Azioni con chiavi variabili definite

A differenza di uno spazio dei nomi che puoi scegliere, le azioni seguenti utilizzano chiavi variabili che non possono essere modificate. Ad esempio, per il provider di azioni Amazon S3, sono disponibili solo le chiavi ETag e VersionId variabili.

Ogni esecuzione ha anche un set di variabili CodePipeline di pipeline generate che contengono dati sull'esecuzione, come l'ID di rilascio della pipeline. Queste variabili possono essere consumate da qualsiasi azione nella pipeline.

CodePipeline variabile ID di esecuzione

CodePipeline variabile ID di esecuzione
Provider Chiave variabile Valore di esempio Esempio di sintassi variabile
codepipeline PipelineExecutionId 8abc75f0-fbf8-4f4c-bf EXAMPLE #{codepipeline.PipelineExecutionId}

Variabili di output delle ECR azioni Amazon

ECRVariabili Amazon
Chiave variabile Valore di esempio Esempio di sintassi variabile
ImageDigest sha256: EXAMPLE1122334455 #{SourceVariables.ImageDigest}
ImageTag più recente #{SourceVariables.ImageTag}
ImageURI 11111 EXAMPLE .dkr. ecr.us-west-2.amazonaws.com /ecs-repo:più recente #{SourceVariables.ImageURI}
RegistryId EXAMPLE12233 #{SourceVariables.RegistryId}
RepositoryName my-image-repo #{SourceVariables.RepositoryName}

AWS CloudFormation StackSets variabili di output delle azioni

AWS CloudFormation StackSets variabili
Chiave variabile Valore di esempio Esempio di sintassi variabile
OperationId Esempio di 4444-2bbb-111-2bbb-11111 #{DeployVariables.OperationId}
StackSetId my-stackset: 1111aaaa-1111-2222-2bbb-11111 esempio #{DeployVariables.StackSetId}

CodeCommit variabili di output dell'azione

CodeCommit variabili
Chiave variabile Valore di esempio Esempio di sintassi variabile
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName sviluppo #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage Corretto un bug (100 KB di dimensione massima) #{SourceVariables.CommitMessage}
CommitterDate 2019-10-29T03:32:21Z #{SourceVariables.CommitterDate}
RepositoryName myCodeCommitRepo #{SourceVariables.RepositoryName}

CodeStarSourceConnection variabili di output delle azioni

CodeStarSourceConnectionvariabili (Bitbucket Cloud GitHub, GitHub Enterprise Repository e.com) GitLab
Chiave variabile Valore di esempio Esempio di sintassi variabile
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName sviluppo #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage Corretto un bug (100 KB di dimensione massima) #{SourceVariables.CommitMessage}
ConnectionArn arn:aws:codestar-connections:region:account-id: connessione/connection-id #{SourceVariables.ConnectionArn}
FullRepositoryName nome utente/ GitHubRepo #{SourceVariables.FullRepositoryName}

GitHub variabili di output delle azioni (GitHub azione versione 1)

GitHub variabili (GitHub azione versione 1)
Chiave variabile Valore di esempio Esempio di sintassi variabile
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName principale #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage

Corretto un bug (100 KB di dimensione massima)

#{SourceVariables.CommitMessage}
CommitterDate 2019-10-29T03:32:21Z #{SourceVariables.CommitterDate}
CommitUrl #{SourceVariables.CommitUrl}
RepositoryName myGitHubRepo #{SourceVariables.RepositoryName}

Variabili di output delle azioni S3

Variabili S3
Chiave variabile Valore di esempio Esempio di sintassi variabile
ETag example28be1c3 #{SourceVariables.ETag}
VersionId esempio ta_ IUQCv #{SourceVariables.VersionId}

Azioni con chiavi variabili configurate dall'utente

Per CodeBuild le AWS CloudFormation azioni e Lambda, le chiavi variabili sono configurate dall'utente.

CloudFormation azioni (variabili di output)

AWS CloudFormation variabili
Chiave variabile Esempio di sintassi variabile

Per AWS CloudFormation le azioni, le variabili vengono prodotte a partire da qualsiasi valore indicato nella Outputs sezione di un modello di pila. Tieni presente che le uniche modalità di CloudFormation azione che generano output sono quelle che comportano la creazione o l'aggiornamento di uno stack, come la creazione dello stack, gli aggiornamenti dello stack e l'esecuzione dei set di modifiche. Le modalità di operazione corrispondenti che generano variabili sono:

  • CREATE_UPDATE

  • CHANGE_SET_EXECUTE

  • CHANGE_SET_REPLACE

  • REPLACE_ON_ FAILURE

Per ulteriori informazioni su queste modalità di azione, vedere. AWS CloudFormation distribuire un riferimento all'azione Per un tutorial che mostra come creare una pipeline con un'azione di AWS CloudFormation distribuzione in una pipeline che utilizza variabili di AWS CloudFormation output, consulta. Tutorial: crea una pipeline che utilizza le variabili delle azioni di AWS CloudFormation distribuzione
#{DeployVariables.StackName}

CodeBuild azioni (variabili di output)

CodeBuild variabili
Chiave variabile Esempio di sintassi variabile

Per CodeBuild le azioni, le variabili vengono prodotte a partire da valori generati da variabili di ambiente esportate. Imposta una variabile di CodeBuild ambiente modificando l' CodeBuildazione in CodePipeline o aggiungendo la variabile di ambiente alle specifiche di build.

Aggiungi le istruzioni alle specifiche di CodeBuild compilazione per aggiungere la variabile di ambiente nella sezione delle variabili esportate. Vedi env/exported-variables nella Guida per l'utente.AWS CodeBuild

#{BuildVariables.EnvVar}

Variabili di output dell'azione Lambda

Variabili Lambda
Chiave variabile Esempio di sintassi variabile
L'azione Lambda produrrà come variabili tutte le coppie chiave-valore incluse nella outputVariables sezione della richiesta. PutJobSuccessResult API

Per un tutorial con un'azione Lambda che utilizza le variabili di un'azione upstream (CodeCommit) e genera variabili di output, consulta. Tutorial: Utilizzo delle variabili con le azioni di richiamo Lambda

#{TestVariables.testRunId}