Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

Come posso utilizzare dinamicamente i parametri archiviati in Systems Manager con uno stack AWS CloudFormation?

2 minuti di lettura
0

Ho più valori di parametri archiviati in AWS Systems Manager Parameter Store. Desidero utilizzare questi parametri in modo dinamico in uno stack AWS CloudFormation in base ai miei requisiti.

Risoluzione

La seguente soluzione utilizza Microsoft Windows e Linux come ambienti di esempio per dimostrare come utilizzare parametri diversi in modo dinamico in uno stack CloudFormation.

  1. Apri la console AWS Systems Manager.

  2. Nel pannello di navigazione, scegli Archivio dei parametri.

  3. Crea parametri di Systems Manager come tipo String per archiviare gli ID delle Amazon Machine Image (AMI) per Linux o Windows.

    Linux:

    LinuxAmiId - AMI-Id-for-Linux-resources

    -oppure-

    Windows:

    WindowsAmiId - AMI-Id-for-Windows-resources

    Nota: sostituisci AMI-ID-for-Linux-Resources e AMI-ID-for-Windows-Resources con gli ID AMI per le risorse.

  4. Utilizza il seguente template CloudFormation di esempio per creare il parametro che seleziona quale AMI utilizzare per l'implementazione:

    {
      "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}}"
              ]
            }
          }
        }
      }
    }

    Nota: nel template precedente, se si seleziona AmiToUse come windows, la condizione CreateWindowsResources restituisce true. CloudFormation utilizza il valore archiviato in WindowsAmiId per effettuare il provisioning della risorsa AWS::EC2::Instance. Per Linux, la condizione viene valutata come false e CloudFormation utilizza il valore archiviato in LinuxAmiId per fornire la risorsa AWS::EC2::Instance.

Per ulteriori informazioni sui riferimenti dinamici, consulta Get values stored in other services using dynamic references (Recupero dei valori archiviati in altri servizi utilizzando riferimenti dinamici).

Informazioni correlate

Dynamic references (Riferimenti dinamici)

AWS UFFICIALE
AWS UFFICIALEAggiornata un mese fa