Tipi di parametri di Systems Manager - 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à.

Tipi di parametri di Systems Manager

I tipi di parametri di Systems Manager corrispondono ai parametri esistenti in Systems Manager Parameter Store. Si specifica una chiave del parametro Systems Manager come valore del tipo di parametro Systems Manager e si CloudFormation recupera il valore più recente da Parameter Store da utilizzare per lo stack. Ciò può essere utile, ad esempio, quando è necessario aggiornare frequentemente le risorse dell'applicazione con valori variabili, come Amazon Machine Image (AMI)IDs.

È possibile visualizzare i valori risolti per i parametri di Systems Manager nella scheda Parametri dello stack nella console oppure eseguendo describe-stackso describe-change-set. Questi sono i valori attualmente utilizzati nella definizione dello stack per le corrispondenti chiavi di parametro Systems Manager. Si noti che questi valori vengono impostati quando lo stack viene creato o aggiornato. Pertanto potrebbero essere diversi dai valori più recenti presenti in Archivio parametri.

Poiché il valore di un tipo di parametro Systems Manager è una chiave di parametro, è necessario tenere presente il seguente comportamento:

  • Per gli aggiornamenti dello stack, l'opzione Usa il valore esistente nella console e l'UsePreviousValueattributo for update-stackindicano di CloudFormation utilizzare la chiave del parametro Systems Manager esistente, non il suo valore. CloudFormationrecupera sempre i valori più recenti da Parameter Store quando aggiorna gli stack.

  • CloudFormation può eseguire la convalida sulle chiavi dei parametri di Systems Manager, ma non sui valori corrispondenti. Per la convalida, devi considerare le chiavi di parametro come stringhe. Devi eseguire qualsiasi procedura di convalida per i valori dei parametri Systems Manager in Archivio parametri.

Quando si creano o si aggiornano gli stack e si creano i set di modifiche, CloudFormation utilizza qualsiasi valore esistente in Parameter Store al momento dell'esecuzione dell'operazione. Se un parametro specificato non esiste in Parameter Store sotto quello del chiamante Account AWS, CloudFormation restituisce un errore di convalida.

Quando si esegue un set di modifiche, CloudFormation utilizza i valori specificati nel set di modifiche. Esamina questi valori prima di eseguire il set di modifiche perché potrebbero variare in Archivio parametri tra il momento in cui crei il set di modifiche e l'esecuzione dello stesso.

Per informazioni su Parameter Store, vedere Systems Manager Parameter Store.

Nota

Per i parametri Parameter Store memorizzati nello stesso Account AWS, è necessario fornire il nome del parametro. Per i parametri Parameter Store condivisi da un altro utente Account AWS, è necessario fornire il parametro completoARN.

Tipi di parametri Systems Manager supportati

CloudFormation supporta i seguenti tipi di parametri Systems Manager:

AWS::SSM::Parameter::Name

Nome di una chiave di parametro Systems Manager.

Utilizza questo parametro quando vuoi passare la chiave di parametro. Ad esempio, puoi usare questo tipo per convalidare l'esistenza del parametro.

AWS::SSM::Parameter::Value<String>

Parametro Systems Manager il cui valore è una stringa. Corrisponde al tipo di parametro String in Archivio parametri.

AWS::SSM::Parameter::Value<List<String>> o AWS::SSM::Parameter::Value<CommaDelimitedList>

Parametro Systems Manager il cui valore è un elenco di stringhe. Corrisponde al tipo di parametro StringList in Archivio parametri.

AWS::SSM::Parameter::Value<AWS-specific parameter type>

Parametro Systems Manager il cui valore è un tipo di parametro specifico per AWS. L'esempio seguente specifica il tipo AWS::EC2::KeyPair::KeyName:

AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>

AWS::SSM::Parameter::Value<List<AWS-specific parameter type>>

Parametro Systems Manager il cui valore è un elenco di tipi di parametro specifici per AWS. L'esempio seguente specifica un elenco di tipi AWS::EC2::KeyPair::KeyName:

AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>

Tipi di parametri di Systems Manager non supportati

CloudFormation non supporta il seguente tipo di parametro Systems Manager:

  • Elenchi di tipi di parametri di Systems Manager, ad esempio: List<AWS::SSM::Parameter::Value<String>>

Inoltre, CloudFormation non supporta la definizione dei parametri del modello come tipi di parametri SecureString Systems Manager. Tuttavia, è possibile specificare stringhe sicure come valori dei parametri per determinate risorse. Per ulteriori informazioni, consulta Specificare i valori memorizzati in altri servizi con riferimenti dinamici.

Esempi

AMIID che fa riferimento a un parametro pubblico di Systems Manager come valore predefinito

Il <AWS::EC2::Image::Id> tipo è specifico per i parametri AMI ID e supporta i parametri pubblici forniti da AWS.

L'esempio seguente dichiara un parametro denominato LatestAmiId di tipoAWS::SSM::Parameter::Value<AWS::EC2::Image::Id>. Per impostazione predefinita, la ImageId proprietà dell'EC2istanza fa riferimento/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2. Questo parametro pubblico è un alias per il valore dell'AMIID regionale per l'ultima versione di Amazon Linux 2AMI. Per ulteriori informazioni sui parametri pubblici, consulta Finding public parameters nella AWS Systems Manager User Guide.

JSON

{ "Parameters": { "LatestAmiId": { "Description": "Region specific image from the Parameter Store", "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>", "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "LatestAmiId" } } } } }

YAML

Parameters: LatestAmiId: Description: Region specific image from the Parameter Store Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref LatestAmiId

AMIID che fa riferimento a un parametro Systems Manager e nessun valore predefinito

L'esempio seguente dichiara un parametro denominato ImageId di tipo AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> senza alcun valore predefinito. Ciò significa che è necessario fornire la chiave del parametro Systems Manager che fa riferimento all'AMIID desiderato durante la creazione dello stack.

JSON

{ "Parameters": { "ImageId": { "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "ImageId" } } } } }

YAML

Parameters: ImageId: Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref ImageId

Il comando seguente crea uno stack in base al modello di esempio. Fornisce la chiave di parametro Systems Manager (myLatestAMI) come valore per il parametro di modello ImageId. Ciò presuppone che il myLatestAMI parametro esista in Parameter Store sotto quello del chiamante. Account AWS

aws cloudformation create-stack --stack-name S2 --template-body example template \ --parameters ParameterKey=ImageId,ParameterValue=myLatestAMI

Riferimento a un parametro di stringa di Systems Manager

L'esempio seguente dichiara un parametro denominato InstanceType di tipo. AWS::SSM::Parameter::Value<String> Poiché non esiste un valore predefinito, è necessario fornire la chiave del parametro Systems Manager che fa riferimento al tipo di istanza desiderato durante la creazione dello stack.

JSON

{ "Parameters": { "InstanceType": { "Type": "AWS::SSM::Parameter::Value<String>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": { "Ref": "InstanceType" } } } } }

YAML

Parameters: InstanceType: Type: 'AWS::SSM::Parameter::Value<String>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: !Ref InstanceType

Il comando seguente crea uno stack in base al modello di esempio. Fornisce la chiave di parametro Systems Manager (myInstanceType) come valore per il parametro di modello InstanceType. Ciò presuppone che il myInstanceType parametro esista in Parameter Store sotto quello del chiamante. Account AWS

aws cloudformation create-stack --stack-name S1 --template-body example template \ --parameters ParameterKey=InstanceType,ParameterValue=myInstanceType