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 JSDOCOptions
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 tipo
Role
.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 superioresExemplo -
@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 tipo
Role
.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 superioresExemplo -
@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 para
production
. 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 tipo
number
.Uso - Gere um campo de entrada numérica.
Exemplo -
age: number
{ age: number ... }
String
Requer - Opção de ser um tipo
string
.Uso - Gere um campo de entrada de string.
Exemplo -
name: string
{ age: string ... }
Lista de strings
Requer - Opção de ser um tipo
boolean
.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' ... }
Suspenso
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 tipo
Tuple
.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 tipos
Tuple
.Uso - Gere uma entrada de lista de tuplas.
Exemplo -
tupleList: Tuple[string, string]>[]
{ tupleList: Tuple[string, string]>[]; ... }
Selector
Requer - Opção de ser do tipo
Selector
.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 tipo
Selector
.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.' })