Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Wie verwende ich Parameter im AWS Systems Manager Parameter Store, um Werte zwischen CloudFormation Stacks auszutauschen?
Ich erhalte eine Fehlermeldung, wenn ich versuche, eine Exportvariable zu aktualisieren, die in einem anderen AWS CloudFormation Stack verwendet wird. Der Fehler ist: „Cannot update an export variable as it is in use by another stack.“
Kurzbeschreibung
Um diesen Fehler zu beheben, verwenden Sie SSM-Parameter im AWS Systems Manager Parameter Store, um Werte zwischen CloudFormation Stacks auszutauschen. Ein SSM-Parameter speichert einen Wert in einem Stapel (StackA), der von einem anderen Stapel (StackB) verwendet werden kann.
Wenn Sie einen SSM-Parameter verwenden, besteht keine Abhängigkeit zwischen den beiden CloudFormation Stacks. Dies liegt daran, dass die Variable im AWS Systems Manager Parameter Store gespeichert ist.
Hinweis: CloudFormation unterstützt mehrere SSM-Parametertypen.
Behebung
- Erstellen Sie einen CloudFormation Stack (StackA), der auf der folgenden Vorlage basiert:
{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "AvailabilityZone": { "Description": "Amazon EC2 instance Availability Zone", "Type": "String" }, "AMIId": { "Description": "The Amazon Machine Image id", "Type": "String" }, "InstanceType": { "Description": "The Type of instance", "Type": "String" } }, "Resources": { "myinstance": { "Type": "AWS::EC2::Instance", "Properties": { "AvailabilityZone": { "Fn::GetAtt": ["BasicParameter", "Value"] }, "ImageId": { "Ref": "AMIId" }, "InstanceType": { "Ref": "InstanceType" } } }, "BasicParameter": { "Type": "AWS::SSM::Parameter", "Properties": { "Name": "AvailabilityZone", "Type": "String", "Value": { "Ref": "AvailabilityZone" } } } } }
Die vorherige Vorlage erstellt eine Instance und einen SSM-Parameter. Der Wert des SSM-Parameters ist auf die Availability Zone der erstellten Instanz festgelegt. StackA erstellt einen SSM-Parameterspeicher, bei dem der Name auf AvailabilityZone und der Wert auf us-east-2a festgelegt ist.
Hinweis: Sie müssen einen eindeutigen Namen für Ihren SSM-Parameter verwenden.
- Erstellen Sie einen weiteren CloudFormation-Stack (StackB), der auf der folgenden Vorlage basiert.
{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "AMIId": { "Description": "The Amazon Machine Image id", "Type": "String" }, "InstanceType": { "Description": "The Type of instance", "Type": "String" }, "AvailabilityZone": { "Description": "Amazon EC2 instance Availablity Zone", "Type": "AWS::SSM::Parameter::Value<String>", "Default": "AvailabilityZone" } }, "Mappings": {}, "Conditions": {}, "Resources": { "myinstance": { "Type": "AWS::EC2::Instance", "Properties": { "AvailabilityZone": { "Ref": "AvailabilityZone" }, "ImageId": { "Ref": "AMIId" }, "InstanceType": { "Ref": "InstanceType" } } } } }
Diese Vorlage verwendet den SSM-Parameter, den StackA in Schritt 1 erstellt hat.
Hinweis: Um diesen Parameter zu verwenden, müssen Sie einen Parameter in StackB deklarieren. Legen Sie den Typ auf AWS::SSM::Parameter::Value fest<String>. Die aus StackB erstellte Instance wird dann in der Availability Zone us-east-2a gestartet.
3. Um StackA zu aktualisieren, ändern Sie den AvailabilityZone-Parameter von us-east-2a in us-east-2b.
4. Starten Sie die Instance von StackA aus in derselben aktualisierten Availability Zone wie StackB. Jetzt wird die Instance ersetzt und in der Availability Zone us-east-2b gestartet.

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 5 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 4 Monaten