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'Options
interface du fichier. blueprint.ts
L'assistant frontal prend en charge les modifications et les fonctionnalités d'un plan à l'Options
aide de commentaires de JSDOC style etOptions
interface. 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'Options
interface 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.
Rubriques
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 type
Role
.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érieuresExemple -
@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 type
Role
.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érieuresExemple -
@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 camelCase
ceux 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 sur
production
. 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'
Options
interface.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'
MultiSelect
interfaceSelector
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 type
number
.Utilisation - Générez un champ de saisie numérique.
Exemple -
age: number
{ age: number ... }
Chaîne
Nécessite : l'option doit être un type
string
.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 types
string
.Utilisation - Génère une entrée de liste de chaînes.
Exemple -
isProduction: boolean
{ isProduction: boolean ... }
Checkbox
Nécessite : option pour être un
boolean
.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' ... }
Liste déroulante
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 type
Tuple
.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 types
Tuple
.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 type
Selector
.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 type
Selector
.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.' })