Konfigurieren einer einsatzfähigen Architektur

Nachdem Sie eine einsatzfähige Architektur zu Ihrem Projekt hinzugefügt haben, können Sie die Eingabewerte bearbeiten, um die Architektur für den Einsatz zu konfigurieren.

Konfigurationen können generisch sein, aber viele Projekte verwenden eine Konfiguration oder eine Gruppe von Konfigurationen, um Ressourcen in verschiedenen Umgebungen einzusetzen. Eine Gruppe von Konfigurationen kann zum Beispiel dazu verwendet werden, Ressourcen in Entwicklungs-, Test- und Produktionsumgebungen bereitzustellen und gemeinsame Dienste außerhalb der Umgebungen einzurichten. Wenn Sie Ihre Konfiguration bereitstellen, verwendet IBM Cloud® Schematics Terraform, um den zugrunde liegenden Plan anzuwenden.

Bevor Sie Ihre Architektur bereitstellen können, müssen die Eingaben, der Plan, die Konformität und die geschätzten Kosten für die bereitstellbare Architektur validiert werden. Alle Änderungen, die an der Konfiguration vorgenommen werden, werden validiert, um sicherzustellen, dass es keine Probleme oder Fehler gibt.

Einstellung der Eingabewerte

Die Eingabewerte werden verwendet, um eine einsatzfähige Architektur zu konfigurieren, die Ihren spezifischen Anforderungen entspricht. Die erforderlichen Eingaben hängen von der von Ihnen gewählten verteilbaren Architektur ab. Je nachdem, wie die Architektur entworfen wurde, können einige Eingaben eine Reihe von Optionen enthalten, die Sie auswählen können, oder Sie können Werte in Felder als Textstrings eingeben.

Werte referenzieren

Konfigurationen können miteinander verbunden werden, indem die Ausgänge einer Konfiguration als Eingänge in einer anderen verwendet werden. Eine Konfiguration für eine Anwendung könnte beispielsweise eine Ausgabe aus einer Infrastrukturkonfiguration verwenden, wie z. B. eine Cluster-ID, um sie in dieser Infrastruktur bereitzustellen. Um dies zu erreichen, können Sie einen Verweis auf einen Eingang oder einen Ausgang einer anderen Konfiguration hinzufügen. Sie können auch Parameter aus einer Umgebung referenzieren. Wenn Sie einen Verweis hinzufügen, wird der Wert aus der Eingabe, der Ausgabe oder der Umgebung gezogen und als Eingabewert in der Architektur, die Sie konfigurieren, verwendet.

In der Konsole können Sie in einer Architektur, die Sie gerade konfigurieren, einen Verweis hinzufügen, indem Sie den Mauszeiger über einen Eingang bewegen und das Symbol Verweis auswählen .

Wenn Sie die API oder die Befehlszeilenschnittstelle verwenden, um eine verteilbare Architektur zu konfigurieren, oder wenn Sie eine Stack-Definition für eine verteilbare Architektur bearbeiten und einen Verweis einfügen möchten, können Sie einen Verweis als Textstring schreiben. Die Verweise entsprechen der Spezifikation URL, verwenden aber ein anderes Protokoll ref anstelle von http. Genau wie bei URLs auf Websites können Sie einen Verweis schreiben, der sich auf Ihren aktuellen Kontext bezieht. Wenn Sie beispielsweise einen Verweis auf einen Eingang innerhalb der Konfiguration hinzufügen, die Sie gerade bearbeiten, lautet Ihr aktueller Pfad /configs/<configname> und Sie können einen Verweis relativ zu diesem Pfad schreiben. Zum Beispiel fügt ref:./inputs/region einen Verweis auf den Eingang mit dem Namen region innerhalb derselben Konfiguration hinzu. In diesem Fall muss die Konfiguration, die Sie bearbeiten, nicht bereitgestellt werden, um auf einen anderen Wert darin zu verweisen.

Sie können den Namen einer zu referenzierenden Ausgabe finden, indem Sie eine bereitgestellte Konfiguration in Ihrem Projekt öffnen und zur Registerkarte Ausgaben gehen.

Werte aus einer Konfiguration referenzieren

Das allgemeine Format für den Verweis auf einen Wert in einer Konfiguration lautet wie folgt:

ref:/configs/<config_name>/inputs_or_outputs/<input_or_output_name>.

Sie können eine Eingabe oder eine Ausgabe aus einer Konfiguration referenzieren, die aus Ihrem Projekt bereitgestellt wurde. Der folgende Verweis verweist beispielsweise auf eine Ausgabe mit dem Namen cluster_id innerhalb der Konfiguration ProdCluster: ref:/configs/ProdCluster/outputs/cluster_id.

Sie können einen relativen Verweis auf einen anderen Eingang innerhalb der Konfiguration, die Sie gerade bearbeiten, hinzufügen. Die Konfiguration muss dazu nicht bereitgestellt werden.

Experimentelle

Wenn Sie in Ihrem Projekt Konfigurationen zusammen gestapelt haben, können Sie Ausgänge zwischen den zusammen gestapelten Konfigurationen referenzieren. Das allgemeine Format für den Verweis auf einen Wert lautet wie folgt:

ref:/configs/<stack_name>/members/<member_name>/inputs_or_outputs/<input_or_output_name>

Wenn Sie einen relativen Bezug herstellen wollen, können Sie dies tun. Eine relative Referenz zwischen Konfigurationen, die zusammen gestapelt sind, würde als ref:../<member_name>/inputs_or_outputs/<input_or_output_name> formatiert werden. Wenn Sie jedoch einen Wert in der Stack-Definition referenzieren, wird er in der Member-Konfiguration als ref:../../inputs/<input_name> formatiert. Derzeit können Mitglieder nicht auf Ausgaben aus der Stack-Definition verweisen.

Referenzierung von Eingaben aus einer Umgebung

Da Umgebungen innerhalb eines Projekts und nicht innerhalb einer Konfiguration erstellt werden, müssen Sie /configs/<configname> nicht einbeziehen, wenn Sie auf einen Parameter in einer Umgebung verweisen möchten. Sie müssen jedoch den Namen der Umgebung nach dem Referenztyp environments angeben. Geben Sie dann inputs an und geben Sie den Namen der Eingabe an, auf die Sie verweisen möchten: ref:./environments/<environment_name>/inputs/<name>. Sie können keinen Verweis auf einen Authentifizierungsparameter oder ein Konformitätsprofil aus einer Umgebung hinzufügen.

Zum Beispiel verweist der folgende Verweis auf einen Eingabeparameter mit dem Namen cluster_id innerhalb der Umgebung Production: ref:./environments/Production/inputs/cluster_id.

Konfigurieren einer Architektur über die Konsole

Um eine benutzerdefinierte Konfiguration zu erstellen, führen Sie die folgenden Schritte aus:

  1. Wählen Sie im Bereich Sicherheit die Authentifizierungsmethode aus, die Sie für die Bereitstellung Ihrer Architektur verwenden möchten.

    Ein Proof of Concept zu Testzwecken einsetzen? Sie können einen API-Schlüssel erstellen, wenn Sie eine Konfiguration in Ihrem Projekt bearbeiten. Auf diese Weise wird das Projekt für das aktuell ausgewählte Konto freigegeben. Andernfalls können Sie einen API-Schlüssel hinzufügen, indem Sie IBM Cloud® Secrets Manager verwenden. Dies berechtigt das Projekt zur Bereitstellung in einem Zielkonto und ist für die Bereitstellung Ihrer Architektur erforderlich. Weitere Informationen finden Sie unter Verwendung eines API-Schlüssels mit Secrets Manager, um ein Projekt zur Bereitstellung einer Architektur zu autorisieren.

  2. Während der Validierung wird ein Code Risk Analyzer-Scan auf Ihrer Architektur durchgeführt. Wählen Sie die Richtlinien aus, die Sie bei der Validierung verwenden möchten. Sie können den Architektur-Standard verwenden oder die Option Aus Workload Protection auswählen, wenn Sie eine Instanz von Workload Protection in Ihrem Zielkonto eingerichtet haben.

    Wenn Sie die Standardeinstellung Architektur wählen:

    • Bei der Überprüfung wird die Standardrichtlinie verwendet, die der Eigentümer der verteilbaren Architektur beim Einbinden hinzugefügt hat.
    • Die vom Architektureigentümer hinzugefügten Richtlinien enthalten Anforderungen. Anforderungen, die auch im unterstützten Regelwerk enthalten sind, werden geprüft.
    • Alle zusätzlichen Anforderungen, die der Architekt hinzugefügt hat und die nicht in der Liste der unterstützten Regeln enthalten sind, werden bei der Validierung Ihrer Konfiguration nicht geprüft.
    • Wenn der Eigentümer der verteilbaren Architektur keine Richtlinien zu seinem Produkt hinzugefügt hat, wird der gesamte Regelsatz verwendet.

    Um die Liste der hinzugefügten Anforderungen anzuzeigen, gehen Sie zum Katalog IBM Cloud® und wählen Sie die bereitstellbare Architektur aus, die Sie gerade konfigurieren. Auf der Registerkarte Sicherheit und Konformität sind alle Anforderungen aufgelistet, die der einsatzfähigen Architektur hinzugefügt wurden.

    Wenn Sie Wählen Sie aus Workload Protection wählen, müssen Sie eine Instanz des Dienstes in dem Zielkonto haben, in dem Sie den Dienst bereitstellen möchten.

  3. Geben Sie im Bereich Eingaben Werte für die erforderlichen Eingaben für die einsatzfähige Architekturkonfiguration ein.

    Je nach einsatzfähiger Architektur können einige Eingaben mit Verweisen auf andere Architekturen oder festen Werten für Sie konfiguriert sein. Diese Werte wurden vom Ersteller der einsatzfähigen Architektur zur Verfügung gestellt. Seien Sie vorsichtig, wenn Sie diese Werte bearbeiten, insbesondere Verweise, da die Architektur mit anderen Werten möglicherweise nicht erfolgreich bereitgestellt werden kann. Bewegen Sie den Mauszeiger über die Eingabe und klicken Sie auf Zurücksetzen, um die Eingabe auf den vom Ersteller angegebenen festen Wert zurückzusetzen. Sie können die Eingabereferenzen nicht zurücksetzen. Nur Eingänge mit festen Werten können auf ihren ursprünglichen festen Wert zurückgesetzt werden.

  4. Optional: Schalten Sie Optionale Eingänge ein, um Werte für optionale Eingänge einzugeben.

  5. Klicken Sie auf Speichern.

  6. Klicken Sie auf Validieren. Das angezeigte Modal enthält weitere Details zu Ihrer laufenden Validierung.

    Wenn die Validierung fehlschlägt, können Sie die Fehlerursache beheben. Oder ein Administrator des Dienstes IBM Cloud Projects kann die Ergebnisse über den Dienst Schematics überprüfen und die Konfiguration unter das Scheitern außer Kraft setzen und genehmigen trotzdem bereitstellen. Stellen Sie jedoch sicher, dass die Pipeline aufgrund des Code Risk Analyzer-Scans fehlgeschlagen ist und nicht aufgrund eines Validierungs- oder Planfehlers. Es wird nicht empfohlen, einen Fehler zu überschreiben, der aufgrund eines Validierungs- oder Planungsfehlers markiert wurde, da die Konfiguration möglicherweise nicht erfolgreich bereitgestellt werden kann. Weitere Informationen zu Sicherheit und Compliance in Projekten finden Sie unter Kontinuierliche Compliance als Unternehmen erreichen.

Wenn Sie einsatzfähige Architekturen konfigurieren, die übereinander angeordnet sind, müssen Sie jede Architektur in der Reihenfolge ihrer Abhängigkeiten validieren. Alternativ können Sie die Einstellungen Ihres Projekts so bearbeiten, dass Konfigurationsänderungen, die erfolgreich validiert wurden, automatisch bereitgestellt werden. Wenn Sie dies tun, wird jede Architektur entsprechend ihrer Abhängigkeiten automatisch validiert, genehmigt und bereitgestellt. Weitere Informationen finden Sie unter Bereitstellen einer Architektur.

Genehmigung von Konfigurationsänderungen über die Konsole

Nachdem Sie Ihre Konfiguration validiert haben, müssen die Änderungen von einem Redakteur oder Administrator des Dienstes IBM Cloud Projects genehmigt werden. Führen Sie die folgenden Schritte aus, um Änderungen zu genehmigen:

  1. Wählen Sie in der Projektliste ein Projekt aus.
  2. Vergewissern Sie sich, dass auf der Registerkarte Übersicht in Ihrem Projekt keine offenen Punkte vorhanden sind, die Aufmerksamkeit erfordern. Gegenstände, die Aufmerksamkeit erfordern, können Ihre Einsatzfähigkeit beeinträchtigen.
  3. Gehen Sie zur Registerkarte Konfigurationen und wählen Sie eine einsatzfähige Architekturkonfiguration aus.
  4. Klicken Sie auf Bearbeiten.
  5. Klicken Sie auf Letzte Validierung anzeigen.
  6. Fügen Sie einen Kommentar hinzu, der weitere Einzelheiten zur Genehmigung enthält, und klicken Sie auf Genehmigen.

Wenn Ihre Validierung aufgrund des Code Risk Analyzer-Scans fehlgeschlagen ist, kann ein Administrator des Dienstes IBM Cloud Projects das Scheitern außer Kraft setzen und genehmigen die Konfiguration trotzdem bereitstellen.

Konfiguration einer Architektur mit Hilfe der CLI

Um eine Konfiguration über die Befehlszeilenschnittstelle (CLI) zu einem Projekt hinzuzufügen, führen Sie den folgenden Befehl ibmcloud project config-create aus:

ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION] [--schematics SCHEMATICS]

Für weitere Informationen über die Befehlsparameter siehe ibmcloud project config-create.

Genehmigung von Konfigurationsänderungen mit Hilfe der CLI

  1. Führen Sie den folgenden Befehl ibmcloud project config-validate aus, um Ihre Konfiguration zu überprüfen:

    ibmcloud project config-validate --project-id PROJECT-ID --id ID
    

    Für weitere Informationen über die Befehlsparameter siehe ibmcloud project config-validate.

  2. Nachdem Sie Ihre Konfiguration validiert haben, genehmigen Sie Ihre Konfigurationsänderungen und fügen sie in die Hauptkonfiguration ein, indem Sie den folgenden Befehl ibmcloud project config-approve ausführen:

    ibmcloud project config-approve --project-id PROJECT-ID --id ID [--comment COMMENT]
    

    Für weitere Informationen über die Befehlsparameter siehe ibmcloud project config-approve.

Konfigurieren einer Architektur mit Hilfe der API

Sie können einem Projekt programmatisch eine Konfiguration hinzufügen, indem Sie die Projekt-API aufrufen, wie in der folgenden Beispielanforderung gezeigt. Das Beispiel fügt eine Konfiguration mit dem Namen My new configuration zu einem Projekt hinzu:

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "definition": { "name": "env-stage", "description": "Stage environment configuration.", "locator_id": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.018edf04-e772-4ca2-9785-03e8e03bef72-global", "inputs": { "account_id": "account_id", "resource_group": "stage", "access_tags": [ "env:stage" ], "logdna_name": "LogDNA_stage_service", "sysdig_name": "SysDig_stage_service" }, "settings": { "IBMCLOUD_TOOLCHAIN_ENDPOINT": "https://api.us-south.devops.dev.cloud.ibm.com" } } }' \
  "{base_url}/v1/projects/{project_id}/configs"

Genehmigung von Konfigurationsänderungen mit Hilfe der API

Sie können Konfigurationsänderungen programmatisch genehmigen und mit der Hauptkonfiguration zusammenführen, indem Sie die Projekt-API aufrufen, wie in der folgenden Beispielanforderung gezeigt. In diesem Beispiel werden die Konfigurationsänderungen genehmigt und in die Konfiguration übernommen:

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "comment": "Approving the changes" }' \
  "{base_url}/v1/projects/{project_id}/configs/{id}/approve"