Ändern von Blueprint-Funktionen mit einem Front-End-Assistenten - Amazon CodeCatalyst

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.

Ändern von Blueprint-Funktionen mit einem Front-End-Assistenten

Ein Assistent zur Blueprint-Auswahl CodeCatalyst wird automatisch von der Options Schnittstelle in der blueprint.ts Datei generiert. Der Frontend-Assistent unterstützt Änderungen und Funktionen eines Blueprints Options mithilfe von Kommentaren und Tags im JSDOC-Stil. Sie können Kommentare und Tags im JSDOC-Stil verwenden, um Aufgaben auszuführen. Sie können beispielsweise den über einer Option angezeigten Text auswählen, Funktionen wie die Eingabeüberprüfung aktivieren oder eine Option zusammenklappbar machen. Der Assistent interpretiert einen abstrakten Syntaxbaum (AST), der aus dem TypeScript Typ der Options Schnittstelle generiert wurde. Der Assistent konfiguriert sich automatisch so gut wie möglich auf den beschriebenen Typ. Nicht alle Typen werden unterstützt. Zu den anderen unterstützten Typen gehören die Regionsauswahl und die Umgebungsauswahl.

Im Folgenden finden Sie ein Beispiel für einen Assistenten, der JSDOC-Kommentare und -Tags mit Blueprints verwendet: Options

export interface Options { /** * What do you want to call your new blueprint? * @validationRegex /^[a-zA-Z0-9_]+$/ * @validationMessage Must contain only upper and lowercase letters, numbers and underscores */ blueprintName: string; /** * Add a description for your new blueprint. */ description?: string; /** * Tags for your Blueprint: * @collapsed true */ tags?: string[]; }

Der Anzeigename jeder Option der Options Benutzeroberfläche wird camelCase standardmäßig in angezeigt. Klartext im Kommentar im JSDOC-Stil wird als Text über der Option im Assistenten angezeigt.

Unterstützte Tags

Die folgenden JSDOC-Tags werden von benutzerdefinierten Blueprints Options im Frontend-Assistenten unterstützt.

@inlinePolicy. /path/zur/policy/file.json

  • Erfordert, dass die Option ein Typ ist. Role

  • Verwendung — Ermöglicht es Ihnen, die Inline-Richtlinien mitzuteilen, die eine Rolle benötigt. Es wird erwartet, dass sich der policy.json Pfad im Quellcode befindet. Verwenden Sie dieses Tag, wenn Sie eine benutzerdefinierte Richtlinie für eine Rolle benötigen.

  • Abhängigkeitenblueprint-cli 0.1.12 und höher

  • Beispiel - @inlinePolicy ./deployment-policy.json

environment: EnvironmentDefinition{ awsAccountConnection: AccountConnection{ /** * @inlinePolicy ./path/to/deployment-policy.json */ cdkRole: Role[]; }; };

@trustPolicy. /path/zur/policy/file.json

  • Erfordert, dass die Option ein Typ ist. Role

  • Verwendung — Ermöglicht es Ihnen, die Vertrauensrichtlinien mitzuteilen, die eine Rolle benötigt. Es wird erwartet, dass sich der policy.json Pfad im Quellcode befindet. Verwenden Sie dieses Tag, wenn Sie eine benutzerdefinierte Richtlinie für eine Rolle benötigen.

  • Abhängigkeitenblueprint-cli 0.1.12 und höher

  • Beispiel - @trustPolicy ./trust-policy.json

environment: EnvironmentDefinition{ awsAccountConnection: AccountConnection{ /** * @trustPolicy ./path/to/trust-policy.json */ cdkRole: Role[]; }; };

@validationRegex Regex-Ausdruck

  • Erfordert, dass die Option eine Zeichenfolge ist.

  • Verwendung — Führt eine Eingabevalidierung für die Option unter Verwendung des angegebenen Regex-Ausdrucks durch und zeigt an. @validationMessage

  • Beispiel - @validationRegex /^[a-zA-Z0-9_]+$/

  • Empfehlung — Verwenden Sie mit@validationMessage. Die Bestätigungsnachricht ist standardmäßig leer.

@validationMessage -Zeichenfolge

  • Erfordert@validationRegex oder andere Fehler, um die Nutzung zu überprüfen.

  • Verwendung — Zeigt bei einem @validation* Fehler eine Bestätigungsnachricht an.

  • Beispiel -@validationMessage Must contain only upper and lowercase letters, numbers, and underscores.

  • Empfehlung - Verwenden Sie mit@validationMessage. Die Bestätigungsnachricht ist standardmäßig leer.

@collapsed boolean (optional)

  • Erfordert - N/A

  • Usage — Boolescher Wert, der es ermöglicht, dass eine Unteroption zusammenklappbar ist. Wenn die reduzierte Anmerkung vorhanden ist, ist ihr Standardwert true. Wenn Sie den Wert auf festlegen, @collapsed false wird ein zusammenklappbarer Abschnitt erstellt, der zunächst geöffnet ist.

  • Beispiel - @collapsed true

@displayName -Zeichenfolge

  • Erfordert - N/A

  • Verwendung — Ändert den Anzeigenamen der Option. Erlaubt andere Formate als CamelCase für den Anzeigenamen.

  • Beispiel - @displayName Blueprint Name

@displayName -Zeichenfolge

  • Erfordert - N/A

  • Verwendung — Ändert den Anzeigenamen der Option. Erlaubt andere Formate als CamelCase für den Anzeigenamen.

  • Beispiel - @displayName Blueprint Name

@defaultEntropy -Nummer

  • Erfordert, dass die Option eine Zeichenfolge ist.

  • Verwendung — Hängt eine zufällige alphanumerische Zeichenfolge mit einer bestimmten Länge an die Option an.

  • Beispiel - @defaultEntropy 5

@placeholder -Zeichenfolge (optional)

  • Erfordert - N/A

  • Verwendung — Ändert den Standard-Platzhalter für Textfelder.

  • Beispiel - @placeholder type project name here

@textArea -Nummer (optional)

  • Erfordert — N/A

  • Verwendung — Konvertiert Zeichenketteneingaben in eine Textbereichskomponente für größere Textabschnitte. Das Hinzufügen einer Zahl definiert die Anzahl der Zeilen. Die Standardeinstellung ist fünf Zeilen.

  • Beispiel - @textArea 10

@hidden boolean (optional)

  • Erfordert - N/A

  • Verwendung — Versteckt die Datei vor dem Benutzer, sofern die Überprüfung nicht fehlschlägt. Der Standardwert ist wahr.

  • Beispiel - @hidden

@button boolean (optional)

  • Erfordert - N/A

  • Verwendung — Die Anmerkung muss sich auf eine boolesche Eigenschaft beziehen. Fügt eine Schaltfläche hinzu, die bei Auswahl als wahr synthetisiert wird. Kein Schalter.

  • Beispiel - buttonExample: boolean;

    /** * @button */ buttonExample: boolean;

@showName boolean (optional)

  • Erfordert — N/A

  • Verwendung — Kann nur für einen Kontoverbindungstyp verwendet werden. Zeigt versteckte Namenseingaben an. Standardeinstellung: default_environment.

  • Beispiel - @showName true

    /** * @showName true */ accountConnection: AccountConnection<{ ... }>;

@ showEnvironmentType boolean (optional)

  • Erfordert - N/A

  • Verwendung — Kann nur für einen Kontoverbindungstyp verwendet werden. Zeigt das Drop-down-Menü für den versteckten Umgebungstyp an. Alle Verbindungen sind standardmäßig auf. production Die Optionen sind „Nichtproduktion“ oder „Produktion“.

  • Beispiel - @showEnvironmentType true

    /** * @showEnvironmentType true */ accountConnection: AccountConnection<{ ... }>;

@forceDefault boolean (optional)

  • Erfordert — N/A

  • Verwendung — Verwendet den vom Blueprint-Autor bereitgestellten Standardwert anstelle des Werts, der zuvor vom Benutzer verwendet wurde.

  • BeispielforceDeafultExample: any;

    /** * @forceDefault */ forceDeafultExample: any;

@requires Blaudruckname

  • Erfordert — Kommentiert die Schnittstelle Options

  • Verwendung — Warnt den Benutzer davor, bestimmte Angaben blueprintName als Anforderung für den aktuellen Blueprint zum Projekt hinzuzufügen.

  • Beispiel - @requires '@amazon-codecatalyst/blueprints.blueprint-builder'

    /* * @requires '@amazon-codecatalyst/blueprints.blueprint-builder' */ export interface Options extends ParentOptions { ...

Unterstützte TypeScript Typen

Die folgenden TypeScript Typen werden von benutzerdefinierten Blueprints Options im Front-End-Assistenten unterstützt.

Zahl

  • Erfordert, dass die Option ein Typ ist. number

  • Verwendung — Generiert ein Zahleneingabefeld.

  • Beispiel - age: number

{ age: number ... }

String

  • Erfordert, dass die Option ein Typ iststring.

  • Verwendung — Generiert ein Zeichenketten-Eingabefeld.

  • Beispiel - name: string

{ age: string ... }

Zeichenfolgenliste

  • Erfordert, dass die Option ein Typ istboolean.

  • Verwendung — Generieren Sie ein Kontrollkästchen.

  • Beispiel - isProduction: boolean

{ isProduction: boolean ... }

Radio

  • Erfordert — Die Option muss eine Vereinigung von drei oder weniger Zeichenketten sein.

  • Verwendung — Generiert ein ausgewähltes Radio.

    Anmerkung

    Wenn vier oder mehr Elemente vorhanden sind, wird dieser Typ als Dropdownmenü gerendert.

  • Beispiel - color: 'red' | 'blue' | 'green'

{ color: 'red' | 'blue' | 'green' ... }
  • Erfordert, dass die Option eine Vereinigung von vier oder mehr Zeichenketten ist.

  • Verwendung — Generiert ein Drop-down-Menü.

  • Beispiel - runtimes: 'nodejs' | 'python' | 'java' | 'dotnetcore' | 'ruby'

{ runtimes: 'nodejs' | 'python' | 'java' | 'dotnetcore' | 'ruby' ... }

Erweiterbarer Bereich

  • Erfordert, dass die Option ein Objekt ist.

  • Verwendung — Generiert einen erweiterbaren Abschnitt. Die Optionen im Objekt werden im erweiterbaren Bereich des Assistenten verschachtelt.

  • Beispiel -

{ expandableSectionTitle: { nestedString: string; nestedNumber: number; } }

Tupel

  • Erfordert, dass die Option vom Typ Tuple ist.

  • Verwendung — Generieren Sie eine bezahlte Eingabe mit Schlüsselwert.

  • Beispiel - tuple: Tuple[string, string]>

{ tuple: Tuple[string, string]>; ... }

Tupel-Liste

  • Erfordert, dass die Option ein Array vom Typ Tuple ist.

  • Verwendung — Generiert eine Eingabe für eine Tupelliste.

  • Beispiel - tupleList: Tuple[string, string]>[]

{ tupleList: Tuple[string, string]>[]; ... }

Selector

  • Erfordert, dass die Option vom Typ istSelector.

  • Verwendung — Generiert eine Dropdownliste mit Quell-Repositorys oder Blueprints, die auf ein Projekt angewendet wurden.

  • Beispiel — sourceRepo: Selector<SourceRepository>

{ sourceRepo: Selector<SourceRepository>; sourceRepoOrAdd: Selector<SourceRepository | string>; blueprintInstantiation: Selector<BlueprintInstantiation>; ... }

Mehrfachauswahl

  • Erfordert — Die Option muss vom Typ Selector sein.

  • Verwendung — Generieren Sie eine Multiselect-Eingabe.

  • Beispiel - multiselect: MultiSelect['A' | 'B' | 'C' | 'D' | 'E']>

{ multiselect: MultiSelect['A' | 'B' | 'C' | 'D' | 'E']>; ... }

Kommunikation mit dem Benutzer während der Synthese

Als Blueprint-Autor können Sie den Benutzern nicht nur anhand von Bestätigungsnachrichten antworten. Ein Space-Mitglied könnte sich beispielsweise eine Kombination von Optionen ansehen, wodurch ein unklarer Blueprint entsteht. Benutzerdefinierte Blueprints unterstützen die Fähigkeit, Benutzern Fehlermeldungen mitzuteilen, indem die Synthese aufgerufen wird. Der Basis-Blueprint implementiert eine throwSynthesisError(...) Funktion, die eine eindeutige Fehlermeldung erwartet. Sie können die Nachricht wie folgt aufrufen:

//blueprint.ts this.throwSynthesisError({ name: BlueprintSynthesisErrorTypes.BlueprintSynthesisError, message: 'hello from the blueprint! This is a custom error communicated to the user.' })