Komponenteninfrastruktur als Codedateien - AWS Proton

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Komponenteninfrastruktur als Codedateien

Component Infrastructure as Code (IaC) -Dateien ähneln denen für andere AWS Proton Ressourcen. Erfahren Sie hier mehr über einige Details, die für Komponenten spezifisch sind. Vollständige Informationen zum Erstellen von IaC-Dateien für finden Sie AWS Proton unter. Vorlagen erstellen und Bundles erstellen für AWS Proton

Verwenden von Parametern mit Komponenten

Der AWS Proton Parameter-Namespace enthält einige Parameter, auf die eine Service-IaC-Datei verweisen kann, um den Namen und die Ausgaben einer zugehörigen Komponente abzurufen. Der Namespace enthält auch Parameter, auf die eine IaC-Komponenten-Datei verweisen kann, um Eingaben, Ausgaben und Ressourcenwerte aus der Umgebung, dem Dienst und der Dienstinstanz abzurufen, der die Komponente zugeordnet ist.

Eine Komponente hat keine eigenen Eingaben — sie bezieht ihre Eingaben von der Dienstinstanz, an die sie angehängt ist. Eine Komponente kann auch Umgebungsausgaben lesen.

Weitere Hinweise zur Verwendung von Parametern in IaC-Dateien für Komponenten und zugehörige Dienste finden Sie unterParameterdetails und Beispiele für die CloudFormation IaC-Komponentendatei. Allgemeine Informationen zu AWS Proton Parametern und eine vollständige Referenz zum Parameter-Namespace finden Sie unter. AWS Proton Parameter

Robuste IaC-Dateien erstellen

Als Administrator können Sie beim Erstellen einer Service-Vorlagenversion entscheiden, ob Sie zulassen möchten, dass Dienstinstanzen, die anhand der Vorlagenversion erstellt wurden, Komponenten angehängt haben. Den supportedComponentSourcesParameter der CreateServiceTemplateVersionAPI-Aktion finden Sie in der AWS Proton API-Referenz. Für jede future Dienstinstanz entscheidet jedoch die Person, die die Instanz erstellt, ob eine Komponente an sie angehängt wird oder nicht, und (im Fall von direkt definierten Komponenten) die Komponente IaC verfasst, ist in der Regel eine andere Person — ein Entwickler, der Ihre Dienstvorlage verwendet. Daher können Sie nicht garantieren, dass eine Komponente an eine Dienstinstanz angehängt wird. Sie können auch nicht garantieren, dass bestimmte Komponentenausgabenamen existieren oder dass die Werte dieser Ausgaben gültig und sicher sind.

AWS Proton und die Jinja-Syntax helfen Ihnen dabei, diese Probleme zu umgehen und robuste Dienstvorlagen zu erstellen, die auf folgende Weise fehlerfrei gerendert werden:

  • AWS Proton Parameterfilter — Wenn Sie sich auf die Ausgabeeigenschaften von Komponenten beziehen, können Sie Parameterfilter verwenden. Dabei handelt es sich um Modifikatoren, die Parameterwerte validieren, filtern und formatieren. Weitere Informationen und Beispiele finden Sie unter Parameterfilter für CloudFormation IaC-Dateien.

  • Standard mit einer einzigen Eigenschaft — Wenn Sie auf eine einzelne Ressource oder Ausgabeeigenschaft einer Komponente verweisen, können Sie sicherstellen, dass das Rendern Ihrer Service-Vorlage nicht fehlschlägt, indem Sie den default Filter mit oder ohne Standardwert verwenden. Wenn die Komponente oder ein bestimmter Ausgabeparameter, auf den Sie sich beziehen, nicht existiert, wird stattdessen der Standardwert (oder eine leere Zeichenfolge, falls Sie keinen Standardwert angegeben haben) gerendert, und das Rendern ist erfolgreich. Weitere Informationen finden Sie unter Geben Sie Standardwerte für nicht existierende Verweise an.

    Beispiele:

    • {{ service_instance.components.default.name | default("") }}

    • {{ service_instance.components.default.outputs.my-output | default("17") }}

    Anmerkung

    Verwechseln Sie den .default Teil des Namespaces, der direkt definierte Komponenten bezeichnet, nicht mit dem default Filter, der einen Standardwert bereitstellt, wenn die referenzierte Eigenschaft nicht existiert.

  • Gesamter Objektverweis — Wenn Sie auf die gesamte Komponente oder auf die Auflistung der Ausgaben einer Komponente verweisen, wird ein leeres Objekt AWS Proton zurückgegeben und somit garantiert{}, dass das Rendern Ihrer Dienstvorlage nicht fehlschlägt. Sie müssen keinen Filter verwenden. Stellen Sie sicher, dass Sie die Referenz in einem Kontext erstellen, der ein leeres Objekt annehmen kann, oder verwenden Sie eine {{ if .. }} Bedingung, um zu testen, ob ein leeres Objekt vorhanden ist.

    Beispiele:

    • {{ service_instance.components.default }}

    • {{ service_instance.components.default.outputs }}