Tutorial: Erstellen Sie eine Pipeline mit AWS CloudFormation StackSets Aktionen zur Bereitstellung - AWS CodePipeline

View a markdown version of this page

Tutorial: Erstellen Sie eine Pipeline mit AWS CloudFormation StackSets Aktionen zur Bereitstellung - 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.

Tutorial: Erstellen Sie eine Pipeline mit AWS CloudFormation StackSets Aktionen zur Bereitstellung

In diesem Tutorial verwenden Sie die AWS CodePipeline Konsole, um eine Pipeline mit Bereitstellungsaktionen zum Erstellen eines Stack-Sets und zum Erstellen von Stack-Instances zu erstellen. Wenn die Pipeline ausgeführt wird, erstellt die Vorlage ein Stack-Set und erstellt und aktualisiert auch die Instances, in denen das Stack-Set bereitgestellt wird.

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 als dem Konto für Ihre Pipeline befindet, stellen Sie sicher, dass der S3-Artefakt-Bucket dem Konto gehört AWS-Konten , das sicher und zuverlässig ist.

Es gibt zwei Möglichkeiten, Berechtigungen für ein Stack-Set zu verwalten: selbstverwaltete und AWS-verwaltete IAM-Rollen. Dieses Tutorial enthält Beispiele für selbstverwaltete Berechtigungen.

Um es am effektivsten nutzen StackSets zu können CodePipeline, sollten Sie ein klares Verständnis der dahinter stehenden Konzepte CloudFormation StackSets und ihrer Funktionsweise haben. Die StackSets Konzepte finden Sie im AWS CloudFormation Benutzerhandbuch.

Voraussetzungen

Für Stack-Set-Operationen verwenden Sie zwei verschiedene Konten: ein Verwaltungskonto und ein Zielkonto. Sie erstellen Stack-Sets im Administratorkonto. Sie erstellen einzelne Stacks, die zu einem Stack-Set im Zielkonto gehören.

Um eine Administratorrolle mit Ihrem Administratorkonto zu erstellen
Um eine Servicerolle im Zielkonto zu erstellen
  • Erstellen Sie eine Servicerolle im Zielkonto, die dem Administratorkonto vertraut. Folgen Sie den Anweisungen unter Grundberechtigungen für Stack-Set-Operationen einrichten. Ihre Rolle muss benannt werden AWSCloudFormationStackSetExecutionRole.

Schritt 1: Laden Sie das Beispiel hoch AWS CloudFormation Vorlage und Parameterdatei

Erstellen Sie einen Quell-Bucket für Ihre Stack-Set-Vorlagen- und Parameterdateien. Laden Sie die AWS CloudFormation Beispielvorlagendatei herunter, richten Sie eine Parameterdatei ein und komprimieren Sie dann die Dateien, bevor Sie sie in Ihren S3-Quell-Bucket hochladen.

Anmerkung

Stellen Sie sicher, dass Sie die Quelldateien komprimieren, bevor Sie sie in Ihren S3-Quell-Bucket hochladen, auch wenn die einzige Quelldatei die Vorlage ist.

Um einen S3-Quell-Bucket zu erstellen
  1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie Create Bucket (Bucket erstellen) aus.

  3. Geben Sie in Bucketname einen Namen für Ihren Bucket ein.

    Wählen Sie unter Region die Region aus, in der Sie Ihre Pipeline erstellen möchten. Wählen Sie Create Bucket (Bucket erstellen) aus.

  4. Nachdem der Bucket erstellt wurde, wird ein Erfolgsbanner angezeigt. Wählen Sie Go to bucket details (Zu Bucket-Details wechseln) aus.

  5. Wählen Sie auf der Registerkarte Properties (Eigenschaften) die Option Versioning aus. Wählen Sie Enable versioning (Versioning aktivieren) und dann Save (Speichern)aus.

Um das zu erstellen AWS CloudFormation Vorlagendatei
  1. Laden Sie die folgende Beispielvorlagendatei zum Generieren der CloudTrail Konfiguration für Stack-Sets herunter:https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml.

  2. Speichern Sie die Datei als template.yml.

Um die Datei parameters.txt zu erstellen
  1. Erstellen Sie eine Datei mit den Parametern für Ihre Bereitstellung. Parameter sind Werte, die Sie zur Laufzeit in Ihrem Stack aktualisieren möchten. Die folgende Beispieldatei aktualisiert die Vorlagenparameter für Ihr Stack-Set, um die Protokollierung, Validierung und globale Ereignisse zu ermöglichen.

    [ { "ParameterKey": "EnableLogFileValidation", "ParameterValue": "true" }, { "ParameterKey": "IncludeGlobalEvents", "ParameterValue": "true" } ]
  2. Speichern Sie die Datei als parameters.txt.

Um die Datei accounts.txt zu erstellen
  1. Erstellen Sie eine Datei mit den Konten, für die Sie Instanzen erstellen möchten, wie in der folgenden Beispieldatei gezeigt.

    [ "111111222222","333333444444" ]
  2. Speichern Sie die Datei als accounts.txt.

Um Quelldateien zu erstellen und hochzuladen
  1. Kombinieren Sie die Dateien zu einer einzigen ZIP-Datei. Ihre Dateien sollten in Ihrer ZIP-Datei so aussehen.

    template.yml parameters.txt accounts.txt
  2. Laden Sie die ZIP-Datei in Ihren S3-Bucket hoch. Diese Datei ist das Quellartefakt, das vom Assistenten zum Erstellen einer Pipeline für Ihre Bereitstellungsaktion in CodePipeline erstellt wurde.

Schritt 2: Erstellen der Pipeline

In diesem Abschnitt erstellen Sie eine Pipeline mit den folgenden Aktionen:

  • Eine Quellphase mit einer S3-Quellaktion, bei der das Quellartefakt Ihre Vorlagendatei und alle unterstützenden Quelldateien sind.

  • Eine Bereitstellungsphase mit einer CloudFormation Stack-Set-Bereitstellungsaktion, die das Stack-Set erstellt.

  • Eine Bereitstellungsphase mit einer CloudFormation Stack-Instances Deployment-Aktion, die die Stacks und Instances innerhalb der Zielkonten erstellt.

Um eine Pipeline mit einer CloudFormationStackSet Aktion zu erstellen
  1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CodePipeline Konsole unter http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. 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).

  3. Wählen Sie auf der Seite Schritt 1: Erstellungsoption auswählen unter Erstellungsoptionen die Option Benutzerdefinierte Pipeline erstellen aus. Wählen Sie Weiter aus.

  4. Geben Sie auf Schritt 2: Wählen Sie die Pipeline-Einstellungen aus und geben Sie im Feld Pipeline-Name den Wert einMyStackSetsPipeline.

  5. Wählen Sie für die Zwecke dieses Tutorials unter Pipeline-Typ die Option V1 aus. Sie können auch V2 wählen. Beachten Sie jedoch, dass sich die Pipeline-Typen in ihren Eigenschaften und ihrem Preis unterscheiden. Weitere Informationen finden Sie unter Pipeline-Typen.

  6. Wählen Sie unter Servicerolle die Option Neue Servicerolle aus, um CodePipeline das Erstellen einer Servicerolle in IAM zu ermöglichen.

  7. Belassen Sie im Artifact Store die Standardeinstellungen.

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

  8. Wählen Sie auf der Seite „Schritt 3: Quellphase hinzufügen“ unter Quellanbieter die Option Amazon S3 aus.

  9. Geben Sie unter Bucket den S3-Quell-Bucket ein, den Sie für dieses Tutorial erstellt haben, z. BucketName B. Geben Sie unter S3-Objektschlüssel den Dateipfad und den Dateinamen für Ihre ZIP-Datei ein, z. MyFiles.zip B.

  10. Wählen Sie Weiter aus.

  11. Wählen Sie in Schritt 4: Build-Phase hinzufügen die Option Build-Phase überspringen und akzeptieren Sie dann die Warnmeldung, indem Sie erneut Skip wählen.

    Wählen Sie Weiter aus.

  12. Wählen Sie in Schritt 5: Testphase hinzufügen die Option Testphase überspringen aus und akzeptieren Sie dann die Warnmeldung, indem Sie erneut Überspringen auswählen.

    Wählen Sie Weiter aus.

  13. In Schritt 6: Bereitstellungsphase hinzufügen:

    1. Wählen Sie unter Deploy-Anbieter die Option AWS CloudFormation Stack Set aus.

    2. Geben Sie im Feld Stack-Set-Name einen Namen für das Stack-Set ein. Dies ist der Name des Stack-Sets, das die Vorlage erstellt.

      Anmerkung

      Notieren Sie sich den Namen Ihres Stack-Sets. Sie werden ihn verwenden, wenn Sie Ihrer Pipeline die zweite StackSets Bereitstellungsaktion hinzufügen.

    3. Geben Sie im Feld Vorlagenpfad den Namen des Artefakts und den Dateipfad ein, in den Sie Ihre Vorlagendatei hochgeladen haben. Geben Sie beispielsweise Folgendes ein und verwenden Sie dabei den Standardnamen für das Quellartefakt. SourceArtifact

      SourceArtifact::template.yml
    4. Geben Sie im Feld Einsatzziele den Namen des Artefakts und den Dateipfad ein, in den Sie Ihre Kontodatei hochgeladen haben. Geben Sie beispielsweise Folgendes ein und verwenden Sie dabei den Standardnamen für das Quellartefakt. SourceArtifact

      SourceArtifact::accounts.txt
    5. Geben Sie im Feld Bereitstellungsziel AWS-Regionen eine Region für die Bereitstellung Ihrer ersten Stack-Instance ein, z. B. us-east-1

    6. Erweitern Sie die Bereitstellungsoptionen. Geben Sie unter Parameter den Namen des Artefakts und den Dateipfad ein, in den Sie Ihre Parameterdatei hochgeladen haben. Geben Sie beispielsweise Folgendes ein und verwenden Sie dabei den Standardnamen für das Quellartefakt. SourceArtifact

      SourceArtifact::parameters.txt

      Um die Parameter als literale Eingabe und nicht als Dateipfad einzugeben, geben Sie Folgendes ein:

      ParameterKey=EnableLogFileValidation,ParameterValue=true ParameterKey=IncludeGlobalEvents,ParameterValue=true
    7. Wählen Sie unter Capabilities die Optionen CAPABILITY_IAM und CAPABILITY_NAMED_IAM aus.

    8. Wählen Sie im Berechtigungsmodell die Option SELF_MANAGED aus.

    9. Geben Sie im Feld Prozentsatz der Fehlertoleranz den Wert ein. 20

    10. Geben 25 Sie im Feld Maximaler Prozentsatz gleichzeitig den Wert ein.

    11. Wählen Sie Weiter aus.

    12. Wählen Sie in Schritt 7: Überprüfen die Option Pipeline erstellen aus. Ihre Pipeline wird angezeigt.

    13. Lassen Sie die Ausführung Ihrer Pipeline zu.

Schritt 3: Erste Bereitstellung anzeigen

Sehen Sie sich die Ressourcen und den Status Ihrer ersten Bereitstellung an. Nachdem Sie überprüft haben, dass Ihr Stack-Set durch die Bereitstellung erfolgreich erstellt wurde, können Sie die zweite Aktion zu Ihrer Bereitstellungsphase hinzufügen.

Um die Ressourcen einzusehen
  1. Öffnen Sie die CodePipeline Konsole unter https://console.aws.amazon.com/codepipeline/.

  2. Wählen Sie unter Pipelines Ihre Pipeline und dann View (Anzeigen) aus. Das Diagramm zeigt die Quell- und Bereitstellungsphase Ihrer Pipeline an.

  3. Wählen Sie die CloudFormation Aktion für die CloudFormationStackSet Aktion in Ihrer Pipeline aus. Die Vorlage, die Ressourcen und Ereignisse für Ihr Stack-Set werden in der CloudFormation Konsole angezeigt.

  4. Wählen Sie im linken Navigationsbereich StackSets. Wählen Sie in der Liste das neue Stack-Set aus.

  5. Wählen Sie den Tab Stack-Instances. Stellen Sie sicher, dass eine Stack-Instance für jedes von Ihnen angegebene Konto in der Region us-east-1 erstellt wurde. Stellen Sie sicher, dass der Status für jede Stack-Instance lautet. CURRENT

Schritt 4: Fügen Sie eine CloudFormationStackInstances Aktion hinzu

Erstellen Sie eine nächste Aktion in Ihrer Pipeline, die es ermöglicht, die verbleibenden Stack-Instances CloudFormation StackSets zu erstellen.

Um eine nächste Aktion in Ihrer Pipeline zu erstellen
  1. Ö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.

  2. Wählen Sie diese Option, um die Pipeline zu bearbeiten. Die Pipeline wird im Bearbeitungsmodus angezeigt.

  3. Wählen Sie in der Bereitstellungsphase Bearbeiten aus.

  4. Wählen Sie unter der AWS CloudFormation Stack Set-Bereitstellungsaktion die Option Aktionsgruppe hinzufügen aus.

  5. Fügen Sie auf der Seite Aktion bearbeiten die Aktionsdetails hinzu:

    1. Geben Sie im Feld Aktionsname einen Namen für die Aktion ein.

    2. Wählen Sie unter Action Provider die Option AWS CloudFormation Stack Instances aus.

    3. Wählen Sie unter Input Artifacts die Option aus SourceArtifact.

    4. Geben Sie im Feld Stack-Set-Name den Namen für das Stack-Set ein. Dies ist der Name des Stack-Sets, das Sie in der ersten Aktion angegeben haben.

    5. Geben Sie unter Bereitstellungsziele den Namen und den Dateipfad des Artefakts ein, in den Sie Ihre Kontodatei hochgeladen haben. Geben Sie beispielsweise Folgendes ein und verwenden Sie dabei den Standardnamen für das Quellartefakt. SourceArtifact

      SourceArtifact::accounts.txt
    6. Geben Sie im Feld Bereitstellungsziel AWS-Regionen die Regionen für die Bereitstellung Ihrer verbleibenden Stack-Instances ein, z. B. us-east-2 und eu-central-1 wie folgt:

      us-east2, eu-central-1
    7. Geben Sie im Feld Prozentsatz der Fehlertoleranz den Wert ein20.

    8. Geben 25 Sie im Feld Maximaler Prozentsatz gleichzeitig den Wert ein.

    9. Wählen Sie Speichern.

    10. Geben Sie eine Änderung manuell frei. Ihre aktualisierte Pipeline wird mit zwei Aktionen in der Bereitstellungsphase angezeigt.

Schritt 5: Sehen Sie sich die Stack-Set-Ressourcen für Ihre Bereitstellung an

Sie können die Ressourcen und den Status für Ihre Stack-Set-Bereitstellung einsehen.

Um die Ressourcen einzusehen
  1. Öffnen Sie die CodePipeline Konsole unter https://console.aws.amazon.com/codepipeline/.

  2. Wählen Sie unter Pipelines Ihre Pipeline aus und klicken Sie dann auf Ansicht. Das Diagramm zeigt die Quell- und Bereitstellungsphase Ihrer Pipeline an.

  3. Wählen Sie die CloudFormation Aktion für die AWS CloudFormation Stack Instances Aktion in Ihrer Pipeline aus. Die Vorlage, die Ressourcen und Ereignisse für Ihr Stack-Set werden in der CloudFormation Konsole angezeigt.

  4. Wählen Sie im linken Navigationsbereich StackSets. Wählen Sie in der Liste Ihr Stack-Set aus.

  5. Wählen Sie den Tab Stack-Instances. Stellen Sie sicher, dass alle verbleibenden Stack-Instances für jedes von Ihnen angegebene Konto in den erwarteten Regionen erstellt oder aktualisiert wurden. Stellen Sie sicher, dass der Status für jede Stack-Instance lautetCURRENT.

Schritt 6: Aktualisieren Sie Ihr Stack-Set

Führen Sie ein Update für Ihr Stack-Set durch und stellen Sie das Update auf Instances bereit. In diesem Beispiel nehmen Sie auch eine Änderung an den Bereitstellungszielen vor, die Sie für die Aktualisierung festlegen möchten. Die Instanzen, die nicht Teil des Updates sind, erhalten den Status „Veraltet“.

  1. Öffnen Sie die CodePipeline Konsole unter https://console.aws.amazon.com/codepipeline/.

  2. Wählen Sie unter Pipelines Ihre Pipeline aus und klicken Sie dann auf Bearbeiten. Wählen Sie in der Phase „Bereitstellen“ die Option Bearbeiten aus.

  3. Wählen Sie, ob Sie die AWS CloudFormation Stack Set-Aktion in Ihrer Pipeline bearbeiten möchten. Überschreiben Sie im Feld Beschreibung die vorhandene Beschreibung mit einer neuen Beschreibung für das Stack-Set.

  4. Wählen Sie, ob Sie die Aktion „AWS CloudFormation Stack Instances“ in Ihrer Pipeline bearbeiten möchten. Löschen Sie im Deployment-Ziel AWS-Regionen den us-east-2 Wert, der bei der Erstellung der Aktion eingegeben wurde.

  5. Speichern Sie die Änderungen. Wählen Sie Änderung veröffentlichen, um Ihre Pipeline auszuführen.

  6. Öffnen Sie Ihre Aktion in CloudFormation. Wählen Sie den StackSet Info-Tab. Vergewissern Sie sich, dass unter StackSet Beschreibung die neue Beschreibung angezeigt wird.

  7. Wählen Sie den Tab Stack-Instances. Stellen Sie unter Status sicher, dass der Status für die Stack-Instances in us-east-2 lautet. OUTDATED