Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Modifica delle funzionalità del blueprint con una procedura guidata di front-end
Una procedura guidata di selezione dei progetti CodeCatalyst viene generata automaticamente dall'Options
interfaccia nel file. blueprint.ts
La procedura guidata front-end supporta le modifiche e le funzionalità di un blueprint utilizzando commenti e tag di stile. Options
JSDOCOptions
La procedura guidata si configura automaticamente nel miglior modo possibile nel tipo descritto. Non tutti i tipi sono supportati. Altri tipi supportati includono il selettore di regione e il selettore di ambiente.
Di seguito è riportato un esempio di procedura guidata che utilizza JSDOC commenti e tag con blueprint: 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[]; }
Per impostazione predefinita, il nome visualizzato di ciascuna opzione dell'Options
interfaccia viene visualizzato incamelCase
. Il testo normale nel commento di JSDOC stile viene visualizzato come testo sopra l'opzione nella procedura guidata.
Tag supportati
I seguenti JSDOC tag sono supportati da un blueprint personalizzato Options
nella procedura guidata di front-end.
@. inlinePolicy /path/to/policy/file.json
Richiede: l'opzione deve essere un tipo.
Role
Utilizzo: consente di comunicare le politiche in linea necessarie per un ruolo. Il
policy.json
percorso dovrebbe essere in codice sorgente. Usa questo tag quando hai bisogno di una politica personalizzata per un ruolo.Dipendenze -
blueprint-cli 0.1.12
e oltreEsempio -
@inlinePolicy ./deployment-policy.json
environment: EnvironmentDefinition{ awsAccountConnection: AccountConnection{ /** * @inlinePolicy ./path/to/deployment-policy.json */ cdkRole: Role[]; }; };
@trustPolicy . /path/to/policy/file.json
Richiede: l'opzione deve essere un tipo.
Role
Utilizzo: consente di comunicare le politiche di fiducia necessarie per un ruolo. Il
policy.json
percorso dovrebbe essere in codice sorgente. Usa questo tag quando hai bisogno di una politica personalizzata per un ruolo.Dipendenze -
blueprint-cli 0.1.12
e oltreEsempio -
@trustPolicy ./trust-policy.json
environment: EnvironmentDefinition{ awsAccountConnection: AccountConnection{ /** * @trustPolicy ./path/to/trust-policy.json */ cdkRole: Role[]; }; };
@ validationRegex espressione Regex
Richiede: l'opzione deve essere una stringa.
Utilizzo: esegue la convalida dell'input sull'opzione utilizzando l'espressione regex e i display specificati.
@validationMessage
Esempio -
@validationRegex /^[a-zA-Z0-9_]+$/
Raccomandazione: utilizzare con
@validationMessage
. Il messaggio di convalida è vuoto per impostazione predefinita.
@ stringa validationMessage
Richiede -
@validationRegex
o altri errori per verificare l'utilizzo.Utilizzo: visualizza un messaggio di convalida in
@validation*
caso di errore.Esempio -
@validationMessage Must contain only upper and lowercase letters, numbers, and underscores
.Raccomandazione: utilizzare con
@validationMessage
. Il messaggio di convalida è vuoto per impostazione predefinita.
@collapsed boolean (opzionale)
Richiede: N/A
Utilizzo: valore booleano che consente a una sottoopzione di essere comprimibile. Se l'annotazione compressa è presente, il suo valore predefinito è true. L'impostazione del valore su
@collapsed false
crea una sezione comprimibile inizialmente aperta.Esempio -
@collapsed true
@ displayName stringa
Richiede - N/A
Utilizzo: modifica il nome visualizzato dell'opzione. Consente formati diversi camelCase dal nome visualizzato.
Esempio -
@displayName Blueprint Name
@ displayName stringa
Richiede - N/A
Utilizzo: modifica il nome visualizzato dell'opzione. Consente formati diversi camelCase
dal nome visualizzato. Esempio -
@displayName Blueprint Name
@ defaultEntropy numero
Richiede: l'opzione deve essere una stringa.
Utilizzo: aggiunge all'opzione una stringa alfanumerica randomizzata di una lunghezza specificata.
Esempio -
@defaultEntropy 5
stringa @placeholder (opzionale)
Richiede: N/A
Utilizzo: modifica il segnaposto predefinito del campo di testo.
Esempio -
@placeholder type project name here
@ textArea numero (opzionale)
Richiede: N/A
Utilizzo: converte la stringa immessa in un componente dell'area di testo per sezioni di testo più grandi. L'aggiunta di un numero definisce il numero di righe. L'impostazione predefinita è cinque righe.
Esempio -
@textArea 10
@hidden boolean (opzionale)
Richiede: N/A
Utilizzo: nasconde il file all'utente a meno che il controllo di convalida non fallisca. Il valore predefinito è true.
Esempio -
@hidden
@button boolean (opzionale)
Richiede: N/A
Utilizzo: l'annotazione deve trovarsi su una proprietà booleana. Aggiunge un pulsante che verrà sintetizzato come vero quando viene selezionato. Non è un interruttore.
Esempio -
buttonExample: boolean;
/** * @button */ buttonExample: boolean;
@ showName boolean (opzionale)
Richiede: N/A
Utilizzo: può essere utilizzato solo su un tipo di connessione a un account. Mostra l'inserimento del nome nascosto. L'impostazione predefinita è
default_environment
.Esempio -
@showName true
/** * @showName true */ accountConnection: AccountConnection<{ ... }>;
@ showEnvironmentType boolean (opzionale)
Richiede: N/A
Utilizzo: può essere utilizzato solo su un tipo di connessione a un account. Mostra il menu a discesa del tipo di ambiente nascosto. Tutte le connessioni sono predefinite su.
production
Le opzioni sono Non produzione o Produzione.Esempio -
@showEnvironmentType true
/** * @showEnvironmentType true */ accountConnection: AccountConnection<{ ... }>;
@ forceDefault boolean (opzionale)
Richiede: N/A
Utilizzo: utilizza il valore predefinito fornito dall'autore del blueprint anziché il valore utilizzato in precedenza dall'utente.
Esempio -
forceDeafultExample: any;
/** * @forceDefault */ forceDeafultExample: any;
@requires blueprintName
Richiede: annota l'
Options
interfaccia.Utilizzo: avvisa l'utente di aggiungere elementi specificati
blueprintName
al progetto come requisito per il blueprint corrente.Esempio -
@requires '@amazon-codecatalyst/blueprints.blueprint-builder'
/* * @requires '@amazon-codecatalyst/blueprints.blueprint-builder' */ export interface Options extends ParentOptions { ...
Regex @filter
Richiede: annota l'interfaccia
Selector
orMultiSelect
.Utilizzo: filtra il menu a discesa nella procedura guidata in base alle opzioni che corrispondono all'espressione regolare specificata.
Esempio -
@filter /blueprintPackageName/
/** * @filter /myPackageName/ */ blueprintInstantiation?: Selector<BlueprintInstantiation>; ...
TypeScript Tipi supportati
I seguenti TypeScript tipi sono supportati da un blueprint personalizzato Options
nella procedura guidata di front-end.
Numero
Richiede: opzione per essere un tipo.
number
Utilizzo: genera un campo di immissione numerico.
Esempio -
age: number
{ age: number ... }
Stringa
Richiede: opzione per essere un tipo
string
.Utilizzo: genera un campo di input di tipo stringa.
Esempio -
name: string
{ age: string ... }
Elenco stringhe
Richiede: l'opzione deve essere una matrice di tipo
string
.Utilizzo: genera un input per un elenco di stringhe.
Esempio -
isProduction: boolean
{ isProduction: boolean ... }
Checkbox
Richiede: opzione per essere un
boolean
.Utilizzo: genera una casella di controllo.
Esempio -
isProduction: boolean
{ isProduction: boolean ... }
Radio
Richiede: l'opzione deve essere un'unione di tre o meno stringhe.
Utilizzo: genera una radio selezionata.
Nota
Quando ci sono quattro o più elementi, questo tipo viene visualizzato come un menu a discesa.
Esempio -
color: 'red' | 'blue' | 'green'
{ color: 'red' | 'blue' | 'green' ... }
Elenco a discesa
Richiede - Opzione per essere un'unione di quattro o più stringhe.
Utilizzo: genera un menu a discesa.
Esempio -
runtimes: 'nodejs' | 'python' | 'java' | 'dotnetcore' | 'ruby'
{ runtimes: 'nodejs' | 'python' | 'java' | 'dotnetcore' | 'ruby' ... }
Sezione espandibile
Richiede: opzione per essere un oggetto.
Utilizzo: genera una sezione espandibile. Le opzioni dell'oggetto verranno annidate all'interno della sezione espandibile della procedura guidata.
Esempio -
{ expandableSectionTitle: { nestedString: string; nestedNumber: number; } }
Tupla
Richiede: l'opzione deve essere di tipo
Tuple
.Utilizzo: genera un input a pagamento con valore chiave.
Esempio -
tuple: Tuple[string, string]>
{ tuple: Tuple[string, string]>; ... }
Elenco di tuple
Richiede: opzione per essere un array di tipo
Tuple
.Utilizzo: genera un input per l'elenco delle tuple.
Esempio -
tupleList: Tuple[string, string]>[]
{ tupleList: Tuple[string, string]>[]; ... }
Selector
Richiede: l'opzione deve essere di tipo
Selector
.Utilizzo: genera un elenco a discesa dei repository o dei blueprint di origine applicati a un progetto.
Esempio -
sourceRepo: Selector<SourceRepository>
{ sourceRepo: Selector<SourceRepository>; sourceRepoOrAdd: Selector<SourceRepository | string>; blueprintInstantiation: Selector<BlueprintInstantiation>; ... }
Selezione multipla
Richiede: opzione per essere di tipo.
Selector
Utilizzo: genera un input multiselezione.
Esempio -
multiselect: MultiSelect['A' | 'B' | 'C' | 'D' | 'E']>
{ multiselect: MultiSelect['A' | 'B' | 'C' | 'D' | 'E']>; ... }
Comunicare con l'utente durante la sintesi
In qualità di autore del blueprint, puoi rispondere agli utenti oltre ai semplici messaggi di convalida. Ad esempio, un membro dello spazio potrebbe visualizzare una combinazione di opzioni che produce un blueprint non chiaro. I blueprint personalizzati supportano la capacità di comunicare messaggi di errore agli utenti richiamando la sintesi. Il blueprint di base implementa una throwSynthesisError(...)
funzione che prevede un messaggio di errore chiaro. È possibile richiamare il messaggio utilizzando quanto segue:
//blueprint.ts this.throwSynthesisError({ name: BlueprintSynthesisErrorTypes.BlueprintSynthesisError, message: 'hello from the blueprint! This is a custom error communicated to the user.' })