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.
Tutorial: Eine Pipeline erstellen, die Variablen aus AWS CloudFormation Bereitstellungsaktionen verwendet
In diesem Tutorial verwenden Sie die AWS CodePipeline Konsole, um eine Pipeline mit einer Bereitstellungsaktion zu erstellen. Wenn die Pipeline ausgeführt wird, erstellt die Vorlage einen Stack und auch eine outputs
-Datei. Die von der Stack-Vorlage generierten Ausgaben sind die Variablen, die durch die AWS CloudFormation Aktion in generiert wurden CodePipeline.
In der Aktion, in der Sie den Stack aus der Vorlage erstellen, legen Sie einen Variablen-Namespace fest. Die Variablen, die von der outputs
-Datei erzeugt werden, können dann durch nachfolgende Aktionen verwendet werden. In diesem Beispiel erstellen Sie einen Änderungssatz auf der Grundlage der durch die AWS CloudFormation Aktion erzeugten StackName
Variablen. Nach einer manuellen Genehmigung führen Sie den Änderungssatz aus und erstellen dann eine Stack-Löschaktion, die den Stack basierend auf der StackName
-Variablen löscht.
Wichtig
Im Rahmen der Erstellung einer Pipeline wird ein vom Kunden bereitgestellter S3-Artefakt-Bucket von CodePipeline for Artifacts verwendet. (Dies unterscheidet sich von dem Bucket, der für eine S3-Quellaktion verwendet wird.) Wenn sich der S3-Artefakt-Bucket in einem anderen Konto befindet als das Konto für Ihre Pipeline, stellen Sie sicher, dass der S3-Artefakt-Bucket denjenigen gehört AWS-Konten , die sicher und zuverlässig sind.
Themen
- Voraussetzungen: Erstellen Sie eine AWS CloudFormation Servicerolle und ein CodeCommit Repository
- Schritt 1: Laden Sie die AWS CloudFormation Beispielvorlage herunter, bearbeiten Sie sie und laden Sie sie hoch
- Schritt 2: Erstellen der Pipeline
- Schritt 3: Fügen Sie eine AWS CloudFormation Bereitstellungsaktion hinzu, um den Änderungssatz zu erstellen
- Schritt 4: Hinzufügen einer manuellen Genehmigungsaktion
- Schritt 5: Fügen Sie eine CloudFormation Bereitstellungsaktion hinzu, um den Änderungssatz auszuführen
- Schritt 6: Fügen Sie eine CloudFormation Bereitstellungsaktion hinzu, um den Stack zu löschen
Voraussetzungen: Erstellen Sie eine AWS CloudFormation Servicerolle und ein CodeCommit Repository
Sie müssen bereits über Folgendes verfügen:
-
Ein CodeCommit Repository. Sie können das AWS CodeCommit Repository verwenden, in dem Sie es erstellt habenTutorial: Erstellen Sie eine einfache Pipeline (CodeCommitRepository).
-
In diesem Beispiel wird ein Amazon DocumentDB DocumentDB-Stack aus einer Vorlage erstellt. Sie müssen AWS Identity and Access Management (IAM) verwenden, um eine AWS CloudFormation Servicerolle mit den folgenden Berechtigungen für Amazon DocumentDB zu erstellen.
"rds:DescribeDBClusters", "rds:CreateDBCluster", "rds:DeleteDBCluster", "rds:CreateDBInstance"
Schritt 1: Laden Sie die AWS CloudFormation Beispielvorlage herunter, bearbeiten Sie sie und laden Sie sie hoch
Laden Sie die AWS CloudFormation Beispielvorlagendatei herunter und laden Sie sie in Ihr CodeCommit Repository hoch.
-
Navigieren Sie zur Beispielvorlagenseite für Ihre Region. Die Seite für us-west-2 befindet sich beispielsweise unter https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html. Laden Sie unter Amazon DocumentDB die Vorlage für einen Amazon DocumentDB-Cluster herunter. Der Dateiname lautet
documentdb_full_stack.yaml
. -
Entpacken Sie die
documentdb_full_stack.yaml
-Datei, und öffnen Sie sie in einem Texteditor. Nehmen Sie die folgenden Änderungen vor.-
Fügen Sie in diesem Beispiel den folgenden
Purpose:
-Parameter zu IhremParameters
-Abschnitt in der Vorlage hinzu.Purpose: Type: String Default: testing AllowedValues: - testing - production Description: The purpose of this instance.
-
Fügen Sie in diesem Beispiel die folgende
StackName
-Ausgabe zu IhremOutputs:
-Abschnitt in der Vorlage hinzu.StackName: Value: !Ref AWS::StackName
-
-
Laden Sie die Vorlagendatei in Ihr AWS CodeCommit Repository hoch. Sie müssen die entpackte und bearbeitete Vorlagendatei in das Stammverzeichnis Ihres Repositorys hochladen.
So verwenden Sie die CodeCommit Konsole, um Ihre Dateien hochzuladen:
-
Öffnen Sie die CodeCommit Konsole und wählen Sie Ihr Repository aus der Repository-Liste aus.
-
Wählen Sie Add file (Datei hinzufügen) und dann Upload file (Datei hochladen) aus.
-
Wählen Sie Choose file (Datei auswählen) und navigieren Sie dann zu Ihrer Datei. Übernehmen Sie die Änderung, indem Sie Ihren Benutzernamen und Ihre E-Mail-Adresse eingeben. Wählen Sie Commit changes (Änderungen übernehmen) aus.
Ihre Datei sollte auf der Stammebene in Ihrem Repository wie folgt aussehen:
documentdb_full_stack.yaml
-
Schritt 2: Erstellen der Pipeline
In diesem Abschnitt erstellen Sie eine Pipeline mit den folgenden Aktionen:
-
Eine Quellstufe mit einer CodeCommit Aktion, bei der das Quellartefakt Ihre Vorlagendatei ist.
-
Eine Bereitstellungsphase mit einer AWS CloudFormation Bereitstellungsaktion.
Jeder Aktion in der Quell- und Bereitstellungsstufe, die vom Assistenten erstellt wurde, wird jeweils ein Variablen-Namespace, SourceVariables
, und DeployVariables
zugewiesen. Da den Aktionen ein Namespace zugewiesen ist, stehen die in diesem Beispiel konfigurierten Variablen für nachgelagerte Aktionen zur Verfügung. Weitere Informationen finden Sie unter Variablen-Referenz.
So erstellen Sie mit dem Assistenten eine Pipeline
Melden Sie sich bei der an AWS Management Console und öffnen Sie die CodePipeline Konsole unter http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Wählen Sie auf der Seite Welcome (Willkommen) die Option Getting started (Erste Schritte) oder auf der Seite Pipelines die Option Create pipeline (Pipeline erstellen).
-
Geben Sie unter Step 1: Choose pipeline settings (Schritt 1: Auswahl der Pipeline-Einstellungen) unter Pipeline name (Pipeline-Name)
MyCFNDeployPipeline
ein. -
Wählen Sie im Feld Pipeline-Typ die Option V1 für die Zwecke dieses Tutorials aus. Sie können auch V2 wählen. Beachten Sie jedoch, dass sich die Pipeline-Typen in ihren Eigenschaften und im Preis unterscheiden. Weitere Informationen finden Sie unter Arten von Pipelines.
-
Führen Sie unter Service role (Service-Rolle) einen der folgenden Schritte aus:
-
Wählen Sie Neue Servicerolle aus, CodePipeline um das Erstellen einer Servicerolle in zu ermöglichenIAM.
-
Wählen Sie Existing service role (Vorhandene Servicerolle). Wählen Sie unter Name der Rolle in der Liste Ihre Servicerolle aus.
-
-
Unter Artifact store (Artefaktspeicher):
-
Wählen Sie Standardstandort, um den Standard-Artefaktspeicher, z. B. den Amazon S3 S3-Artefakt-Bucket, der als Standard festgelegt wurde, für Ihre Pipeline in der Region zu verwenden, die Sie für Ihre Pipeline ausgewählt haben.
-
Wählen Sie Benutzerdefinierter Standort, wenn Sie bereits einen Artefaktspeicher, z. B. einen Amazon S3 S3-Artefakt-Bucket, in derselben Region wie Ihre Pipeline haben.
Anmerkung
Dabei handelt es sich nicht um den Quell-Bucket für Ihren Quellcode, sondern um den Artefaktspeicher für Ihre Pipeline. Für jede Pipeline benötigen Sie einen separaten Artefaktspeicher, z. B. einen S3 Bucket. Wenn Sie eine Pipeline erstellen oder bearbeiten, benötigen Sie einen Artefakt-Bucket in der Pipeline-Region und einen Artefakt-Bucket pro AWS Region, in der Sie eine Aktion ausführen.
Weitere Informationen erhalten Sie unter Eingabe- und Ausgabe-Artefakte und CodePipeline Referenz zur Pipeline-Struktur.
Wählen Sie Weiter.
-
-
Unter Step 2: Add source stage (Schritt 2: Quell-Stufe hinzufügen):
-
Wählen Sie unter Source provider (Quell-Anbieter) die Option AWS CodeCommit.
-
Wählen Sie unter Repository-Name den Namen des CodeCommit Repositorys aus, in dem Sie es erstellt haben. Schritt 1: Erstellen Sie ein CodeCommit Repository
-
Wählen Sie in Branch name den Namen des Branch aus, der das neueste Code-Update enthält.
Nachdem Sie den Repository-Namen und den Branch ausgewählt haben, wird die Amazon CloudWatch Events-Regel angezeigt, die für diese Pipeline erstellt werden soll.
Wählen Sie Weiter.
-
-
Wählen Sie unter Step 3: Add build stage (Schritt 3: Build-Stufe hinzufügen) die Option Skip build stage (Build-Stufe überspringen) und akzeptieren Sie die Warnmeldung, indem Sie erneut auf Skip (Überspringen) klicken.
Wählen Sie Weiter.
-
Unter Step 4: Add deploy stage (Schritt 4: Bereitstellungsstufe hinzufügen):
-
Wählen Sie unter Action name (Aktionsname) die Option Deploy (Bereitstellen). Wählen Sie unter Deploy provider (Bereitstellungsanbieter) die Option CloudFormation aus.
-
Wählen Sie unter Action mode (Aktionsmodus) Create or update a stack (Einen Stack erstellen oder aktualisieren) aus.
-
Geben Sie unter Stack name (Stack-Name) einen Namen für den Stapel ein. Dies ist der Name des Stacks, den die Vorlage erstellt.
-
Geben Sie unter Output file name (Ausgabedateiname) einen Namen für die Ausgabedatei ein, z. B.
outputs
. Dies ist der Name der Datei, die durch die Aktion erstellt wird, nachdem der Stack erstellt wurde. -
Erweitern Sie Advanced (Erweitert). Geben Sie unter Parameter overrides (Parameterüberschreibungen) Ihre Vorlagenüberschreibungen als Schlüssel-Wert-Paare ein. Diese Vorlage erfordert beispielsweise die folgenden Überschreibungen.
{ "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "
UserName
", "MasterPassword": "Password
", "DBInstanceClass": "db.r4.large", "Purpose": "testing"}Wenn Sie keine Überschreibungen eingeben, erstellt die Vorlage einen Stack mit Standardwerten.
-
Wählen Sie Weiter.
-
Wählen Sie Create pipeline (Pipeline erstellen) aus. Lassen Sie die Ausführung Ihrer Pipeline zu. Ihre zweistufige Pipeline ist damit vollständig und bereit für die zusätzlichen Stufen , die hinzugefügt werden sollen.
-
Schritt 3: Fügen Sie eine AWS CloudFormation Bereitstellungsaktion hinzu, um den Änderungssatz zu erstellen
Erstellen Sie eine nächste Aktion in Ihrer Pipeline, mit der Sie AWS CloudFormation den Änderungssatz vor der manuellen Genehmigungsaktion erstellen können.
-
Öffnen Sie die CodePipeline Konsole unter https://console.aws.amazon.com/codepipeline/
. Wählen Sie unter Pipelines Ihre Pipeline und dann View (Anzeigen) aus. Das Diagramm zeigt die Quell- und Bereitstellungsphase Ihrer Pipeline an.
-
Wählen Sie, ob Sie die Pipeline bearbeiten möchten, oder fahren Sie mit der Anzeige der Pipeline im Modus Edit (Bearbeiten) fort.
-
Wählen Sie, ob Sie die Bereitstellungsphase bearbeiten möchten.
-
Fügen Sie eine Bereitstellungsaktion hinzu, die einen Änderungssatz für den Stack erstellt, der in der vorherigen Aktion erstellt wurde. Sie fügen diese Aktion nach der vorhandenen Aktion in der Phase hinzu.
-
Geben Sie unter Action name (Aktionsname) Change_Set ein. Wählen Sie unter Aktionsanbieter die Option aus AWS CloudFormation .
-
Wählen Sie unter Eingabeartefakt die Option aus SourceArtifact.
-
Wählen Sie unter Action mode (Aktionsmodus) die Option Create or replace a change set (Einen Änderungssatz erstellen oder ersetzen) aus.
-
Geben Sie unter Stack name (Stack-Name) die Variablensyntax ein, wie hier gezeigt. Dies ist der Name des Stacks, für den der Änderungssatz erstellt wird, wobei der Standard-Namespace
DeployVariables
der Aktion zugewiesen wird.#{DeployVariables.StackName}
-
Geben Sie unter Change set name (Name des Änderungssatzes) den Namen des Änderungssatzes ein.
my-changeset
-
Ändern Sie unter Parameter overrides (Parameterüberschreibungen) den
Purpose
-Parameter vontesting
zuproduction
.{ "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "UserName", "MasterPassword": "Password", "DBInstanceClass": "db.r4.large", "Purpose": "production"}
-
Wählen Sie Done (Fertig), um die Aktion zu speichern.
-
Schritt 4: Hinzufügen einer manuellen Genehmigungsaktion
Erstellen Sie eine manuelle Genehmigungsaktion in Ihrer Pipeline.
-
Wählen Sie, ob Sie die Pipeline bearbeiten möchten, oder fahren Sie mit der Anzeige der Pipeline im Modus Edit (Bearbeiten) fort.
-
Wählen Sie, ob Sie die Bereitstellungsphase bearbeiten möchten.
-
Fügen Sie nach der Bereitstellungsaktion, die den Änderungssatz erstellt, eine manuelle Genehmigungsaktion hinzu. Mit dieser Aktion können Sie den erstellten Ressourcen-Änderungssatz überprüfen, AWS CloudFormation bevor die Pipeline den Änderungssatz ausführt.
Schritt 5: Fügen Sie eine CloudFormation Bereitstellungsaktion hinzu, um den Änderungssatz auszuführen
Erstellen Sie eine nächste Aktion in Ihrer Pipeline, mit der Sie den Änderungssatz nach der manuellen Genehmigungsaktion ausführen können AWS CloudFormation .
-
Öffnen Sie die CodePipeline Konsole unter https://console.aws.amazon.com/codepipeline/
. Wählen Sie unter Pipelines Ihre Pipeline und dann View (Anzeigen) aus. Das Diagramm zeigt die Quell- und Bereitstellungsphase Ihrer Pipeline an.
-
Wählen Sie, ob Sie die Pipeline bearbeiten möchten, oder fahren Sie mit der Anzeige der Pipeline im Modus Edit (Bearbeiten) fort.
-
Wählen Sie, ob Sie die Bereitstellungsphase bearbeiten möchten.
-
Fügen Sie eine Bereitstellungsaktion hinzu, mit der der Änderungssatz ausgeführt wird, der in der vorherigen manuellen Aktion genehmigt wurde:
-
Geben Sie unter Action name (Aktionsname) Execute_Change_Set ein. Wählen Sie unter Aktionsanbieter die Option aus AWS CloudFormation.
-
Wählen Sie unter Eingabeartefakt die Option aus SourceArtifact.
-
Wählen Sie unter Action mode (Aktionsmodus) die Option Execute a change set (Einen Änderungssatz ausführen).
-
Geben Sie unter Stack name (Stack-Name) die Variablensyntax ein, wie hier gezeigt. Dies ist der Name des Stacks, für den der Änderungssatz erstellt wird.
#{DeployVariables.StackName}
-
Geben Sie unter Change set name (Name des Änderungssatzes) den Namen des Änderungssatzes ein, den Sie in der vorherigen Aktion erstellt haben.
my-changeset
-
Wählen Sie Done (Fertig), um die Aktion zu speichern.
-
Fahren Sie mit der Pipeline-Ausführung fort.
-
Schritt 6: Fügen Sie eine CloudFormation Bereitstellungsaktion hinzu, um den Stack zu löschen
Erstellen Sie eine letzte Aktion in Ihrer Pipeline, mit der Sie AWS CloudFormation den Stack-Namen aus der Variablen in der Ausgabedatei abrufen und den Stack löschen können.
-
Öffnen Sie die CodePipeline Konsole unter https://console.aws.amazon.com/codepipeline/
. Wählen Sie unter Pipelines Ihre Pipeline und dann View (Anzeigen) aus. Das Diagramm zeigt die Quell- und Bereitstellungsphase Ihrer Pipeline an.
-
Wählen Sie diese Option, um die Pipeline zu bearbeiten.
-
Wählen Sie, ob Sie die Bereitstellungsphase bearbeiten möchten.
-
Fügen Sie eine Bereitstellungsaktion hinzu, die den Stack löscht:
-
Wählen Sie im Feld Aktionsname die Option DeleteStack. Wählen Sie unter Deploy provider (Bereitstellungsanbieter) die Option CloudFormation aus.
-
Wählen Sie unter Action mode (Aktionsmodus) die Option Delete a Stack (Stack löschen) aus.
-
Geben Sie unter Stack name (Stack-Name) die Variablensyntax ein, wie hier gezeigt. Dies ist der Name des Stacks, den die Aktion löschen wird.
-
Wählen Sie Done (Fertig), um die Aktion zu speichern.
-
Wählen Sie Save (Speichern), um die Pipeline zu speichern.
Die Pipeline wird ausgeführt, wenn sie gespeichert wird.
-