Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Modificación de las funciones del blueprint con un asistente de front-end
La Options
interfaz del archivo genera automáticamente CodeCatalyst un asistente de selección de planos activado. blueprint.ts
El asistente de interfaz admite las modificaciones y funciones de un plano Options
mediante comentarios y etiquetas de estilo JSDOCOptions
interfaz. El asistente se configura automáticamente según el tipo descrito de la mejor manera posible. No se admiten todos los tipos. Otros tipos compatibles incluyen el selector de región y el selector de entorno.
El siguiente es un ejemplo de un asistente que utiliza comentarios y etiquetas del JSDOC con los planos: 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[]; }
El nombre para mostrar de cada opción de la Options
interfaz aparece de forma predeterminada. camelCase
El texto sin formato del comentario de estilo JSDOC se muestra como texto encima de la opción en el asistente.
Temas
Etiquetas compatibles
Las siguientes etiquetas JSDOC son compatibles con un esquema personalizado Options
en el asistente de front-end.
@inlinePolicy. /path/to/policy/file.json
Requiere: la opción debe ser un tipo.
Role
Uso: le permite comunicar las políticas integradas que necesita un puesto. Se espera que la
policy.json
ruta esté bajo el código fuente. Use esta etiqueta cuando necesite una política personalizada para un rol.Dependencias,
blueprint-cli 0.1.12
y másEjemplo -
@inlinePolicy ./deployment-policy.json
environment: EnvironmentDefinition{ awsAccountConnection: AccountConnection{ /** * @inlinePolicy ./path/to/deployment-policy.json */ cdkRole: Role[]; }; };
@trustPolicy. /path/to/policy/file.json
Requiere: la opción debe ser un tipo.
Role
Uso: le permite comunicar las políticas de confianza que necesita un puesto. Se espera que la
policy.json
ruta esté bajo el código fuente. Use esta etiqueta cuando necesite una política personalizada para un rol.Dependencias,
blueprint-cli 0.1.12
y másEjemplo -
@trustPolicy ./trust-policy.json
environment: EnvironmentDefinition{ awsAccountConnection: AccountConnection{ /** * @trustPolicy ./path/to/trust-policy.json */ cdkRole: Role[]; }; };
Expresión regular @validationRegex
Requiere que la opción sea una cadena.
Uso: realiza la validación de entrada de la opción mediante la expresión regular dada y se muestra.
@validationMessage
Ejemplo:
@validationRegex /^[a-zA-Z0-9_]+$/
Recomendación: úselo con
@validationMessage
. El mensaje de validación está vacío de forma predeterminada.
Cadena @validationMessage
Requiere...
@validationRegex
u otros errores para revisar el uso.Uso: muestra un mensaje de validación en
@validation*
caso de error.Ejemplo -
@validationMessage Must contain only upper and lowercase letters, numbers, and underscores
.Recomendación: úselo con
@validationMessage
. El mensaje de validación está vacío de forma predeterminada.
@collapsed boolean (opcional)
Requiere: N/A
Uso: booleano que permite plegar una subopción. Si la anotación contraída está presente, su valor predeterminado es true. Si se establece el valor en, se
@collapsed false
crea una sección plegable que inicialmente está abierta.Ejemplo:
@collapsed true
cadena @displayName
Requiere: N/A
Uso: cambia el nombre para mostrar de la opción. Admite formatos distintos de CamelCase para el nombre mostrado.
Ejemplo -
@displayName Blueprint Name
cadena @displayName
Requiere: N/A
Uso: cambia el nombre para mostrar de la opción. Admite formatos distintos de CamelCase
para el nombre mostrado. Ejemplo -
@displayName Blueprint Name
Número @defaultEntropy
Requiere que la opción sea una cadena.
Uso: agrega a la opción una cadena alfanumérica aleatoria de una longitud específica.
Ejemplo:
@defaultEntropy 5
@placeholder string (opcional)
Requiere: N/A
Uso: cambia el marcador de posición del campo de texto predeterminado.
Ejemplo -
@placeholder type project name here
Número @textArea (opcional)
Requiere: N/A
Uso: convierte la entrada de cadena en un componente de área de texto para secciones de texto más grandes. Al añadir un número se define el número de filas. El valor predeterminado es de cinco filas.
Ejemplo -
@textArea 10
@hidden boolean (opcional)
Requiere: N/A
Uso: oculta el archivo al usuario a menos que se produzca un error en la comprobación de validación. El valor predeterminado es true.
Ejemplo -
@hidden
@button boolean (opcional)
Requiere: N/A
Uso: la anotación debe estar en una propiedad booleana. Añade un botón que se sintetizará como verdadero cuando se elija. No es un botón.
Ejemplo -
buttonExample: boolean;
/** * @button */ buttonExample: boolean;
@showName boolean (opcional)
Requiere: N/A
Uso: solo se puede usar en un tipo de conexión de cuenta. Muestra la entrada de nombre oculta. El valor predeterminado es
default_environment
.Ejemplo -
@showName true
/** * @showName true */ accountConnection: AccountConnection<{ ... }>;
@ showEnvironmentType boolean (opcional)
Requiere: N/A
Uso: solo se puede usar en un tipo de conexión de cuenta. Muestra el menú desplegable de tipos de entornos ocultos. Todas las conexiones son de forma predeterminada.
production
Las opciones son Producción o No Producción.Ejemplo -
@showEnvironmentType true
/** * @showEnvironmentType true */ accountConnection: AccountConnection<{ ... }>;
@forceDefault boolean (opcional)
Requiere: N/A
Uso: utiliza el valor predeterminado proporcionado por el autor del blueprint en lugar del valor que utilizaba anteriormente el usuario.
Ejemplo:
forceDeafultExample: any;
/** * @forceDefault */ forceDeafultExample: any;
@requires blueprintName
Requiere: anota la interfaz
Options
Uso: advierte al usuario que añada lo especificado
blueprintName
al proyecto como requisito para el esquema actual.Ejemplo:
@requires '@amazon-codecatalyst/blueprints.blueprint-builder'
/* * @requires '@amazon-codecatalyst/blueprints.blueprint-builder' */ export interface Options extends ParentOptions { ...
TypeScript Tipos compatibles
Los siguientes TypeScript tipos son compatibles con un esquema personalizado Options
en el asistente de front-end.
Número
Requiere: opción para ser un tipo.
number
Uso: genera un campo de entrada numérico.
Ejemplo -
age: number
{ age: number ... }
Cadena
Requiere: opción para ser un tipo
string
.Uso: genera un campo de entrada de cadena.
Ejemplo -
name: string
{ age: string ... }
Lista de cadenas
Requiere: opción para ser un tipo
boolean
.Uso: genera una casilla de verificación.
Ejemplo -
isProduction: boolean
{ isProduction: boolean ... }
Radio
Requiere: la opción de ser una unión de tres o menos cuerdas.
Uso: genera una radio seleccionada.
nota
Cuando hay cuatro o más elementos, este tipo se representa como un menú desplegable.
Ejemplo:
color: 'red' | 'blue' | 'green'
{ color: 'red' | 'blue' | 'green' ... }
Lista desplegable
Requiere que la opción sea una unión de cuatro o más cadenas.
Uso: genera un menú desplegable.
Ejemplo -
runtimes: 'nodejs' | 'python' | 'java' | 'dotnetcore' | 'ruby'
{ runtimes: 'nodejs' | 'python' | 'java' | 'dotnetcore' | 'ruby' ... }
Sección ampliable
Requiere: opción para ser un objeto.
Uso: genera una sección ampliable. Las opciones del objeto se ubicarán dentro de la sección expandible del asistente.
Ejemplo:
{ expandableSectionTitle: { nestedString: string; nestedNumber: number; } }
Tupla
Requiere: la opción es ser del tipo
Tuple
.Uso: genera una entrada pagada con un valor clave.
Ejemplo -
tuple: Tuple[string, string]>
{ tuple: Tuple[string, string]>; ... }
Lista de tuplas
Requiere que la opción sea un tipo
Tuple
de matriz.Uso: genera una entrada de lista de tuplas.
Ejemplo -
tupleList: Tuple[string, string]>[]
{ tupleList: Tuple[string, string]>[]; ... }
Selector
Requiere: la opción debe ser del tipo
Selector
.Uso: genera un menú desplegable con los repositorios de origen o los planos aplicados a un proyecto.
Ejemplo:
sourceRepo: Selector<SourceRepository>
{ sourceRepo: Selector<SourceRepository>; sourceRepoOrAdd: Selector<SourceRepository | string>; blueprintInstantiation: Selector<BlueprintInstantiation>; ... }
Selección múltiple
Requiere: la opción debe ser del tipo
Selector
.Uso: genera una entrada de selección múltiple.
Ejemplo -
multiselect: MultiSelect['A' | 'B' | 'C' | 'D' | 'E']>
{ multiselect: MultiSelect['A' | 'B' | 'C' | 'D' | 'E']>; ... }
Comunicarse con el usuario durante la síntesis
Como autor de un plan, puede comunicarse con los usuarios más allá de los mensajes de validación. Por ejemplo, un miembro del espacio podría ver una combinación de opciones que genere un plan que no esté claro. Los planos personalizados permiten comunicar los mensajes de error a los usuarios mediante la invocación de la síntesis. El esquema base implementa una throwSynthesisError(...)
función que espera un mensaje de error claro. Puede invocar el mensaje mediante lo siguiente:
//blueprint.ts this.throwSynthesisError({ name: BlueprintSynthesisErrorTypes.BlueprintSynthesisError, message: 'hello from the blueprint! This is a custom error communicated to the user.' })