Come si risolve l'errore "Convalida del parametro fallita: il valore del parametro 'abc' per il nome del parametro 'ABC' non esiste" in CloudFormation?

5 minuti di lettura
0

Quando creo o aggiorno il mio stack AWS CloudFormation, ricevo il seguente errore: "Convalida del parametro fallita: il valore del parametro 'abc' per il nome del parametro 'ABC' non esiste". Come posso risolvere questo errore?

Breve descrizione

AWS CloudFormation restituisce l'errore di convalida dei parametri non riuscita quando uno dei parametri utilizzati nel modello CloudFormation è un tipo di parametro specifico di AWS.

Puoi ricevere questo errore quando usi un parametro specifico di AWS:

  • Passare un valore che non esiste nella regione AWS o nell'account durante la creazione dello stack.
  • Come proprietà di una risorsa, quindi elimina questo valore fuori banda prima di aggiornare la risorsa durante l'aggiornamento dello stack.
  • Come parametro in uno stack secondario. L'errore si verifica quando il valore dello stack figlio passato dallo stack principale non corrisponde al tipo di parametro. L'errore si verifica anche quando la risorsa del parametro non esiste nell'account in quella regione.

Risoluzione

Nota: Se ricevi errori durante l'esecuzione dei comandi AWS Command Line Interface (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia a riga di comando di AWS.

Crea una pila

1.    Apri la console di AWS CloudFormation.

  1. Nel riquadro di navigazione, scegli Stack.

  2. Nella colonna Nome dello stack, scegli lo stack che ha avuto esito negativo.

  3. Scegli la scheda Parametri.

  4. Nella colonna Chiave, cerca il parametro ABC con il valore abc.

  5. Controlla la sezione Parametri del modello utilizzato per creare lo stack per verificare che la risorsa abc corrisponda al tipo di parametro specifico di AWS.

  6. Verifica che la risorsa abc per il parametro ABC esista nella regione o nell'account. Usa la Console di gestione AWS o il comando AWS CLI per descrivere la risorsa. Per trovare il comando giusto per la tua risorsa, consulta la sezione Trova il comando di descrizione per la tua risorsa.

Nota: Ad esempio, se utilizzi il tipo di parametro AWS::EC2::VPC::Id, controlla la console Amazon Virtual Private Cloud (Amazon VPC) per la risorsa.

  1. Se ABC è un parametro per lo stack secondario, è necessario passare il valore abc. Scegliete l'opzione A o l'opzione B.

(Opzione A) Se stai facendo riferimento a un'altra risorsa nello stack principale, verifica che questa risorsa corrisponda al tipo di parametro specifico di AWS utilizzato nello stack secondario.

Nota: Ad esempio, lo stack fallisce se si utilizza il tipo di parametro AWS::EC2::Subnet::Id (subnet) e si fa riferimento al tipo di risorsa AWS::EC2::VPC.

(Opzione B) Se il valore abc passa direttamente dallo stack principale, verifica che la risorsa abc per il parametro ABC esista nella regione o nell'account. Usa la Console di gestione AWS o il comando AWS CLI per descrivere la risorsa. Per trovare il comando giusto per la tua risorsa, consulta la sezione Trova il comando di descrizione per la tua risorsa.

Ad esempio, considera il seguente parametro List nello stack secondario:

"SecurityGroups": {
    "Description": "List of security group IDs for the instances",
    "Type": "List<AWS::EC2::SecurityGroup::Id>"
}

Il valore del parametro passa dallo stack principale. Ad esempio:

"ChildStack" : {
 "Type" : "AWS::CloudFormation::Stack",
 "Properties" : {
    "Parameters":{
      "KeyPair" : { "Ref": "KeyPair" },
      "ImageID" : { "Ref": "ImageID" },
      "InstanceType" : { "Ref": "InstanceType" },
      "SecurityGroups" : { "Ref": "SecurityGroup" }
    }

Importante: Nell'esempio precedente, verifica che il valore dell'ID del gruppo di sicurezza passato al parametro SecurityGroup esista nella regione o nell'account.

  1. Crea un nuovo stack con un valore valido per il parametro esistente nella tua regione o account e che corrisponda al tipo di parametro specifico di AWS.

Aggiorna lo stack

Quando un aggiornamento dello stack fallisce, CloudFormation ripristina le modifiche. Ciò significa che non puoi vedere il valore del parametro aggiornato tramite la console AWS CloudFormation.

È necessario modificare il valore del parametro ABC durante l'aggiornamento. Se non modifichi il valore, la risorsa con il nome o il PhysicalID di abc potrebbe essere eliminata dall'account fuori banda.

  1. Per verificare l'esistenza della risorsa, utilizza la Console di gestione AWS o il comando AWS CLI per descrivere la risorsa. Per trovare il comando giusto per la tua risorsa, consulta la sezione Trova il comando di descrizione per la tua risorsa.

  2. Se stai aggiornando lo stack aggiornando il parametro ABC, segui i passaggi 6,7 e 8 nella precedente sezione Crea uno stack.

  3. Aggiorna lo stack passando un valore valido al parametro ABC.

Trova il comando di descrizione per la tua risorsa

Scegli il comando giusto per la tua risorsa:

  • Per AWS::EC2::Image::Id o ** List**, usa il comando per AWS CLI version 1 o version 2.
  • Per AWS::EC2::Instance::Id o ** List**, usa il comando per AWS CLI version 1 o version 2.
  • Per AWS::EC2::KeyPair::KeyName, usa il comando per AWS CLI version 1 o version 2.
  • Per AWS::EC2::SecurityGroup::GroupName, AWS::EC2::SecurityGroup::Id, List o List, usa il comando per AWS CLI version 1 o version 2.
  • Per AWS::EC2::Subnet::Id o ** List**, usa il comando per AWS CLI version 1 or version 2.
  • Per AWS::EC2::VPC::Id o ** List**, usa il comando per AWS CLI version 1 or version 2.
  • Per AWS::Route53::HostedZone::Id o ** List**, usa il comando per AWS CLI version 1 or version 2.
  • Per AWS::EC2::AvailabilityZone::Name or ** List**, usa il comando per AWS CLI version 1 or version 2.
  • Per AWS::EC2::Volume::Id o ** List**, usa il comando per AWS CLI version 1 or version 2.

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa