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

2 minuti di lettura
0

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

Breve descrizione

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.

Importante: quando utilizzi i seguenti comandi e modello, assicurati di sostituire Windows e Linux con i tuoi requisiti.

Soluzione

1.    Apri la console di AWS Systems Manager.

2.    Nel pannello di navigazione, scegli Parameter Store (Negozio di parametri).

3.    Crea parametri di Systems Manager come tipo String (Stringa) 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 delle AMI per le tue risorse.

4.    Utilizza il seguente modello di CloudFormation di esempio per creare il parametro che seleziona l'AMI da utilizzare per la distribuzione:

 "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 modello precedente, se AmiToUse è selezionato come windows, la condizione CreateWindowsResources restituisce true (vero). CloudFormation utilizza il valore archiviato in WindowsAmiId per eseguire il provisioning della risorsa AWS::EC2::Instance. Per Linux, la condizione viene valutata come false (falso) e CloudFormation utilizza il valore archiviato in LinuxAmiId per eseguire il provisioning della risorsa AWS::EC2::Instance.

Per ulteriori informazioni sui riferimenti dinamici, consulta Utilizzo dei riferimenti dinamici per specificare i valori del modello.

Informazioni correlate

Workshop CloudFormation: laboratorio di riferimento Dynamic


AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa