View a markdown version of this page

Variablenreferenz - AWS CodePipeline

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Variablenreferenz

Dieser Abschnitt dient nur als Referenz. Informationen zum Erstellen von Variablen finden Sie unter Arbeiten mit Variablen.

Mithilfe von Variablen können Sie Ihre Pipeline-Aktionen mit Werten konfigurieren, die zum Zeitpunkt der Pipeline-Ausführung oder der Aktionsausführung festgelegt werden.

Einige Aktionsanbieter erzeugen einen definierten Satz von Variablen. Sie wählen aus Standardvariablenschlüsseln für diesen Aktionsanbieter aus, z. B. eine Commit-ID.

Wichtig

Geben Sie den Wert nicht direkt ein, wenn Sie geheime Parameter übergeben. Der Wert wird als Klartext gerendert und ist daher lesbar. Verwenden Sie aus Sicherheitsgründen keinen Klartext mit Geheimnissen. Wir empfehlen dringend, diese Option AWS Secrets Manager zum Speichern von Geheimnissen zu verwenden.

Beispiele für die Verwendung von Variablen finden Sie Schritt für Schritt:

Variablengrenzwerte

Informationen zu Grenzwerten finden Sie unter Kontingente in AWS CodePipeline.

Anmerkung

Wenn Sie die Variablensyntax in die Felder der Aktionskonfiguration eingeben, überschreiten Sie nicht die Grenze von 1000 Zeichen für die Konfigurationsfelder. Ein Validierungsfehler wird zurückgegeben, wenn dieser Grenzwert überschritten wird.

Konzepte

In diesem Abschnitt werden wichtige Begriffe und Konzepte aufgeführt, die sich auf Variablen und Namespaces beziehen.

Variablen

Variablen sind Schlüssel-Wert-Paare, die Sie für die dynamische Konfiguration von Aktionen in Ihrer Pipeline verwenden können. Derzeit gibt es drei Möglichkeiten, diese Variablen verfügbar zu machen:

  • Zu Beginn jeder Pipeline-Ausführung gibt es einen Variablensatz, der implizit verfügbar ist. Dieser Satz enthält zurzeit PipelineExecutionId, die ID der aktuellen Pipeline-Ausführung.

  • Variablen auf Pipeline-Ebene werden definiert, wenn die Pipeline erstellt und zur Laufzeit der Pipeline aufgelöst wird.

    Sie geben Variablen auf Pipeline-Ebene an, wenn die Pipeline erstellt wird, und Sie können Werte zum Zeitpunkt der Pipeline-Ausführung angeben.

  • Es gibt Aktionstypen, die Variablensätze erzeugen, wenn sie ausgeführt werden. Sie können die durch eine Aktion erzeugten Variablen sehen, indem Sie das outputVariables Feld überprüfen, das Teil der API ist. ListActionExecutions Die Liste der verfügbaren Schlüsselnamen nach Aktionsanbieter finden Sie unter Für Pipeline-Aktionen verfügbare Variablen. Um zu sehen, welche Variablen jeder Aktionstyp erzeugt, lesen Sie die CodePipeline Referenz der Aktionsstruktur.

Um in Ihrer Aktionskonfiguration auf diese Variablen zu verweisen, müssen Sie die Variablenreferenzsyntax mit dem richtigen Namespace verwenden.

Ein Beispiel für einen Variablen-Workflow finden Sie unter Konfigurieren von Variablen.

Namespaces

Um sicherzustellen, dass Variablen eindeutig referenziert werden können, müssen sie einem Namespace zugewiesen werden. Nachdem Sie einen Satz von Variablen einem Namespace zugewiesen haben, können sie in einer Aktionskonfiguration durch Verwendung des Namespace und Variablenschlüssels mit der folgenden Syntax referenziert werden:

#{namespace.variable_key}

Es gibt drei Arten von Namespaces, unter denen Variablen zugewiesen werden können:

  • Der reservierte Namespace codepipeline

    Dies ist der Namespace, der dem Satz impliziter Variablen zugewiesen ist, die zu Beginn der einzelnen Pipeline-Ausführungen verfügbar sind. Dieser Namespace ist codepipeline. Beispiel für eine Variablenreferenz:

    #{codepipeline.PipelineExecutionId}
  • Der Variablen-Namespace auf Pipeline-Ebene

    Dies ist der Namespace, der Variablen auf Pipeline-Ebene zugewiesen ist. Der Namespace für alle Variablen auf Pipeline-Ebene ist. variables Beispiel für eine Variablenreferenz:

    #{variables.variable_name}
  • Einer Aktion zugewiesener Namespace

    Dies ist ein Namespace, den Sie einer Aktion zuweisen. Alle Variablen, die von der Aktion erzeugt werden, werden diesem Namespace zugewiesen. Um die von einer Aktion erzeugten Variablen für die Verwendung in einer nachgeschalteten Aktionskonfiguration verfügbar zu machen, müssen Sie die erzeugende Aktion mit einem Namespace konfigurieren. Namespaces müssen in der Pipeline-Definition eindeutig sein und dürfen nicht mit Artefaktnamen in Konflikt stehen. Dies ist ein Beispiel für eine Variablenreferenz für eine Aktion, die mit dem Namespace SourceVariables konfiguriert ist.

    #{SourceVariables.VersionId}

Anwendungsfälle für Variablen

Im Folgenden sind einige der häufigsten Anwendungsfälle für Variablen auf Pipeline-Ebene aufgeführt, anhand derer Sie ermitteln können, wie Sie Variablen für Ihre spezifischen Anforderungen verwenden können.

  • Variablen auf Pipeline-Ebene richten sich an CodePipeline Kunden, die jedes Mal dieselbe Pipeline verwenden möchten, wobei die Eingaben für die Aktionskonfiguration geringfügig variieren. Jeder Entwickler, der eine Pipeline startet, fügt den Variablenwert in der Benutzeroberfläche hinzu, wenn die Pipeline gestartet wird. Bei dieser Konfiguration übergeben Sie nur Parameter für diese Ausführung.

  • Mit Variablen auf Pipeline-Ebene können Sie dynamische Eingaben an Aktionen in der Pipeline übergeben. Sie können Ihre parametrisierten Pipelines zu migrieren, CodePipeline ohne verschiedene Versionen derselben Pipeline verwalten oder komplexe Pipelines erstellen zu müssen.

  • Sie können Variablen auf Pipeline-Ebene verwenden, um Eingabeparameter zu übergeben, die es Ihnen ermöglichen, eine Pipeline bei jeder Ausführung wiederzuverwenden, z. B. wenn Sie angeben möchten, welche Version Sie in einer Produktionsumgebung bereitstellen möchten, sodass Sie Pipelines nicht duplizieren müssen.

  • Sie können eine einzige Pipeline verwenden, um Ressourcen in mehreren Build- und Bereitstellungsumgebungen bereitzustellen. Bei einer Pipeline mit einem CodeCommit Repository kann beispielsweise die Bereitstellung von einem bestimmten Zweig und einer bestimmten Zielbereitstellungsumgebung aus mit CodeBuild CodeDeploy Parametern auf Pipeline-Ebene erfolgen.

Anmerkung

Für Amazon ECR, Amazon S3 oder CodeCommit Quellen können Sie auch eine Quellüberschreibung mithilfe eines Eingabe-Transformationseintrags erstellen, um das revisionValue In EventBridge für Ihr Pipeline-Ereignis zu verwenden, wobei das aus der Quellereignisvariablen für Ihren Objektschlüssel, Ihren Commit oder Ihre Bild-ID abgeleitet revisionValue wird. Weitere Informationen finden Sie in dem optionalen Schritt für die Eingabe der Eingabetransformation, der in den Verfahren unter Amazon ECR-Quellaktionen und Ressourcen EventBridgeHerstellen einer Verbindung zu Amazon S3-Quellaktionen mit einer für Ereignisse aktivierten Quelle, oder CodeCommit Quellaktionen und EventBridge enthalten ist.

Konfigurieren von Variablen

Sie können Variablen auf Pipelineebene oder Aktionsebene in der Pipeline-Struktur konfigurieren.

Variablen auf Pipeline-Ebene konfigurieren

Sie können eine oder mehrere Variablen auf Pipeline-Ebene hinzufügen. Sie können in der Konfiguration von CodePipeline Aktionen auf diesen Wert verweisen. Sie können die Variablennamen, Standardwerte und Beschreibungen hinzufügen, wenn Sie die Pipeline erstellen. Variablen werden zum Zeitpunkt der Ausführung aufgelöst.

Anmerkung

Wenn für eine Variable auf Pipeline-Ebene kein Standardwert definiert ist, wird die Variable als erforderlich betrachtet. Sie müssen Überschreibungen für alle erforderlichen Variablen angeben, wenn Sie eine Pipeline starten. Andernfalls schlägt die Pipeline-Ausführung mit einem Validierungsfehler fehl.

Sie stellen Variablen auf Pipeline-Ebene mithilfe des Variablenattributs in der Pipeline-Struktur bereit. Im folgenden Beispiel Variable1 hat die Variable einen Wert vonValue1.

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

Ein Beispiel für die JSON-Struktur der Pipeline finden Sie unterErstellen Sie eine Pipeline, Stufen und Aktionen.

Ein Tutorial mit einer Variablen auf Pipeline-Ebene, die zum Zeitpunkt der Pipeline-Ausführung übergeben wird, finden Sie unter. Tutorial: Variablen auf Pipeline-Ebene verwenden

Beachten Sie, dass die Verwendung von Variablen auf Pipeline-Ebene in Quellaktionen aller Art nicht unterstützt wird.

Anmerkung

Wenn der variables Namespace bereits in einigen Aktionen innerhalb der Pipeline verwendet wird, müssen Sie die Aktionsdefinition aktualisieren und einen anderen Namespace für die widersprüchliche Aktion auswählen.

Variablen auf Aktionsebene konfigurieren

Sie konfigurieren eine Aktion zur Erzeugung von Variablen, indem Sie einen Namespace für die Aktion deklarieren. Bei der Aktion muss es sich bereits um einen Aktionsanbieter handeln, der Variablen generiert. Andernfalls handelt es sich bei den verfügbaren Variablen um Variablen auf Pipeline-Ebene.

Sie deklarieren den Namespace auf eine von zwei Arten:

  • Sie geben auf der Seite Edit action (Aktion bearbeiten) in der Konsole in Variable namespace (Variablen-Namespace) einen Namespace ein.

  • Sie geben in das namespace-Parameterfeld in der JSON-Pipelinestruktur einen Namespace ein.

In diesem Beispiel fügen Sie den namespace Parameter der CodeCommit Quellaktion mit dem Namen hinzuSourceVariables. Hierdurch wird die Aktion für die Erzeugung der Variablen konfiguriert, die für diesen Aktionsanbieter verfügbar sind, z. B. 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 } ] },

Als Nächstes konfigurieren Sie die nachgeschaltete Aktion für die Verwendung der von der vorherigen Aktion erzeugten Variablen. Sie tun dies wie folgt:

  • Sie geben auf der Seite Edit action (Aktion bearbeiten) der Konsole die Variablensyntax (für die nachgeschaltete Aktion) in die Aktionskonfigurationsfelder ein.

  • Sie geben die Variablensyntax (für die nachgeschaltete Aktion) in die Aktionskonfigurationsfelder in der JSON-Pipelinestruktur ein.

In diesem Beispiel zeigt das Konfigurationsfeld der Build-Aktion Umgebungsvariablen an, die bei Aktionsausführung aktualisiert werden. Das Beispiel gibt den Namespace und die Variable für die Ausführungs-ID mit #{codepipeline.PipelineExecutionId} sowie den Namespace und die Variable für die Commit-ID mit #{SourceVariables.CommitId} an.

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

Variablenauflösung

Jedes Mal, wenn eine Aktion als Teil einer Pipeline-Ausführung ausgeführt wird, stehen die so erzeugten Variablen für jede Aktion zur Verfügung, die nach der erzeugenden Aktion garantiert ausgeführt wird. Um diese Variablen in einer verbrauchenden Aktion zu verwenden, können Sie sie mithilfe der im vorherigen Beispiel gezeigten Syntax zur Konfiguration der verbrauchenden Aktion hinzufügen. CodePipeline Löst vor der Ausführung einer Aktion alle Variablenreferenzen auf, die in der Konfiguration vorhanden waren, bevor die Aktionsausführung initiiert wird.

Beispiel: Variablen für mehrere Aktionen

Regeln für Variablen

Die folgenden Regeln helfen Ihnen bei der Konfiguration von Variablen:

  • Sie geben den Namespace und die Variable für eine Aktion über eine neue Aktionseigenschaft oder durch Bearbeiten einer Aktion an.

  • Wenn Sie den Pipeline-Erstellungsassistenten verwenden, generiert die Konsole für jede mit dem Assistenten erstellte Aktion einen Namespace.

  • Wenn kein Namespace angegeben ist, können die von dieser Aktion erzeugten Variablen in keiner Aktionskonfiguration referenziert werden.

  • Um von einer Aktion erzeugte Variablen zu referenzieren, muss die referenzierende Aktion nach der Aktion ausgeführt werden, die die Variablen erzeugt. Das bedeutet, dass sie sich entweder in einer späteren Phase als die Aktion befindet, die die Variablen erzeugt, oder in derselben Phase, jedoch in einer höheren Ausführungsrangstufe.

Für Pipeline-Aktionen verfügbare Variablen

Der Aktionsanbieter bestimmt, welche Variablen von der Aktion generiert werden können.

Schritt-für-Schritt-Verfahren zum Verwalten von Variablen finden Sie unter Arbeiten mit Variablen.

Aktionen mit definierten Variablenschlüsseln

Im Gegensatz zu einem Namespace, den Sie auswählen können, verwenden die folgenden Aktionen variable Schlüssel, die nicht bearbeitet werden können. Für den Amazon S3-Aktionsanbieter sind beispielsweise nur die VersionId Variablenschlüssel ETag und verfügbar.

Jede Ausführung hat auch eine Reihe von CodePipeline-generated Pipeline-Variablen, die Daten über die Ausführung enthalten, wie z. B. die Pipeline-Release-ID. Diese Variablen können von jeder Aktion in der Pipeline verbraucht werden.

CodePipeline Ausführungs-ID-Variable

CodePipeline Variable mit Ausführungs-ID
Anbieter Variablenschlüssel Beispielwert Beispiel für eine Variablensyntax
codepipeline PipelineExecutionId 8abc75f0-fbf8-4f4c-bfEXAMPLE #{codepipeline.PipelineExecutionId}

Ausgabevariablen für Amazon ECR-Aktionen

Amazon ECR-Variablen
Variablenschlüssel Beispielwert Beispiel für eine Variablensyntax
ImageDigest sha256:EXAMPLE1122334455 #{SourceVariables.ImageDigest}
ImageTag brandneue #{SourceVariables.ImageTag}
ImageURI 11111 EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest #{SourceVariables.ImageURI}
RegistryId EXAMPLE12233 #{SourceVariables.RegistryId}
RepositoryName my-image-repo #{SourceVariables.RepositoryName}

CloudFormation StackSets Aktionsausgabevariablen

CloudFormation StackSets Variablen
Variablenschlüssel Beispielwert Beispiel für Variablensyntax
OperationId 11111111-2bbb-111-2bbb-11111 Beispiel #{DeployVariables.OperationId}
StackSetId my-stackset: 1111aaaa-1111-2222-2bbb-11111-Beispiel #{DeployVariables.StackSetId}

CodeCommit Aktionsausgabevariablen

CodeCommit Variablen
Variablenschlüssel Beispielwert Beispiel für Variablensyntax
AuthorDate 2019-10-29 T03:32:21Z #{SourceVariables.AuthorDate}
BranchName Entwicklung #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage Behebung eines Fehlers (maximale Größe 100 KB) #{SourceVariables.CommitMessage}
CommitterDate 2019-10-29 T03:32:21Z #{SourceVariables.CommitterDate}
RepositoryName mein CodeCommitRepo #{SourceVariables.RepositoryName}

CodeStarSourceConnection Aktionsausgabevariablen

Die verfügbaren Ausgabevariablen hängen vom Triggertyp ab (Push, Pull Request oder Tag). Die in der folgenden Tabelle als Alle markierten Variablen werden für jeden Triggertyp erzeugt. Variablen, die mit einem bestimmten Triggertyp gekennzeichnet sind, werden nur erzeugt, wenn die Pipeline-Ausführung durch diesen Trigger gestartet wird.

CodeStarSourceConnectionVariablen (Bitbucket Cloud GitHub, GitHub Enterprise Repository und GitLab.com)
Variablenschlüssel Beispielwert Beispiel für eine Variablensyntax Auslösertyp
AuthorDate 2019-10-29 T03:32:21Z #{SourceVariables.AuthorDate} Alle
AuthorDisplayName Jane Doe #{SourceVariables.AuthorDisplayName} Alle
AuthorEmail jane.doe@example.com #{SourceVariables.AuthorEmail} Alle
AuthorId Jane Doe #{SourceVariables.AuthorId} Alle
BranchName Entwicklung #{SourceVariables.BranchName} Drücken, Markieren
CommitId exampleb01f91b31 #{SourceVariables.CommitId} Alle
CommitMessage Behebung eines Fehlers (maximale Größe 100 KB) #{SourceVariables.CommitMessage} Alle
ConnectionArn arn:aws:codestar-connections:region ::connection/ account-id connection-id #{SourceVariables.ConnectionArn} Alle
DestinationBranchName Haupt #{SourceVariables.DestinationBranchName} Pull-Anforderung
FullRepositoryName username/GitHubRepo #{SourceVariables.FullRepositoryName} Alle
ProviderType GitHub #{SourceVariables.ProviderType} Alle
PullRequestId 1 #{SourceVariables.PullRequestId} Pull-Anforderung
PullRequestTitle Neues Feature hinzufügen #{SourceVariables.PullRequestTitle} Pull-Anforderung
SourceBranchName Feature-Branch #{SourceVariables.SourceBranchName} Pull-Anforderung
TagName v1.0.0 #{SourceVariables.TagName} Markierung

GitHub Aktion, Ausgabevariablen GitHub (über die OAuth-App), Aktion)

GitHub Variablen (GitHub (über die OAuth-App), Aktion)
Variablenschlüssel Beispielwert Beispiel für eine Variablensyntax
AuthorDate 2019-10-29 T03:32:21Z #{SourceVariables.AuthorDate}
BranchName Haupt #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage

Behebung eines Fehlers (maximale Größe 100 KB)

#{SourceVariables.CommitMessage}
CommitterDate 29.10.2019 T03:32:21Z #{SourceVariables.CommitterDate}
CommitUrl #{SourceVariables.CommitUrl}
RepositoryName mein GitHubRepo #{SourceVariables.RepositoryName}

Ausgabevariablen für S3-Aktionen

S3-Variablen
Variablenschlüssel Beispielwert Beispiel für eine Variablensyntax
ETag example28be1c3 #{SourceVariables.ETag}
VersionId exampleta_IUQCv #{SourceVariables.VersionId}

Aktionen mit benutzerkonfigurierten Variablenschlüsseln

Für CodeBuild CloudFormation, und Lambda-Aktionen werden die Variablenschlüssel vom Benutzer konfiguriert.

CloudFormation Ausgabevariablen für Aktionen

CloudFormation variables
Variablenschlüssel Beispiel für eine Variablensyntax

Für CloudFormation Aktionen werden Variablen aus beliebigen Werten generiert, die im Outputs Abschnitt einer Stack-Vorlage angegeben sind. Beachten Sie, dass die einzigen CloudFormation Aktionsmodi, die Ausgaben generieren, diejenigen sind, die zur Erstellung oder Aktualisierung eines Stacks führen, wie z. B. die Stack-Erstellung, Stack-Aktualisierungen und die Ausführung von Änderungssätzen. Die entsprechenden Aktionsmodi, die Variablen generieren, sind:

  • CREATE_UPDATE

  • CHANGE_SET_EXECUTE

  • CHANGE_SET_REPLACE

  • REPLACE_ON_FAILURE

Weitere Informationen zu diesen Aktionsmodi finden Sie unterCloudFormation Aktionsreferenz bereitstellen. Ein Tutorial, das Ihnen zeigt, wie Sie eine Pipeline mit einer CloudFormation Bereitstellungsaktion in einer Pipeline erstellen, die CloudFormation Ausgabevariablen verwendet, finden Sie unterTutorial: Erstellen Sie eine Pipeline, die Variablen von verwendet AWS CloudFormation Aktionen zur Bereitstellung.
#{DeployVariables.StackName}

CodeBuild Ausgabevariablen für Aktionen

CodeBuild Variablen
Variablenschlüssel Beispiel für eine Variablensyntax

Für CodeBuild Aktionen werden Variablen aus Werten generiert, die von exportierten Umgebungsvariablen generiert wurden. Richten Sie eine CodeBuild Umgebungsvariable ein, indem Sie Ihre CodeBuild Aktion in der Buildspec bearbeiten CodePipeline oder die Umgebungsvariable zur Buildspec hinzufügen.

Fügen Sie Ihrer CodeBuild Buildspec Anweisungen hinzu, um die Umgebungsvariable im Abschnitt „Exportierte Variablen“ hinzuzufügen. Siehe env/exported -variables im Benutzerhandbuch. AWS CodeBuild

#{BuildVariables.EnvVar}

Ausgabevariablen für Lambda-Aktionen

Lambda-Variablen
Variablenschlüssel Beispiel für eine Variablensyntax
Die Lambda-Aktion erzeugt als Variablen alle Schlüssel-Wert-Paare, die im outputVariables Abschnitt der PutJobSuccessResult API-Anforderung enthalten sind.

Ein Tutorial mit einer Lambda-Aktion, die Variablen aus einer Upstream-Aktion (CodeCommit) verwendet und Ausgabevariablen generiert, finden Sie unter. Tutorial: Variablen mit Lambda-Aufrufaktionen verwenden

#{TestVariables.testRunId}