Lokale Bearbeitung der Definition des verteilbaren Architekturstapels

Die Stack-Definitionsdatei definiert die einzelnen einsatzfähigen Architekturen, die zu einer komplexeren einsatzfähigen Architektur zusammengefügt werden. Es spezifiziert Informationen darüber, wie sich diese einsatzfähigen Architekturen zueinander verhalten sollen, wie z.B. Eingangsreferenzen, die Architekturen miteinander verbinden. Wenn Sie vorhaben, diese Lösung über einen privaten Katalog mit anderen zu teilen, ist eine Stack-Definition erforderlich, um sicherzustellen, dass die Lösung erfolgreich bereitgestellt werden kann.

Sofern Sie keine einsatzfähigen Architekturen in einem Projekt gestapelt haben und diese Lösung nicht über einen privaten Katalog mit anderen teilen möchten, brauchen Sie die Stack-Definitionsdatei nicht zu verwenden.

Die Stapeldefinition enthält Stapelvariablen. Bei diesen Variablen handelt es sich um Eingaben, die der Benutzer konfigurieren kann, und um Ausgaben von gestapelten einsatzfähigen Architekturen, die auf der übergeordneten Ebene angezeigt werden. Diese Eingabewerte werden in den einsatzfähigen Architekturen der Mitglieder referenziert, wie in der folgenden Abbildung dargestellt. Die Stack-Definition enthält auch Eingaben von den einsatzfähigen Architekturen der Mitglieder. Diese Eingaben können Referenzen sein, die die einsatzfähigen Architekturen miteinander verbinden. Eingaben, die einen bestimmten Wert oder Verweis erfordern, um die Lösung erfolgreich einzusetzen, müssen in die Stack-Definition aufgenommen werden. Ein Beispiel finden Sie unter Erstellen der Stapeldefinition mithilfe der CLI.

 Eine visuelle Darstellung einer Stapeldefinition. Auf Stapelebene ist ein Input mit dem Namen „Präfix“ enthalten. Das Mitglied der bereitstellbaren Architektur A verwendet dieses Präfix als Eingabe. A erstellt Ausgaben. Die als Mitglied bereitstellbare Architektur B verwendet dann einen dieser Ausgänge als Eingang und erstellt bei der Bereitstellung Ausgänge.
Visualisierung der Stackdefinition

Erstellung der Stack-Definition über die Konsole

In einem Projekt wird Ihre Stack-Definition automatisch erstellt, wenn Sie einsatzfähige Architekturen zusammenstellen und Variablen definieren. Die Verwendung der Konsole zum Stapeln bereitstellbarer Architekturen und Definieren von Stapelvariablen bietet die folgenden Vorteile:

  • Sie können den Referenzpicker in der Konsole verwenden, um Referenzen zwischen gestapelten einsatzfähigen Architekturen zu erstellen, anstatt die Referenzen von Grund auf neu zu schreiben.
  • Durch den Einsatz der gestapelten Architekturen eines Projekts lässt sich überprüfen, ob die Gesamtlösung wie geplant funktioniert, bevor andere sie konfigurieren und einsetzen.
  • Da die Stapeldefinition automatisch basierend auf den Auswahlen in der Konsole erstellt wird, sind Informationen wie Versions-Locator-IDs der bereitstellbaren Mitgliedsarchitekturen genau und werden automatisch aktualisiert.

Im Projekt können Sie auswählen, welche Eingaben auf Stapelebene einbezogen werden sollen. Diese Eingaben sind im Abschnitt inputs der Stapeldefinition enthalten und werden als Referenzen in der bereitstellbaren Mitgliedsarchitektur in Ihrem Projekt konfiguriert. Im folgenden Bild ist die Eingabe prefix innerhalb der bereitstellbaren Architektur des Mitglieds Custom Apache hervorgehoben. Wenn dieser Eingang ausgewählt wird, ändert sich Default value in einen Verweis auf den Eingang auf Stapelebene. Wenn ein Benutzer Ihre Lösung zu einem Projekt aus einem Katalog hinzufügt, kann er die Eingabe prefix konfigurieren, und die Mitgliederarchitektur von Custom Apache wird auf diesen Wert verweisen. Die Eingabe fp_vsi_floating_ip_address verweist auf eine Ausgabe aus einer anderen bereitstellbaren Mitgliedsarchitektur. Diese Eingabe sollte nicht ausgewählt werden, da diese Referenz die Mitgliedsarchitekturen miteinander verbindet. Solche Eingaben von Mitgliedsarchitekturen sind im Abschnitt members der Stapeldefinitionsdatei enthalten.

 Definieren von Stapelvariablen in einem Projekt.
Definieren von Stapelvariablen in einem Projekt

Bearbeiten Ihrer Stapeldefinition

Führen Sie die folgenden Schritte aus, um Ihre Stackdefinition lokal zu bearbeiten:

  1. Führen Sie die Schritte aus, um einsatzfähige Architekturen zu stapeln, Stapelvariablen zu definieren und die gestapelten Architekturen in einen privaten Katalog einzubinden.

    Konfigurieren Sie die zusammengestellten Architekturen und stellen Sie sie bereit, um zu überprüfen, ob die Lösung wie geplant funktioniert, bevor Sie sie in einen privaten Katalog aufnehmen.

  2. Nachdem die verteilbare Architektur zu Ihrem privaten Katalog hinzugefügt wurde, werden Sie zur Seite Version konfigurieren im Katalog weitergeleitet. Klicken Sie dort auf das Menü Aktionen > Manifest generieren.

    Sie können auch die Methode „Stapeldefinition abrufen“ der Projekt-API oder den CLI-Befehl ibmcloud project stack-definition für Projekte verwenden, um die Stapeldefinition zu exportieren.

  3. Öffnen Sie die Datei stack_definition.json.

  4. Bearbeiten Sie die Eingabe- und Ausgabevariablen mithilfe der Beispieldefinition als Leitfaden.

  5. Fügen Sie die Datei zum Stammordner Ihres Quellcode-Repositorys hinzu.

Wenn Sie das nächste Mal eine neue Version Ihrer Lösung zum Katalog hinzufügen, werden Ihre Aktualisierungen mit aufgenommen.

Beispieldefinitionsdatei

Es wird empfohlen, die Stack-Definition in einem Projekt zu erstellen, um die Genauigkeit zu gewährleisten. Der folgende Codeschnipsel kann jedoch als Vorlage verwendet werden, um die Stack-Definition von Grund auf neu zu erstellen:

{
   "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"
            }
         ]
      }
   ]
}

Stapeleingänge

Der Wert inputs gibt ein Array mit den Eingabevariablen an, die für eine erfolgreiche Bereitstellung der Lösung erforderlich sind. Wenn ein Benutzer die einsatzfähige Architektur aus einem Katalog zu einem Projekt hinzufügt, muss er diese Eingaben konfigurieren, bevor er sie einsetzt. Die folgenden Werte können auf der Ebene inputs enthalten sein.

"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
Der Name Ihrer Eingabevariablen.
type
Der primitive Terraform-Datentyp der Variablen. Beispiel: boolean oder string.
hidden
Ein Boolescher Wert, der angibt, ob der Parameter während der Installation vor Benutzern verborgen werden soll.
required
Ein Boolescher Wert, der angibt, ob Benutzer den Parameter während der Installation angeben müssen.
default
Der Standardwert, der im Katalog festgelegt werden soll.

Stapelausgänge

Der Wert outputs gibt ein Array mit den Ausgabevariablen an, die bei der Bereitstellung der Lösung erstellt werden. Die folgenden Werte können auf der Ebene outputs enthalten sein.

"outputs": [
   {
      "name": "Output 1 name",
      "value": "The reference to this output value"
   },
   {
      "name": "Output 2 name",
      "value": "The reference to this output value"
   }
]
name
Der Name Ihrer Ausgabevariablen.
value
Der Verweis, wo der Wert gefunden werden kann. Weitere Informationen zu Referenzen finden Sie unter Referenzieren von Werten.

Mitgliedereingaben

Der Wert members gibt ein Array der Eingänge und Ausgänge für jede gestapelte einsatzfähige Architektur an. Die folgenden Werte können auf der Ebene members enthalten sein.

"members": [
   {
      "Name": "Deployable architecture 1 name",
      "Version_locator": "",
      "inputs": [
         {
            "name": "Input 1 name",
            "value": "reference"
         },
         {
            "name": "Input 2 name",
            "value": "reference"
         }
      ]
   }
]
name
Der programmgesteuerte Name der im Stapel enthaltenen bereitstellbaren Architektur.
version_locator
Gibt die Version der einsatzfähigen Architektur des Mitglieds an. Um die Versionssuche zu finden, wählen Sie das Produkt im Katalog aus, um die Seite mit den Katalogdetails zu öffnen. Stellen Sie sicher, dass die richtige Version ausgewählt ist. Klicken Sie dann auf Details anzeigen.
inputs
Eingänge zu den verteilbaren Architekturen der Mitglieder, die zusammen gestapelt werden. Fügen Sie Eingaben mit spezifischen Werten ein, die für die Bereitstellung der Gesamtlösung erforderlich sind. Wenn die gestapelten Mitgliedsarchitekturen voneinander abhängen, sollten Sie diese Werte hier als Referenzen angeben. Weitere Informationen finden Sie unter Referenzieren von Werten. Wenn zum Beispiel eine Ihrer Architekturen eine Ausgabe von einer anderen Architektur benötigt, mit der sie gestapelt ist, fügen Sie einen Verweis auf die Ausgabe als Wert hinzu.
name
Der Name Ihrer Eingabevariablen. Bearbeiten Sie den Namen nicht, da er mit der Eingabe übereinstimmen muss, die in der bereitstellbaren Mitgliedsarchitektur verwendet wird.
value
Der Wert Ihrer Eingabevariable. Es muss ein Standardwert oder eine Referenz angegeben werden.