Direkt zum Inhalt

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 verwenden, der meinen Anforderungen entspricht.

Lösung

In der folgenden Lösung werden Windows und Linux als Beispielumgebungen verwendet, um zu demonstrieren, wie verschiedene Parameter dynamisch in einem CloudFormation-Stack verwendet werden.

  1. Öffne die AWS Systems Manager-Konsole.

  2. Wähle im Navigationsbereich Parameter Store aus.

  3. Erstelle 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: Ersetze AMI-Id-for-Linux-resources und AMI-Id-for-Windows-resources durch die AMI-IDs für deine Ressourcen.

  4. Verwende 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 Bedingung CreateWindowsResources als wahr ausgewertet. CloudFormation verwendet den unter WindowsAmiId gespeicherten Wert, um die Ressource AWS::EC2::Instance bereitzustellen. Für Linux wird die Bedingung als falsch ausgewertet, und CloudFormation verwendet den unter LinuxAmiId gespeicherten Wert, um die Ressource AWS::EC2::Instance bereitzustellen.

Weitere Informationen zur dynamischen Referenzierung findest du unter Abrufen von Werten, die in anderen Services gespeichert sind, unter Verwendung dynamischer Referenzen.

Ähnliche Informationen

Dynamische Referenzen

AWS OFFICIALAktualisiert vor 2 Jahren