Überschreiben von Parametern auf Stack-Instances - AWS CloudFormation

Überschreiben von Parametern auf Stack-Instances

In einigen Fällen ist es möglicherweise empfehlenswert, dass Stack-Instances in bestimmten Regionen oder Konten andere Eigenschaftswerte besitzen als diejenigen, die im Stack-Set selbst angegeben werden. So möchten Sie beispielsweise abhängig davon, ob ein Konto für die Entwicklung oder die Produktion verwendet wird, für einen bestimmten Parameter einen anderen Wert angeben. Für diese Situationen erlaubt AWS CloudFormation Ihnen in Stack-Instances das Überschreiben von Parameterwerten nach Konto und Region. Sie können Vorlagen-Parameterwerte beim Erstellen neuer Stack-Instances oder auch bei vorhandenen Stack-Instances überschreiben. Nur Parameter, die zuvor in Stack-Instances überschrieben wurden, können wieder auf die im Stack-Set angegebenen Werte zurückgesetzt werden.

Die überschriebenen Parameterwerte werden auf Stack-Instances in den von Ihnen ausgewählten Konten und Regionen angewandt. Während Stack-Set-Aktualisierungen werden alle Parameterwerte, die für eine Stack-Instance überschrieben wurden, nicht aktualisiert, sondern behalten Ihren überschriebenen Wert bei.

Sie können nur Parameterwerte überschreiben, die im Stack-Set angegeben werden. Um einen Parameter selbst hinzuzufügen oder zu löschen, müssen Sie die Stack-Set-Vorlage aktualisieren. Wenn Sie einen Parameter zu einer Stack-Set-Vorlage hinzufügen, müssen Sie zuerst alle Stack-Instances mit dem neuen, im Stack-Set angegebenen Parameter und Wert aktualisieren, bevor Sie diesen Parameterwert in einer Stack-Instance überschreiben können. Nachdem alle Stack-Instances mit dem neuen Parameter aktualisiert wurden, können Sie den Parameterwert in den einzelnen Stack-Instances wie gewünscht überschreiben.

Informationen darüber, wie Stack-Set-Parameterwerte beim Erstellen von Stack-Instances überschrieben werden, finden Sie unter Hinzufügen von Stacks zu einem Stack-Set.

Überschreiben von Parametern auf Stack-Instances mithilfe der AWS Management Console

  1. Öffnen Sie die AWS CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie im Navigationsbereich StackSets aus. Wählen Sie auf der StackSets-Seite das Stack-Set aus, das Sie unter Erstellen eines Stack-Sets erstellt haben. Im Rahmen dieser Anleitung haben wir ein Stack-Set mit der Bezeichnung my-awsconfig-stackset erstellt.

  3. Wählen Sie nach Auswahl des Stack-Sets die Option Override StackSet parameters (StackSet-Parameter überschreiben) im Menü Actions (Aktionen) aus.

    
                        Seite „Manage stacks in stack set page“
  4. Geben Sie auf der Seite Set deployment options (Bereitstellungsoptionen festlegen) die Konten und Regionen für die Stack-Instances ein, deren Parameter Sie überschreiben möchten.

    AWS CloudFormation stellt Stacks in den angegebenen Konten innerhalb der ersten Region bereit und fährt dann mit der jeweils nächsten Region fort, solange die Bereitstellungsfehler für eine Region eine festgelegte Fehlertoleranz nicht überschreiten.

    1. [Selbstverwaltete Berechtigungen] Wählen Sie für Deployment targets (Bereitstellungsziele) die Option Deploy stacks in accounts (Stacks in Konten bereitstellen) aus. Fügen Sie einige oder alle Zielkonto-IDs ein, die Sie verwendet haben, um Ihr Stack-Set in Erstellen eines Stack-Sets zu erstellen.

      [Serviceverwaltete Berechtigungen] Wählen Sie für Deployment targets (Bereitstellungsziele) die Konten in Ihrer Organisation für die Bereitstellung aus.

      • Wählen Sie Deploy to organizational units (OUs) (Für Organisationseinheiten (OUs) bereitstellen) aus. Wählen Sie eine oder mehrere Ziel-OUs aus, die Sie zum Erstellen des Stack-Sets in Erstellen eines Stack-Sets verwendet haben. Die überschriebenen Parameterwerte gelten nur für die Konten, die sich derzeit in den Ziel-OUs und ihren untergeordneten OUs befinden. Konten, die den Ziel-OUs und ihren untergeordneten OUs zukünftig hinzugefügt werden, verwenden die Stack-Set-Standardwerte und nicht die überschriebenen Werte.

        
                                        Bereitstellen von Parameterüberschreibungen für alle Konten in ausgewählten OUs in Ihrer Organisation.
      • Wählen Sie Deploy to accounts (Für Konten bereitstellen) aus. Fügen Sie einige oder alle Ziel-OU-IDs oder Konto-IDs ein, die Sie verwendet haben, um Ihr Stack-Set in Erstellen eines Stack-Sets zu erstellen.

        
                                        Bereitstellen von Parameterüberschreibungen für ausgewählte Konten in Ihrer Organisation.
    2. Fügen Sie für Deployment regions (Bereitstellungsregionen) eine oder mehrere der Regionen hinzu, in denen Sie Stack-Instances für dieses Stack-Set bereitgestellt haben.

      Wenn Sie mehrere Regionen hinzufügen, bestimmt die Reihenfolge der Regionen unter Specify regions (Regionen angeben) die Reihenfolge ihrer Bereitstellung.

    3. Für Deployment options (Bereitstellungsoptionen):

      • Für Maximum concurrent accounts (Maximale Anzahl paralleler Konten) behalten Sie die Standardwerte Number (Zahl) und 1 bei.

        Dies bewirkt, dass AWS CloudFormation Ihren Stack jeweils nur in einem Konto bereitstellt.

      • Behalten Sie für Failure tolerance (Fehlertoleranz) die Standardwerte Number (Zahl) und 0 bei.

        Dies bedeutet, dass maximal eine Stack-Bereitstellung in einer der angegebenen Regionen fehlschlagen kann, bevor AWS CloudFormation die Bereitstellung in der aktuellen Region stoppt und die Bereitstellung in den verbleibenden Regionen abbricht.

      Wählen Sie Next.

  5. Aktivieren Sie auf der Seite Specify Overrides (Überschreibungen angeben) den Frequency-Parameter und wählen Sie dann Override StackSet value (StackSet-Wert überschreiben) im Menü Edit override value (Überschreibungswert bearbeiten) aus.

    
                        Auswählen der zu überschreibenden Parameter und dann der Option „Override StackSet value (StackSet-Wert überschreiben)“
  6. Wählen Sie unter Override StackSet parameter values (StackSet-Parameterwerte überschreiben) die Option 6hours für den Frequency-Parameter und dann Save changes (Änderungen speichern) aus. Sie weisen AWS CloudFormation an, den Frequency (Frequenz)-Parameterwert zu überschreiben und für alle Stack-Instances der angegebenen Konten in den angegebenen Regionen 6hours (6 Stunden) zu verwenden. Wählen Sie Next.

    Anmerkung

    Um alle überschriebenen Parameter wieder auf den im Stack-Set angegebenen Wert zurückzusetzen, aktivieren Sie alle Parameter und wählen Sie Set to StackSet value (Auf StackSet-Wert festlegen) im Menü Edit override value (Überschreibungswert bearbeiten) aus. Dadurch werden alle überschriebenen Werte beim Aktualisieren der Stack-Instances entfernt.

  7. Überprüfen Sie auf der Seite Review (Prüfen) Ihre Auswahl. Beachten Sie, dass der Parameter Frequency einen Wert in der Spalte Override value (Wert überschreiben) anzeigt, was angibt, dass sein Wert auf der Stack-Ebene überschrieben wurde.

    Bevor Sie Parameter für diese Stack-Instances überschreiben können, müssen Sie das Kontrollkästchen im Bereich Capabilities (Funktionalitäten) aktivieren. Sie erkennen damit an, dass einige der Ressourcen, die Sie mit dem Stack-Set erstellen, unter Umständen neue IAM-Ressourcen und -Berechtigungen erfordern. Weitere Informationen zu eventuell erforderlichen Berechtigungen finden Sie unter Bestätigung der IAM-Ressourcen in AWS CloudFormation-Vorlagen in dieser Anleitung. Wenn Sie bereit sind, wählen Sie Submit (Einsenden) aus.

  8. AWS CloudFormation beginnt mit dem Aktualisieren Ihrer Stack-Instances. Zeigen Sie Fortschritt und Status der Stack-Instances auf der StackSet-Detailseite an. Diese Seite wird geöffnet, wenn Sie Submit (Einsenden) auswählen.

Überschreiben von Parametern auf Stack-Instances mithilfe der AWS CLI

Wenn Sie als delegierter Administrator agieren, müssen Sie den Parameter --call-as jedes Mal auf DELEGATED_ADMIN festlegen, wenn Sie einen StackSets-Befehl ausführen.

--call-as DELEGATED_ADMIN

Führen Sie den AWS CLI-Befehl update-stack-instances aus und geben Sie --parameter-overrides an: Weitere Informationen zum Angeben von --parameter-overrides finden Sie unter Parameter in der AWS CloudFormation-API-Referenz und update-stack-instances in der AWS CLI-Befehlsreferenz.

Im hier gezeigten Beispielbefehl ändern wir die Häufigkeit der Übermittlung von Standard-Snapshots für die Konfiguration des Übermittlungskanals von TwentyFour_Hours auf Twelve_Hours für die angegebenen Stack-Instances.

  1. Führen Sie den folgenden Befehl aus. Geben Sie für --stack-set-name den Stack-Set-Namen my-awsconfig-stackset an.

    Legen Sie die Fehlertoleranz und die maximale Anzahl gleichzeitiger Konten fest, indem Sie im Parameter FailureToleranceCount wie im folgenden Beispiel den Wert für 0 auf MaxConcurrentCount und für 1 auf --operation-preferences festlegen. Wenn Sie stattdessen Prozentwerte sehen möchten, verwenden Sie FailureTolerancePercentage oder MaxConcurrentPercentage. Für diesen Walkthrough verwenden wir Zählung, nicht Prozentsatz.

    Anmerkung

    Der Wert von MaxConcurrentCount hängt vom Wert von FailureToleranceCount ab. MaxConcurrentCount ist höchstens eins mehr als FailureToleranceCount.

    [Selbstverwaltete Berechtigungen] Geben Sie die Konto-IDs an, für die Sie Parameterwerte für Stack-Instances überschreiben möchten.

    aws cloudformation update-stack-instances --stack-set-name my-awsconfig-stackset --parameter-overrides ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --accounts '["012345678901"]' --regions '["eu-west-1", "us-west-2"]'

    [Serviceverwaltete Berechtigungen] Geben Sie die Organisationsstamm-ID, OU-IDs oder AWS-Organizations-Konto-IDs an, für die Sie Parameter für Stack-Instances überschreiben möchten. In diesem Beispiel überschreiben wir Parameterwerte für Stack-Instances in allen Konten in der OU mit der ID ou-rcuk-1x5j1lwo.

    Die überschriebenen Parameterwerte gelten nur für die Konten, die sich derzeit in der Ziel-Organisationseinheit und den untergeordneten Organisationseinheiten befinden. Konten, die zukünftig der Ziel-OU und ihren untergeordneten OUs hinzugefügt werden, verwenden die Stack-Set-Standardwerte und nicht die überschriebenen Werte.

    aws cloudformation update-stack-instances --stack-set-name my-awsconfig-stackset --parameter-overrides ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo"]' --regions '["eu-west-1", "us-west-2"]'
  2. Stellen Sie sicher, dass Ihre Parameterwerte auf Stack-Instances erfolgreich überschrieben wurden, indem Sie den describe-stack-set-operation-Befehl ausführen, um den Status und die Ergebnisse der Aktualisierungsoperation anzuzeigen. Verwenden Sie als --operation-id die Operations-ID, die durch den Befehl update-stack-instances zurückgegeben wurde.

    aws cloudformation describe-stack-set-operation --operation-id operation_ID