Modificando recursos do blueprint com um assistente de front-end - Amazon CodeCatalyst

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Modificando recursos do blueprint com um assistente de front-end

Um assistente de seleção de blueprint ativado CodeCatalyst é gerado automaticamente pela Options interface no blueprint.ts arquivo. O assistente de front-end oferece suporte a modificações e recursos de um blueprint Options usando comentários e tags no estilo JSDOC. Você pode usar comentários e tags no estilo JSDOC para realizar tarefas. Por exemplo, você pode selecionar o texto exibido acima de uma opção, ativar recursos como validação de entrada ou tornar uma opção dobrável. O assistente funciona interpretando uma árvore de sintaxe abstrata (AST) gerada a partir do TypeScript tipo da Options interface. O assistente se configura automaticamente para o tipo descrito da melhor maneira possível. Nem todos os tipos são compatíveis. Outros tipos compatíveis incluem o seletor de região e o seletor de ambiente.

Veja a seguir um exemplo de um assistente que usa comentários e tags JSDOC com blueprints: 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[]; }

O nome de exibição de cada opção da Options interface aparece camelCase por padrão. O texto simples no comentário no estilo JSDOC é exibido como texto acima da opção no assistente.

Etiquetas suportadas

As seguintes tags JSDOC são suportadas por um blueprint personalizado Options no assistente de front-end.

@inlinePolicy. /caminho/para/policy/file.json

  • Requer - Opção de ser um tipoRole.

  • Uso - Permite que você comunique as políticas em linha de que uma função precisa. Espera-se que o policy.json caminho esteja no código-fonte. Use essa tag quando precisar de uma política personalizada para uma função.

  • Dependências - blueprint-cli 0.1.12 e superiores

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

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

@trustPolicy. /caminho/para/policy/file.json

  • Requer - Opção de ser um tipoRole.

  • Uso - Permite que você comunique as políticas de confiança de que uma função precisa. Espera-se que o policy.json caminho esteja no código-fonte. Use essa tag quando precisar de uma política personalizada para uma função.

  • Dependências - blueprint-cli 0.1.12 e superiores

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

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

Expressão @validationRegex Regex

  • Requer - Opção de ser uma string.

  • Uso - Executa a validação de entrada na opção usando a expressão regex e exibições @validationMessage fornecidas.

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

  • Recomendação - Use com@validationMessage. Por padrão, a mensagem de validação está vazia.

string @validationMessage

  • Requer - @validationRegex ou outros erros para revisar o uso.

  • Uso - Exibe mensagem de validação em @validation* caso de falha.

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

  • Recomendação - Use com@validationMessage. Por padrão, a mensagem de validação está vazia.

@collapsed boolean (opcional)

  • Requer - N/A

  • Uso - Booleano que permite que uma subopção seja dobrável. Se a anotação reduzida estiver presente, seu valor padrão será verdadeiro. Definir o valor como @collapsed false cria uma seção dobrável que é inicialmente aberta.

  • Exemplo - @collapsed true

string @displayName

  • Requer - N/A

  • Uso - Altera o nome de exibição da opção. Permite formatos diferentes do CamelCase para o nome de exibição.

  • Exemplo - @displayName Blueprint Name

string @displayName

  • Requer - N/A

  • Uso - Altera o nome de exibição da opção. Permite formatos diferentes do CamelCase para o nome de exibição.

  • Exemplo - @displayName Blueprint Name

número @defaultEntropy

  • Requer - Opção de ser uma string.

  • Uso - Anexa uma sequência alfanumérica aleatória de um comprimento especificado à opção.

  • Exemplo - @defaultEntropy 5

string @placeholder (opcional)

  • Requer - N/A

  • Uso - Altera o espaço reservado padrão para o campo de texto.

  • Exemplo - @placeholder type project name here

Número @textArea (opcional)

  • Requer - N/A

  • Uso - Converte a entrada de string em um componente de área de texto para seções maiores de texto. Adicionar um número define o número de linhas. O padrão é cinco linhas.

  • Exemplo - @textArea 10

@hidden boolean (opcional)

  • Requer - N/A

  • Uso - Oculta o arquivo do usuário, a menos que a verificação de validação falhe. O valor padrão é verdadeiro.

  • Exemplo - @hidden

@button boolean (opcional)

  • Requer - N/A

  • Uso - A anotação deve estar em uma propriedade booleana. Adiciona um botão que será sintetizado como verdadeiro quando escolhido. Não é uma alavanca.

  • Exemplo - buttonExample: boolean;

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

@showName boolean (opcional)

  • Requer - N/A

  • Uso - Só pode ser usado em um tipo de conexão de conta. Mostra a entrada de nome oculto. Padronizado como default_environment.

  • Exemplo - @showName true

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

@ showEnvironmentType boolean (opcional)

  • Requer - N/A

  • Uso - Só pode ser usado em um tipo de conexão de conta. Mostra o menu suspenso do tipo de ambiente oculto. Todas as conexões são padronizadas paraproduction. As opções são não produção ou produção.

  • Exemplo - @showEnvironmentType true

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

@forceDefault boolean (opcional)

  • Requer - N/A

  • Uso - usa o valor padrão fornecido pelo autor do blueprint em vez do valor usado anteriormente pelo usuário.

  • Exemplo - forceDeafultExample: any;

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

@requires Nome do blueprint

  • Requer - Anota a interface Options

  • Uso - avisa o usuário para adicionar o especificado blueprintName ao projeto como um requisito para o blueprint atual.

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

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

TypeScript Tipos suportados

Os TypeScript tipos a seguir são compatíveis com um esquema personalizado Options no assistente de front-end.

Número

  • Requer - Opção de ser um tiponumber.

  • Uso - Gere um campo de entrada numérica.

  • Exemplo - age: number

{ age: number ... }

String

  • Requer - Opção de ser um tipostring.

  • Uso - Gere um campo de entrada de string.

  • Exemplo - name: string

{ age: string ... }

Lista de strings

  • Requer - Opção de ser um tipoboolean.

  • Uso - Gere uma caixa de seleção.

  • Exemplo - isProduction: boolean

{ isProduction: boolean ... }

Rádio

  • Requer - Opção de ser uma união de três ou menos cordas.

  • Uso - Gere um rádio selecionado.

    nota

    Quando há quatro ou mais itens, esse tipo é renderizado como uma lista suspensa.

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

{ color: 'red' | 'blue' | 'green' ... }
  • Requer - Opção de ser uma união de quatro ou mais cordas.

  • Uso - Gere uma lista suspensa.

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

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

Seção expansível

  • Requer - Opção de ser um objeto.

  • Uso - Gere uma seção expansível. As opções no objeto serão aninhadas dentro da seção expansível do assistente.

  • Exemplo -

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

Tupla

  • Requer - Opção de ser do tipoTuple.

  • Uso - Gere uma entrada paga de valor-chave.

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

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

Lista de tuplas

  • Requer - Opção de ser uma matriz de tiposTuple.

  • Uso - Gere uma entrada de lista de tuplas.

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

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

Selector

  • Requer - Opção de ser do tipoSelector.

  • Uso - Gere uma lista suspensa de repositórios de origem ou esquemas aplicados a um projeto.

  • Exemplo - sourceRepo: Selector<SourceRepository>

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

Seleção múltipla

  • Requer - Opção de ser do tipoSelector.

  • Uso - Gere uma entrada de seleção múltipla.

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

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

Comunicação com o usuário durante a síntese

Como autor do blueprint, você pode se comunicar com os usuários além das mensagens de validação. Por exemplo, um membro do espaço pode ver uma combinação de opções que produz um esquema que não está claro. Os esquemas personalizados oferecem suporte à capacidade de comunicar mensagens de erro aos usuários invocando a síntese. O blueprint básico implementa uma throwSynthesisError(...) função que espera uma mensagem de erro clara. Você pode invocar a mensagem usando o seguinte:

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