Modifica della definizione di stack di architettura distribuibile in locale

Il file di definizione dello stack definisce le architetture distribuibili membri che vengono impilate insieme per formare un'architettura distribuibile più complessa. Specifica le informazioni su come queste architetture distribuibili dovrebbero relazionarsi tra loro, come i riferimenti di input che collegano le architetture tra loro. Se si intende condividere questa soluzione con altri attraverso un catalogo privato, è necessaria una definizione di stack per garantire che la soluzione possa essere distribuita con successo.

A meno che non si impilino architetture distribuibili in un progetto e si voglia condividere la soluzione con altri attraverso un catalogo privato, non è necessario usare il file di definizione dello stack.

La definizione dello stack contiene variabili dello stack. Queste variabili sono input che gli utenti possono configurare e output di architetture distribuibili impilate che vengono visualizzate a livello di genitore. Questi valori di input sono referenziati nelle architetture distribuibili dei membri, come illustrato nell'immagine seguente. La definizione dello stack include anche gli input delle architetture distribuibili dei membri. Questi input possono essere riferimenti che collegano tra loro le architetture distribuibili. Gli input che richiedono un valore o un riferimento specifico per implementare con successo la soluzione devono essere inclusi nella definizione dello stack. Per un esempio, vedere Creazione della definizione dello stack tramite la CLI.

 Rappresentazione visiva della definizione di uno stack. A livello di stack è incluso un input denominato "prefisso". L'architettura distribuibile del membro A utilizza quel prefisso come input. A crea output. L'architettura distribuibile del membro B utilizza quindi uno di questi output come input e crea output quando viene distribuita.
Visualizzazione della definizione dello stack

Usare la console per creare la definizione dello stack

In un progetto, la definizione di stack viene creata automaticamente quando si impilano le architetture distribuibili e si definiscono le variabili. L'utilizzo della console per impilare architetture distribuibili e definire variabili di stack offre i seguenti vantaggi:

  • È possibile usare il selezionatore di riferimenti nella console per creare riferimenti tra architetture distribuibili impilate, invece di scrivere i riferimenti da zero.
  • La distribuzione delle architetture impilate di un progetto aiuta a verificare che la soluzione complessiva funzioni come progettato prima che altri la configurino e la distribuiscano.
  • Poiché la definizione dello stack viene creata automaticamente in base alle selezioni nella console, informazioni come gli ID di localizzazione della versione delle architetture distribuibili dei membri sono accurate e vengono aggiornate automaticamente.

Nel progetto puoi selezionare quali input vuoi includere a livello di stack. Questi input sono inclusi nella sezione inputs della definizione dello stack e sono configurati come riferimenti nell'architettura distribuibile dei membri nel progetto. Nell'immagine seguente, l'input prefix è evidenziato all'interno dell'architettura distribuibile del membro Custom Apache. Se questo input è selezionato, Default value cambia in un riferimento all'input a livello di stack. Quando un utente aggiunge la vostra soluzione a un progetto da un catalogo, può configurare l'input prefix e l'architettura dei membri Custom Apache farà riferimento a quel valore. L'input fp_vsi_floating_ip_address fa riferimento a un output di un'altra architettura distribuibile membro. Questo ingresso non dovrebbe essere selezionato, poiché il riferimento collega le architetture dei membri. Tali input provenienti dalle architetture membro sono inclusi nella sezione members del file di definizione dello stack.

 Definizione delle variabili dello stack in un progetto.
Definizione delle variabili dello stack in un progetto

Modifica la definizione dello stack

Per modificare localmente la definizione dello stack, procedere come segue:

  1. Completare i passaggi per impilare le architetture distribuibili, definire le variabili di impilamento e inserire le architetture impilate in un catalogo privato.

    Configurare e distribuire le architetture sovrapposte per verificare che la soluzione funzioni come progettato prima di aggiungerla a un catalogo privato.

  2. Dopo che l'architettura distribuibile è stata aggiunta al catalogo privato, si accede alla pagina Configura versione del catalogo. Da qui, fare clic sul menu Azioni > Genera manifesto.

    È anche possibile utilizzare il metodo Ottieni una definizione dello stack dell'API del progetto o il comando ibmcloud project stack-definition della CLI del progetto per esportare la definizione dello stack.

  3. Aprire il file stack_definition.json.

  4. Utilizzando la definizione di esempio come guida, modifica le variabili di input e di output.

  5. Aggiungi il file nella cartella principale del tuo repository del codice sorgente.

La prossima volta che aggiungerete una nuova versione della soluzione al catalogo, gli aggiornamenti saranno inclusi.

Esempio di file di definizione

Si consiglia di usare un progetto per creare la definizione dello stack, per garantire la precisione. Tuttavia, il seguente frammento di codice può essere usato come modello per creare la definizione di stack da zero:

{
   "inputs": [
      {
         "name": "Stack input 1",
         "type": "string",
         "hidden": false,
         "required": true,
         "default" : "Default value"
      },
      {
         "name": "Stack input 2",
         "type": "string",
         "hidden": false,
         "required": true
      }
   ],
   "outputs": [
      {
         "name": "Output 1 name",
         "value": "The reference to this output value"
      },
      {
         "name": "Output 2 name",
         "value": "The reference to this output value"
      }
   ],
   "members": [
      {
         "Name": "Deployable architecture 1 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      },
      {
         "Name": "Deployable architecture 2 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      }
   ]
}

Input dello stack

Il valore inputs indica una matrice di variabili di input necessarie affinché la soluzione venga distribuita con successo. Quando un utente aggiunge l'architettura distribuibile a un progetto da un catalogo, deve configurare questi input prima di distribuire. I seguenti valori possono essere inclusi a livello inputs.

"inputs": [
   {
      "name": "Stack input 1",
      "type": "string",
      "hidden": false,
      "required": true,
      "default" : "Default value"
   },
   {
      "name": "Stack input 2",
      "type": "string",
      "hidden": false,
      "required": true
   }
]
name
Il nome della variabile di input.
type
Il tipo di dati primitivi Terraform della variabile. Ad esempio, boolean o string.
hidden
Valore booleano che indica se il parametro deve essere nascosto agli utenti durante l'installazione.
required
Un valore booleano che indica se gli utenti devono specificare il parametro durante l'installazione.
default
Valore predefinito da impostare nel catalogo.

Output dello stack

Il valore outputs indica un array di variabili di output che vengono create quando la soluzione viene distribuita. I seguenti valori possono essere inclusi a livello outputs.

"outputs": [
   {
      "name": "Output 1 name",
      "value": "The reference to this output value"
   },
   {
      "name": "Output 2 name",
      "value": "The reference to this output value"
   }
]
name
Il nome della variabile di output.
value
Il riferimento a dove è possibile trovare il valore. Per ulteriori informazioni sui riferimenti, vedere Riferimento ai valori.

Contributi dei membri

Il valore members indica un array di ingressi e uscite per ciascuna architettura distribuibile impilata. I seguenti valori possono essere inclusi a livello members.

"members": [
   {
      "Name": "Deployable architecture 1 name",
      "Version_locator": "",
      "inputs": [
         {
            "name": "Input 1 name",
            "value": "reference"
         },
         {
            "name": "Input 2 name",
            "value": "reference"
         }
      ]
   }
]
name
Nome programmatico dell'architettura distribuibile inclusa nello stack.
version_locator
Identifica la versione dell'architettura distribuibile del membro. Per trovare il localizzatore della versione, seleziona il prodotto nel catalogo per aprire la pagina dei dettagli del catalogo. Assicurarsi di aver selezionato la versione corretta. Quindi, fare clic su Visualizza dettagli.
inputs
Ingressi alle architetture distribuibili membro che sono impilate insieme. Includere gli input con i valori specifici necessari per l'implementazione della soluzione complessiva. Se le architetture membro impilate dipendono l'una dall'altra, includere questi valori come riferimenti. Per ulteriori informazioni, vedere Riferimento ai valori. Ad esempio, se una delle architetture richiede un'uscita da un'altra architettura con cui è impilata, aggiungere un riferimento all'uscita come valore.
name
Il nome della variabile di input. Non modificare il nome poiché deve corrispondere all'input utilizzato nell'architettura distribuibile del membro.
value
Il valore della variabile di input. È necessario fornire un valore predefinito o un riferimento.