Modification des fonctionnalités du plan à l'aide d'un assistant frontal - Amazon CodeCatalyst

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Modification des fonctionnalités du plan à l'aide d'un assistant frontal

Un assistant de sélection de plans activé CodeCatalyst est généré automatiquement par l'Optionsinterface du fichier. blueprint.ts L'assistant frontal prend en charge les modifications et les fonctionnalités d'un plan à l'Optionsaide de commentaires de JSDOC style et de balises. Vous pouvez utiliser des commentaires de JSDOC style et des balises pour effectuer des tâches. Par exemple, vous pouvez sélectionner le texte affiché au-dessus d'une option, activer des fonctionnalités telles que la validation des entrées ou rendre une option pliable. L'assistant fonctionne en interprétant un arbre syntaxique abstrait (AST) généré à partir du TypeScript type de l'Optionsinterface. L'assistant se configure automatiquement selon le type décrit du mieux qu'il peut. Tous les types ne sont pas pris en charge. Les autres types pris en charge incluent le sélecteur de région et le sélecteur d'environnement.

Voici un exemple d'assistant qui utilise des JSDOC commentaires et des balises avec des plans : 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[]; }

Le nom d'affichage de chaque option de l'Optionsinterface apparaît camelCase par défaut. Le texte brut dans le commentaire de JSDOC style est affiché sous forme de texte au-dessus de l'option dans l'assistant.

Tags pris en charge

Les JSDOC balises suivantes sont prises en charge par un plan personnalisé Options dans l'assistant frontal.

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

  • Nécessite : l'option doit être un typeRole.

  • Utilisation : vous permet de communiquer les politiques intégrées dont un rôle a besoin. Le policy.json chemin devrait se trouver sous le code source. Utilisez cette balise lorsque vous avez besoin d'une politique personnalisée pour un rôle.

  • Dépendances - blueprint-cli 0.1.12 et supérieures

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

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

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

  • Nécessite : l'option doit être un typeRole.

  • Utilisation : vous permet de communiquer les politiques de confiance dont un rôle a besoin. Le policy.json chemin devrait se trouver sous le code source. Utilisez cette balise lorsque vous avez besoin d'une politique personnalisée pour un rôle.

  • Dépendances - blueprint-cli 0.1.12 et supérieures

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

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

@ validationRegex Expression Regex

  • Nécessite : l'option doit être une chaîne.

  • Utilisation - Effectue la validation des entrées sur l'option en utilisant l'expression regex donnée et les affichages@validationMessage.

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

  • Recommandation - À utiliser avec@validationMessage. Le message de validation est vide par défaut.

@ validationMessage chaîne

  • Nécessite des erreurs @validationRegex ou d'autres erreurs pour vérifier l'utilisation.

  • Utilisation : affiche un message de validation en @validation* cas d'échec.

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

  • Recommandation - À utiliser avec@validationMessage. Le message de validation est vide par défaut.

@collapsed boolean (facultatif)

  • Nécessite - N/A

  • Utilisation : booléen permettant à une sous-option d'être repliable. Si l'annotation réduite est présente, sa valeur par défaut est vraie. La définition de la valeur sur @collapsed false crée une section pliable qui est initialement ouverte.

  • Exemple - @collapsed true

@ displayName chaîne

  • Nécessite - N/A

  • Utilisation - Modifie le nom d'affichage de l'option. Autorise des formats autres que camelCase ceux du nom d'affichage.

  • Exemple - @displayName Blueprint Name

@ displayName chaîne

  • Nécessite - N/A

  • Utilisation - Modifie le nom d'affichage de l'option. Autorise des formats autres que camelCaseceux du nom d'affichage.

  • Exemple - @displayName Blueprint Name

defaultEntropy Numéro @

  • Nécessite : l'option doit être une chaîne.

  • Utilisation : ajoute une chaîne alphanumérique aléatoire d'une longueur spécifiée à l'option.

  • Exemple - @defaultEntropy 5

chaîne @placeholder (facultatif)

  • Nécessite - N/A

  • Utilisation - Modifie l'espace réservé aux champs de texte par défaut.

  • Exemple - @placeholder type project name here

textArea Numéro @ (facultatif)

  • Nécessite - N/A

  • Utilisation - Convertit l'entrée de chaîne en un composant de zone de texte pour les grandes sections de texte. L'ajout d'un nombre définit le nombre de lignes. La valeur par défaut est de cinq lignes.

  • Exemple - @textArea 10

@hidden boolean (facultatif)

  • Nécessite - N/A

  • Utilisation : masque le fichier à l'utilisateur sauf si le contrôle de validation échoue. La valeur par défaut est true.

  • Exemple - @hidden

@button boolean (facultatif)

  • Nécessite - N/A

  • Utilisation : l'annotation doit figurer sur une propriété booléenne. Ajoute un bouton qui sera synthétisé comme vrai une fois sélectionné. Ce n'est pas une bascule.

  • Exemple - buttonExample: boolean;

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

@ showName boolean (facultatif)

  • Nécessite - N/A

  • Utilisation : ne peut être utilisé que sur un type de connexion à un compte. Affiche le nom masqué saisi. La valeur par défaut est default_environment.

  • Exemple - @showName true

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

@ showEnvironmentType boolean (facultatif)

  • Nécessite - N/A

  • Utilisation : ne peut être utilisé que sur un type de connexion à un compte. Affiche le menu déroulant des types d'environnement masqués. Toutes les connexions sont définies par défaut surproduction. Les options sont la non-production ou la production.

  • Exemple - @showEnvironmentType true

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

@ forceDefault boolean (facultatif)

  • Nécessite - N/A

  • Utilisation : utilise la valeur par défaut fournie par l'auteur du plan au lieu de la valeur utilisée précédemment par l'utilisateur.

  • Exemple - forceDeafultExample: any;

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

@requires blueprintName

  • Nécessite : annote l'Optionsinterface.

  • Utilisation : avertit l'utilisateur d'ajouter une spécification blueprintName au projet comme exigence pour le plan actuel.

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

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

@filter regex

  • Nécessite : annote l'MultiSelectinterface Selector or.

  • Utilisation : filtre le menu déroulant dans l'assistant pour afficher les options correspondant à l'expression régulière spécifiée.

  • Exemple - @filter /blueprintPackageName/

    /** * @filter /myPackageName/ */ blueprintInstantiation?: Selector<BlueprintInstantiation>; ...

TypeScript Types pris en charge

Les TypeScript types suivants sont pris en charge par un plan personnalisé Options dans l'assistant frontal.

Nombre

  • Nécessite : l'option doit être un typenumber.

  • Utilisation - Générez un champ de saisie numérique.

  • Exemple - age: number

{ age: number ... }

Chaîne

  • Nécessite : l'option doit être un typestring.

  • Utilisation - Génère un champ de saisie de chaîne.

  • Exemple - name: string

{ age: string ... }

Liste de chaînes

  • Nécessite : l'option doit être un tableau de typesstring.

  • Utilisation - Génère une entrée de liste de chaînes.

  • Exemple - isProduction: boolean

{ isProduction: boolean ... }

Checkbox

  • Nécessite : option pour être unboolean.

  • Utilisation - Générez une case à cocher.

  • Exemple - isProduction: boolean

{ isProduction: boolean ... }

Radio

  • Nécessite : cette option doit être une union de trois chaînes ou moins.

  • Utilisation - Génère une radio sélectionnée.

    Note

    Lorsqu'il y a quatre éléments ou plus, ce type s'affiche sous forme de liste déroulante.

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

{ color: 'red' | 'blue' | 'green' ... }
  • Nécessite : option devant être une union de quatre chaînes ou plus.

  • Utilisation : générez une liste déroulante.

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

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

Section extensible

  • Nécessite : option pour être un objet.

  • Utilisation - Générez une section extensible. Les options de l'objet seront imbriquées dans la section extensible de l'assistant.

  • Exemple -

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

Tuple

  • Nécessite : l'option doit être de typeTuple.

  • Utilisation - Générez une entrée payante à valeur clé.

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

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

Liste de tuples

  • Nécessite : l'option doit être un tableau de typesTuple.

  • Utilisation - Générez une entrée de liste de tuples.

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

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

Selector

  • Nécessite : l'option doit être de typeSelector.

  • Utilisation : générez une liste déroulante des référentiels sources ou des plans appliqués à un projet.

  • Exemple - sourceRepo: Selector<SourceRepository>

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

Sélection multiple

  • Nécessite : l'option doit être de typeSelector.

  • Utilisation - Génère une entrée à sélection multiple.

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

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

Communiquer avec l'utilisateur lors de la synthèse

En tant qu'auteur d'un plan, vous pouvez communiquer avec les utilisateurs au-delà des simples messages de validation. Par exemple, un membre de l'espace peut afficher une combinaison d'options qui produit un plan qui n'est pas clair. Les plans personnalisés permettent de communiquer des messages d'erreur aux utilisateurs en invoquant la synthèse. Le plan de base implémente une throwSynthesisError(...) fonction qui attend un message d'erreur clair. Vous pouvez appeler le message en utilisant ce qui suit :

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