Pubblicato il 19/11/2022 da alnao nella categoria AWS

Grazie al servizio di AWS “SSM Parameter Store” è possibile definire alcuni parametri dalla console di AWS e successivamente recuperare i valori da un template CloudFormation, questa tecnica può essere usata per salvare parametri diversi a seconda degli ambienti, per esempio diversificare i valori tra account di test e di produzione.

Bisogna ricordare che usando tale il servizio SSM e il suo “parameter store”, in CloudForamtion viene recuperato il valore al momento della creazione dello stack, se il valore viene aggiornato successivamente alla creazione, sarà necessario eseguire l’aggiornamento dello stack. I tipi di valori permessi sono : Stringhe, lista di stringhe, lista delimitata da virgola o uno specifico parametro di AWS standard recuperabile tra una lista di valori messi a disposizione del Cloud.

Un esempio di utilizzo è pensare di creare una istanza EC2 con un semplice template con due parametri: il tipo e l’immagine AMI recuperabili da SSM, nel primo caso bisogna ricordarsi di creare il parametro altrimenti la creazione dello stack di CloudFormation genererà un errore.

Parameters:
InstanceType:
Type: AWS::SSM::Parameter::Value<String>
Default: /dev/ec2/instenceType
ImageId:
Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
Default: /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2
Resources:
Esempio18parametriSSMinstance:
Type: AWS::EC2::Instance
Properties:
InstanceType: !Ref InstanceType
ImageId: !Ref ImageId

Dopo aver creato lo stack, nella console sarà possibile vedere i parametri SSM e il valore del parametro nella colonna “Resolved value” che risulta molto utile per sapere quale valore è stato usato durante le fasi di creazione di uno stack. Questo semplice esempio può essere trovato nel repository:

https://github.com/alnao/AWSCloudFormationExamples/tree/master/Esempio18parametriSSM

dove si possono notare anche le regole di rete indispensabili per la creazione di una istanza EC2.