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
IaC-Dateien (Component Infrastructure as Code) ähneln denen für andereAWS Proton Ressourcen. Erfahren Sie hier einige Details, die spezifisch für Komponenten sind. Vollständige Informationen zur Erstellung von IaC-Dateien fürAWS Proton finden Sie unterErstellen von Vorlagen und Erstellen von Paketen für AWS Proton.
Parameter mit Komponenten verwenden
DerAWS 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 Komponenten-IAC-Datei verweisen kann, um Eingaben, Ausgaben und Ressourcenwerte aus der Umgebung, dem Dienst und der Dienstinstanz abzurufen, mit der die Komponente verknüpft ist.
Eine Komponente hat keine eigenen Eingaben — sie erhält ihre Eingaben von der Service-Instance, an die sie angehängt ist. Eine Komponente kann auch Umgebungsausgaben lesen.
Weitere Hinweise zur Verwendung von Parametern in Komponenten- und zugehörigen Service-IAC-Dateien finden Sie unterDetails und Beispiele für Komponenten- CloudFormation IaC-Dateiparameter. Allgemeine Hinweise zuAWS Proton Parametern und eine vollständige Referenz zum Parameter-Namespace finden Sie unterAWS Proton -Parameter.
Erstellung robuster IaC-Dateien
Als Administrator können Sie beim Erstellen einer Service-Template-Version entscheiden, ob Sie zulassen möchten, dass Service-Instanzen, die aus der Vorlagenversion erstellt wurden, angehängte Komponenten haben. Den supportedComponentSourcesParameter der CreateServiceTemplateVersionAPI-Aktion finden Sie in der AWS ProtonAPI-Referenz. Bei jeder future Service-Instance entscheidet jedoch die Person, die die Instance erstellt, ob sie ihr eine Komponente anfügt oder nicht, und (im Fall von direkt definierten Komponenten) erstellt die Komponente. IaC ist in der Regel eine andere Person — ein Entwickler, der Ihre Service-Vorlage verwendet. Daher können Sie nicht garantieren, dass eine Komponente an eine Service-Instance angehängt wird. Sie können auch nicht die Existenz bestimmter Komponentenausgabenamen oder die Gültigkeit und Sicherheit der Werte dieser Ausgaben garantieren.
AWS Protonund die Jinja-Syntax helfen Ihnen, diese Probleme zu umgehen und robuste Service-Vorlagen zu erstellen, die auf folgende Weise fehlerfrei gerendert werden:
-
AWS ProtonParameterfilter — Wenn Sie auf die Ausgabeigenschaften von Komponenten verweisen, können Sie Parameterfilter verwenden — Modifikatoren, die Parameterwerte validieren, filtern und formatieren. Weitere Informationen und Beispiele finden Sie unter Parameterfilter für CloudFormation IaC-Dateien.
-
Standardwert für einzelne Eigenschaften — Wenn Sie auf eine einzelne Ressource oder Ausgabe-Eigenschaft 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 vorhandene Referenzen an.Beispiele:
-
{{ service_instance.components.default.name | default("") }}
-
{{ service_instance.components.default.outputs.
my-output
| default("17") }}
Anmerkung
Verwechseln Sie nicht den
.default
Teil des Namespaces, der direkt definierte Komponenten bezeichnet, mit demdefault
Filter, der einen Standardwert bereitstellt, wenn die referenzierte Eigenschaft nicht existiert. -
-
Vollständige Objektreferenz — Wenn Sie auf die gesamte Komponente oder auf die Sammlung der Ausgaben einer Komponente verweisen, wird ein leeres ObjektAWS Proton zurückgegeben und somit garantiert
{}
, dass das Rendern Ihrer Service-Vorlage 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 }}
-