Ottenimento di un valore in testo normale da Systems Manager Parameter Store - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottenimento di un valore in testo normale da Systems Manager Parameter Store

Quando crei un modello CloudFormation potresti voler utilizzare valori di testo in chiaro archiviati in Parameter Store. Parameter Store è una funzionalità di AWS Systems Manager. Per un’introduzione a Parameter Store, consulta AWS Systems Manager Parameter Store nella Guida per l’utente di AWS Systems Manager.

Per utilizzare un valore in testo normale di Parameter Store all’interno del modello, si utilizza un riferimento dinamico ssm. Questo riferimento consente di accedere ai valori dai parametri di tipo String o StringList in Parameter Store.

Per verificare quale versione di un riferimento dinamico ssm verrà utilizzata in un’operazione di stack, crea un set di modifiche per quest’ultimo. Quindi, esamina il modello elaborato nella scheda Modello. Per ulteriori informazioni, consulta Crea un set di modifiche per uno stack CloudFormation.

Quando si utilizzano riferimenti dinamici ssm, ci sono alcune cose importanti da tenere a mente:

  • CloudFormation non supporta il rilevamento della deviazione nei riferimenti dinamici. Per i riferimenti dinamici ssm in cui non hai specificato la versione del parametro, ti consigliamo, se aggiorni la versione del parametro in Systems Manager, di eseguire anche un’operazione di aggiornamento dello stack su tutti gli stack che includono il riferimento dinamico ssm, al fine di recuperare la versione più recente del parametro.

  • Per utilizzare un riferimento dinamico ssm nella sezione Parameters del modello CloudFormation devi includere un numero di versione. CloudFormation non consente di fare riferimento a un valore di Parameter Store senza un numero di versione in questa sezione. In alternativa, puoi definire il parametro come tipo di parametro Systems Manager nel modello. Quando esegui questa operazione, puoi specificare una chiave del parametro Systems Manager come valore predefinito per il parametro. CloudFormation recupererà quindi la versione più recente del valore del parametro da Parameter Store, senza la necessità di specificare un numero di versione. Questo può rendere i tuoi modelli più semplici e facili da gestire. Per ulteriori informazioni, consulta Specifica delle risorse esistenti in fase di runtime con i tipi di parametri forniti da CloudFormation.

  • Per le risorse personalizzate, CloudFormation risolve i riferimenti dinamici ssm prima di inviare la richiesta alla risorsa personalizzata.

  • CloudFormation non supporta l’utilizzo di riferimenti dinamici per fare riferimento a un parametro condiviso da un altro Account AWS.

  • CloudFormation non supporta l’utilizzo di etichette di parametro o parametri pubblici nei riferimenti dinamici.

Autorizzazioni

Per specificare un parametro archiviato in Systems Manager Parameter Store, devi disporre di un accesso che consente di chiamare GetParameters per il parametro specificato. Per scoprire come creare policy IAM che forniscano l’accesso a parametri specifici di Systems Manager, consulta Limitazione dell’accesso ai parametri di Systems Manager mediante policy IAM nella Guida per l’utente di AWS Systems Manager.

Schema di riferimento

Per fare riferimento a un valore di testo normale archiviato in Systems Manager Parameter Store nel modello CloudFormation, utilizza il seguente schema di riferimento ssm.

{{resolve:ssm:parameter-name:version}}

Il riferimento deve essere conforme allo schema di espressione regolare per parameter-name e version:

{{resolve:ssm:[a-zA-Z0-9_.\-/]+(:\d+)?}}
parameter-name

Il nome del parametro in Archivio parametri . Il nome di parametro prevede la distinzione tra lettere maiuscole e minuscole.

Obbligatorio.

version

Un numero intero che specifica la versione del parametro da utilizzare. Se non specifichi la versione esatta, CloudFormation utilizza la versione più recente del parametro ogni volta che crei o aggiorni lo stack. Per ulteriori informazioni, consulta Working with parameter versions nella Guida per l’utente di AWS Systems Manager.

Facoltativo.

Esempi

Parametro ID AMI pubblico

L’esempio seguente crea un’istanza EC2 che fa riferimento a un parametro AMI pubblico. Il riferimento dinamico recupera l’ID AMI Amazon Linux 2023 più recente dal parametro pubblico. Per ulteriori informazioni sui parametri pubblici, consulta Discovering public parameters in Parameter Store nella Guida per l’utente di AWS Systems Manager.

JSON

{ "Resources": { "MyInstance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}", "InstanceType": "t2.micro" } } } }

YAML

Resources: MyInstance: Type: AWS::EC2::Instance Properties: ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}' InstanceType: t2.micro

Parametro ID AMI personalizzato

L’esempio seguente crea un modello di avvio EC2 che fa riferimento a un ID AMI personalizzato archiviato nel Parameter Store. Il riferimento dinamico recupera l’ID AMI dalla versione 2 del parametro golden-ami ogni volta che un’istanza viene avviata dal modello di avvio.

JSON

{ "Resources": { "MyLaunchTemplate": { "Type": "AWS::EC2::LaunchTemplate", "Properties": { "LaunchTemplateName": { "Fn::Sub": "${AWS::StackName}-launch-template" }, "LaunchTemplateData": { "ImageId": "{{resolve:ssm:golden-ami:2}}", "InstanceType": "t2.micro" } } } } }

YAML

Resources: MyLaunchTemplate: Type: AWS::EC2::LaunchTemplate Properties: LaunchTemplateName: !Sub ${AWS::StackName}-launch-template LaunchTemplateData: ImageId: '{{resolve:ssm:golden-ami:2}}' InstanceType: t2.micro