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:
-
Ein Tutorial mit einer Variablen auf Pipeline-Ebene, die bei der Ausführung der Pipeline übergeben wird, finden Sie unter. Tutorial: Variablen auf Pipeline-Ebene verwenden
-
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
-
Ein Tutorial mit einer CloudFormation Aktion, die auf Stack-Ausgabevariablen aus einer CloudFormation Upstream-Aktion verweist, finden Sie unterTutorial: Erstellen Sie eine Pipeline, die Variablen von verwendet AWS CloudFormation Aktionen zur Bereitstellung.
-
Ein Beispiel für eine manuelle Genehmigungsaktion mit Nachrichtentext, der auf Ausgabevariablen verweist, die in die CodeCommit Commit-ID und die Commit-Nachricht aufgelöst werden, finden Sie unterBeispiel: Variablen in manuellen Genehmigungen verwenden.
-
Ein Beispiel für eine CodeBuild Aktion mit einer Umgebungsvariablen, die in den GitHub Branch-Namen aufgelöst wird, finden Sie unterBeispiel: Verwenden Sie eine BranchName Variable mit CodeBuild Umgebungsvariablen.
-
CodeBuild Aktionen erzeugen als Variablen alle Umgebungsvariablen, die als Teil des Builds exportiert wurden. Weitere Informationen finden Sie unter CodeBuild Ausgabevariablen für Aktionen.
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.
Themen
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
outputVariablesFeld ü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.
variablesBeispiel 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
SourceVariableskonfiguriert 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.
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
| Anbieter | Variablenschlüssel | Beispielwert | Beispiel für eine Variablensyntax |
|---|---|---|---|
| codepipeline | PipelineExecutionId |
8abc75f0-fbf8-4f4c-bfEXAMPLE | #{codepipeline.PipelineExecutionId} |
Ausgabevariablen für Amazon ECR-Aktionen
| 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
| 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
| 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.
| 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)
| 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
| 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.
Themen
CloudFormation Ausgabevariablen für Aktionen
| Variablenschlüssel | Beispiel für eine Variablensyntax |
|---|---|
Für CloudFormation Aktionen werden Variablen aus beliebigen Werten generiert, die im
|
#{DeployVariables.StackName} |
CodeBuild Ausgabevariablen für Aktionen
| 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 |
|
Ausgabevariablen für Lambda-Aktionen
| 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} |