Tutorial: Eine Pipeline mit AWS CloudFormation StackSets Bereitstellungsaktionen erstellen - 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: Eine Pipeline mit AWS CloudFormation StackSets Bereitstellungsaktionen erstellen

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 Instanzen, in denen das Stack-Set bereitgestellt wird.

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

Um Stacksets am effektivsten einsetzen zu können CodePipeline, sollten Sie ein klares Verständnis der dahinterstehenden Konzepte AWS CloudFormation StackSets und ihrer Funktionsweise haben. Weitere Informationen zu den StackSets Konzepten finden Sie im AWS CloudFormation Benutzerhandbuch.

Voraussetzungen

Für Stack-Set-Operationen verwenden Sie zwei verschiedene Konten: ein Administratorkonto 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

Schritt 1: Laden Sie die AWS CloudFormation Beispielvorlage und die Parameterdatei hoch

Erstellen Sie einen Quell-Bucket für Ihre Stackset-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 Amazon S3 S3-Konsole an AWS Management Console und öffnen Sie sie unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie 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 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 die AWS CloudFormation Vorlagendatei zu erstellen
  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 von Validierungen und globalen Ereignissen 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 „Pipeline erstellen“ 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 Quellstufe mit einer S3-Quellaktion, bei der das Quellartefakt Ihre Vorlagendatei und alle unterstützenden Quelldateien ist.

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

  • Eine Bereitstellungsphase mit einer Bereitstellungsaktion für AWS CloudFormation Stack-Instances, 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 Management Console 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. Geben Sie unter Step 1: Choose pipeline settings (Schritt 1: Auswahl der Pipeline-Einstellungen) unter Pipeline name (Pipeline-Name) MyStackSetsPipeline ein.

  4. 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 Pipeline-Typen.

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

  6. Behalten Sie im Artifact Store die Standardeinstellungen bei.

    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 finden Sie unter Eingabe- und Ausgabe-Artefakte und CodePipeline Referenz zur Pipeline-Struktur.

    Wählen Sie Weiter aus.

  7. Auf der Seite Step 2: Add source stage (Schritt 2: Hinzufügen der Quell-Stufe) wählen Sie für Source provider (Quell-Anbieter) die Option Amazon S3.

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

  9. Wählen Sie Weiter aus.

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

  11. Unter Step 4: Add deploy stage (Schritt 4: Bereitstellungsstufe hinzufügen):

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

    2. Geben Sie im Feld Name des Stack-Sets 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 des Quellartefakts. SourceArtifact

      SourceArtifact::template.yml
    4. Geben Sie unter Bereitstellungsziele den Artefaktnamen und den Dateipfad ein, in den Sie Ihre Kontodatei hochgeladen haben. Geben Sie beispielsweise Folgendes ein und verwenden Sie dabei den Standardnamen des Quellartefakts. 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 des Quellartefakts. SourceArtifact

      SourceArtifact::parameters.txt

      Um die Parameter als Literaleingabe 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 Create pipeline (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, ob das Deployment Ihr Stack-Set erfolgreich erstellt hat, können Sie die zweite Aktion zu Ihrer Bereitstellungsphase hinzufügen.

Um die Ressourcen anzusehen
  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 AWS CloudFormation Aktion für die CloudFormationStackSetAktion in Ihrer Pipeline aus. Die Vorlage, die Ressourcen und Ereignisse für Ihr Stack-Set werden in der AWS 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, mit der Sie AWS CloudFormation StackSets die verbleibenden Stack-Instanzen erstellen können.

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 die Option Bearbeiten aus.

  4. Wählen Sie unter der Aktion AWS CloudFormation Stack Set Deploy 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 Aktionsanbieter die Option AWS CloudFormation Stack Instances aus.

    3. Wählen Sie unter Eingabeartefakte die Option aus SourceArtifact.

    4. Geben Sie im Feld Name des Stack-Sets 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 des Artefakts und den Dateipfad ein, in den Sie Ihre Kontodatei hochgeladen haben. Geben Sie beispielsweise Folgendes ein und verwenden Sie dabei den Standardnamen des Quellartefakts. 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 in der Bereitstellungsphase mit zwei Aktionen angezeigt.

Schritt 5: Sehen Sie sich die Stackset-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 und dann Ansicht aus. Das Diagramm zeigt die Quell- und Bereitstellungsphase Ihrer Pipeline an.

  3. Wählen Sie die AWS CloudFormation Aktion für die AWS CloudFormation Stack InstancesAktion in Ihrer Pipeline aus. Die Vorlage, die Ressourcen und Ereignisse für Ihr Stack-Set werden in der AWS 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: Nehmen Sie ein Update für Ihr Stack-Set vor

Nehmen Sie ein Update für Ihr Stack-Set vor und stellen Sie das Update für Instances bereit. In diesem Beispiel ändern Sie auch die Bereitstellungsziele, die Sie für das Update festlegen möchten. Die Instanzen, die nicht Teil des Updates sind, erhalten einen veralteten Status.

  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 Bereitstellungsphase die Option Bearbeiten aus.

  3. Wählen Sie, ob Sie die Aktion AWS CloudFormation Stack Set in Ihrer Pipeline bearbeiten möchten. Überschreiben Sie unter Beschreibung die bestehende 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 Feld Bereitstellungsziel 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 AWS CloudFormation. Wählen Sie die Registerkarte „StackSet Informationen“. Vergewissern Sie sich, dass in der StackSet Beschreibung die neue Beschreibung angezeigt wird.

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