Modificación de las funciones del blueprint con un asistente de front-end - Amazon CodeCatalyst

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 JSDOC. Puede utilizar comentarios y etiquetas de estilo JSDOC para realizar tareas. Por ejemplo, puede seleccionar el texto que se muestra encima de una opción, habilitar funciones como la validación de entradas o hacer que una opción sea plegable. El asistente interpreta un árbol sintáctico abstracto (AST) generado a partir del TypeScript tipo de texto de la Options 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.

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ás

  • Ejemplo - @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ás

  • Ejemplo - @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 tipostring.

  • Uso: genera un campo de entrada de cadena.

  • Ejemplo - name: string

{ age: string ... }

Lista de cadenas

  • Requiere: opción para ser un tipoboolean.

  • 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' ... }
  • 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 tipoTuple.

  • 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 tipoSelector.

  • 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 tipoSelector.

  • 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.' })