Ändern einer Stack-Vorlage - AWS CloudFormation

Ändern einer Stack-Vorlage

Wenn Sie Ressourcen und Eigenschaften ändern möchten, die in einer Stack-Vorlage deklariert sind, müssen Sie die Stack-Vorlage ändern. Um sicherzustellen, dass Sie nur die Ressourcen aktualisieren, die Sie aktualisieren möchten, verwenden Sie die Vorlage für den vorhandenen Stack als Ausgangspunkt und machen Sie Ihre Updates zu dieser Vorlage. Wenn Sie Ihre Vorlage in einem Source-Control-System verwalten, verwenden Sie eine Kopie dieser Vorlage als Ausgangspunkt. Andernfalls können Sie eine Kopie einer Stack-Vorlage von AWS CloudFormation erhalten.

Wenn Sie nur die Parameter oder die Einstellungen eines Stacks ändern wollen (wie ein Amazon SNS-Inhalt eines Stacks), können Sie die vorhandene Stack-Vorlage erneut benutzen. Sie brauchen keine Kopie der Stack-Vorlage und müssen auch keine Änderungen an der Stack-Vorlage vornehmen.

Anmerkung

Wenn Ihre Vorlage eine nicht unterstützte Änderung enthält, antwortet AWS CloudFormation mit einer Meldung, dass die Änderung nicht zulässig ist. Diese Meldung kann jedoch asynchron auftreten, da Ressourcen von AWS CloudFormation standardmäßig in einer nicht-deterministischen Reihenfolge erstellt und aktualisiert werden.

Aktualisieren einer Stack-Vorlage (Konsole)

  1. Klicken Sie auf der Seite Stacks der AWS CloudFormation-Konsole auf den Namen des Stacks, den Sie aktualisieren möchten.

  2. Wählen Sie im Stack-Detailbereich für den ausgewählten Stack den Bereich Vorlage aus und klicken Sie dann auf View in Designer (In Designer anzeigen).

    AWS CloudFormation öffnet eine Kopie der Stack-Vorlage im AWS CloudFormation Designer.

  3. Ändern der Vorlage.

    Sie können die AWS CloudFormation Designer-Drag-and-Drop-Schnittstelle oder den Integrierter JSON- und YAML-Editor zum Ändern der Vorlage verwenden. Weitere Informationen zur Verwendung von AWS CloudFormation Designer finden Sie unter Was ist AWS CloudFormation Designer?.

    Ändern Sie nur die Ressourcen, die Sie aktualisieren möchten. Verwenden Sie die gleichen Werte wie die aktuelle Stack-Konfiguration für Ressourcen und Eigenschaften, die Sie nicht aktualisieren. Sie können die Vorlage ändern, indem Sie eine der folgenden Aktionen ausführen:

    • Fügen Sie neue Ressourcen hinzu, oder entfernen Sie vorhandene Ressourcen.

      Für die meisten Ressourcen ist das Ändern des logischen Namens einer Ressource gleichbedeutend mit dem Löschen dieser Ressource und ersetzt sie durch eine neue. Alle anderen Ressourcen, die von der umbenannten Ressource abhängen, müssen ebenfalls aktualisiert werden und können dazu führen, dass sie ersetzt werden. Bei anderen Ressourcen müssen Sie eine Update initiieren, um eine Eigenschaft (nicht nur den logischen Namen) zu aktualisieren.

    • Eigenschaften vorhandener Ressourcen hinzufügen, ändern oder löschen.

      Weitere Informationen finden Sie in der AWS-Ressource-Typen Referenz für Informationen über die Auswirkungen der Aktualisierung bestimmter Ressource-Eigenschaften. Für jede Eigenschaft werden die Auswirkungen eines Updates einer der folgenden sein:

    • Fügen Sie Attribute für Ressourcen (Metadata, DependsOn, CreationPolicy, UpdatePolicy und DeletionPolicy) hinzu, ändern oder löschen Sie diese.

      Wichtig

      Sie können das Attribut CreationPolicy, DeletionPolicy oder UpdatePolicy nicht selbst aktualisieren. Sie können sie nur aktualisieren, wenn Sie Änderungen einschließen, die Ressourcen hinzufügen, ändern oder löschen. Beispielsweise können Sie ein Metadaten-Attribut einer Ressource hinzufügen oder ändern.

    • Parameter-Deklarationen hinzufügen, ändern oder löschen. Sie können jedoch keinen Parameter hinzufügen, ändern oder löschen, der von einer Ressource verwendet wird, die keine Updates unterstützt.

    • Zuordnungsdeklarationen hinzufügen, ändern oder löschen.

      Wichtig

      Wenn die Werte in einer Zuordnung nicht von Ihrem Stack verwendet werden, können Sie die Zuordnung nicht selbst aktualisieren. Sie müssen Änderungen hinzufügen, die Ressourcen hinzufügen, ändern oder löschen. Beispielsweise können Sie ein Metadaten-Attribut einer Ressource hinzufügen oder ändern. Wenn Sie einen Zuordnungswert aktualisieren, den Ihr Stack verwendet, müssen Sie keine weiteren Änderungen vornehmen, um ein Update zu initiieren.

    • Bedingungs-Deklarationen hinzufügen, ändern oder löschen.

      Wichtig

      Sie können keine Bedingungen selbst aktualisieren. Sie können Bedingungen nur aktualisieren, wenn Sie Änderungen einschließen, die Ressourcen hinzufügen, ändern oder löschen. Beispielsweise können Sie ein Metadaten-Attribut einer Ressource hinzufügen oder ändern.

    • Ausgabewert-Deklarationen hinzufügen, ändern oder löschen.

    Einige Ressourcen oder Eigenschaften können Einschränkungen für Eigenschaftswerte oder Änderungen an diesen Werten haben. Beispielsweise müssen Änderungen an der AllocatedStorage-Eigenschaft einer AWS:: RDS:: DBInstance-Ressource größer sein als die aktuelle Einstellung. Wenn der für das Update angegebene Wert diese Einschränkungen nicht erfüllt, schlägt die Aktualisierung für diese Ressource fehl. Die spezifischen Auflagen in Bezug auf AllocatedStorage Änderungen finden Sie unter "ModifyDBInstance".

    Updates zu einer Ressource können die Eigenschaften anderer Ressourcen beeinflussen. Wenn Sie die Referenz-Funktion oder die Fn:: GetAtt Funktion verwendet haben, um ein Attribut aus einer aktualisierten Ressource als Teil eines Eigenschaftswerts in einer anderen Ressource in der Vorlage anzugeben, aktualisiert AWS CloudFormation auch die Ressource, die die Referenz zu der Eigenschaft enthält, die sich geändert hat. Wenn Sie beispielsweise die MasterUsername Eigenschaft einer AWS::RDS::DBInstance Ressource aktualisiert haben und Sie eine AWS::AutoScaling::LaunchConfiguration Ressource hatten die eine UserData Eigenschaft hatte, die eine Referenz zum DB-Instance-Namen enthalten und dabei die Ref Funktion verwendet hat, würde AWS CloudFormation die DB-Instance mit neuem Namen erneut erstellen und auch die LaunchConfiguration Ressource aktualisieren.

  4. Um Ihre Vorlage über die AWS CloudFormation Designer-Symbolleiste auf Syntaxfehler zu überprüfen, wählen Sie Validate template ( ).

    Sehen Sie sich die Fehler im Messages-Bereich an und beheben Sie diese. Validieren Sie die Vorlage anschließend erneut. Wenn Sie keine Fehler sehen, ist Ihre Vorlage syntaktisch gültig.

  5. Wählen Sie in der AWS CloudFormation Designer-Symbolleiste das Menü File (Datei) ( ) und dann Save (Speichern), um die Vorlage in einem S3-Bucket oder lokal zu speichern.

  6. Verwenden Sie Ihre geänderte Vorlage, um Ihren Stack direkt zu aktualisieren oder Ihren Stack mithilfe eines Änderungssatzes zu aktualisieren.

Abrufen und Aktualisieren einer Vorlage für einen Stack (CLI)

  1. Um die Vorlage für den Stack zu erhalten, den Sie aktualisieren möchten, verwenden Sie den Befehl aws cloudformation get-template.

  2. Kopieren Sie die Vorlage, fügen Sie sie in eine Textdatei ein und ändern und speichern Sie sie. Kopieren Sie nur die Vorlage. Der Befehl umschließt die Vorlage in Anführungszeichen, kopiert aber nicht die Anführungszeichen am Anfang und Ende der Vorlage. Die Vorlage selbst beginnt mit einer offenen Klammer und endet mit der letzten engen Klammer. Geben Sie Änderungen an den Stack-Ressourcen in dieser Datei an.

  3. Verwenden Sie Ihre geänderte Vorlage, um Ihren Stack direkt zu aktualisieren oder Ihren Stack mithilfe eines Änderungssatzes zu aktualisieren.