Wie verwende ich in Systems Manager gespeicherte Parameter dynamisch mit einem AWS-CloudFormation-Stack?

Lesedauer: 2 Minute
0

Ich habe mehrere Parameterwerte im AWS Systems Manager Parameter Store gespeichert. Ich möchte diese Parameter dynamisch in einem AWS-CloudFormation-Stack basierend auf meinen Anforderungen verwenden.

Kurzbeschreibung

Die folgende Auflösung verwendet Microsoft Windows und Linux als Beispielumgebungen, um zu demonstrieren, wie verschiedene Parameter dynamisch in einem CloudFormation-Stack verwendet werden.

Wichtig: Wenn Sie die folgenden Befehle und Vorlagen verwenden, müssen Sie Windows und Linux durch Ihre Anforderungen ersetzen.

Auflösung

1.    Öffnen Sie die AWS-Systems-Manager-Konsole.

2.    Wählen Sie im Navigationsbereich Parameter Store aus.

3.    Erstellen Sie Systems-Manager-Parameter als Typ String, um Amazon Machine Image (AMI)-IDs für Linux oder Windows zu speichern.

Linux:

LinuxAmiId - AMI-Id-for-Linux-resources

-oder-

Windows:

WindowsAmiId - AMI-Id-for-Windows-resources

Hinweis: Ersetzen Sie AMI-Id-for-Linux-resources und AMI-Id-for-Windows-resources durch die AMI-IDs für Ihre Ressourcen.

4.    Verwenden Sie die folgende CloudFormation-Beispielvorlage, um den Parameter zu erstellen, der auswählt, welches AMI für die Bereitstellung verwendet werden soll:

 "Parameters": {
    "AmiToUse": {
      "Type": "String",
      "AllowedValues": [
        "windows",
        "linux"
      ]
    }
  },
  "Conditions": {
    "CreateWindowsResources": {
      "Fn::Equals": [
        "windows",
        {
          "Ref": "AmiToUse"
        }
      ]
    }
  },
  "Resources": {
    "EC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": {
          "Fn::If": [
            "CreateWindowsResources",
            "{{resolve:ssm:WindowsAmiId:1}}",
            "{{resolve:ssm:LinuxAmiId:1}}"
          ]
        }
      }
    }
  }

Hinweis: Wenn in der vorherigen Vorlage AmiToUse als windows ausgewählt ist, wird die CreateWindowsResources-Bedingung als true ausgewertet. CloudFormation verwendet den in WindowsAmiId gespeicherten Wert, um die AWS::EC2::Instance-Ressource bereitzustellen. Für Linux wird die Bedingung als false ausgewertet und CloudFormation verwendet den unter LinuxAmiId gespeicherten Wert, um die AWS::EC2::Instance-Ressource bereitzustellen.

Weitere Informationen zur dynamischen Referenzierung finden Sie unter Verwenden dynamischer Referenzen zum Festlegen von Vorlagenwerten.

Ähnliche Informationen

CloudFormation Workshop: Dynamisches Referenzlabor


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr