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'
UsePreviousValue
attributo 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>>
oAWS::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
Argomenti
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
. 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./aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2
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 (
) come valore per il parametro di modello myLatestAMI
ImageId
. Ciò presuppone che il
parametro esista in Parameter Store sotto quello del chiamante. Account AWSmyLatestAMI
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 (
) come valore per il parametro di modello myInstanceType
InstanceType
. Ciò presuppone che il
parametro esista in Parameter Store sotto quello del chiamante. Account AWSmyInstanceType
aws cloudformation create-stack --stack-name S1 --template-body
example template
\ --parameters ParameterKey=InstanceType,ParameterValue=myInstanceType