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.
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.
Modifica la definizione dello stack
Per modificare localmente la definizione dello stack, procedere come segue:
-
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.
-
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-definitiondella CLI del progetto per esportare la definizione dello stack. -
Aprire il file
stack_definition.json. -
Utilizzando la definizione di esempio come guida, modifica le variabili di input e di output.
-
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,
booleanostring. 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.