Adicionando componentes do ambiente a um blueprint - 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á.

Adicionando componentes do ambiente a um blueprint

O assistente de blueprint personalizado é gerado dinamicamente a partir da Options interface exposta por meio do assistente. Os blueprints oferecem suporte à geração de componentes de interface de usuário (UI) a partir de tipos expostos.

Para importar componentes do ambiente Amazon CodeCatalyst Blueprints

No seu blueprint.ts arquivo, adicione o seguinte:

import {...} from '@amazon-codecatalyst/codecatalyst-environments'

Criação de ambientes de desenvolvimento

O exemplo a seguir mostra como implantar seu aplicativo na nuvem:

export interface Options extends ParentOptions { ... myNewEnvironment: EnvironmentDefinition{ thisIsMyFirstAccountConnection: AccountConnection{ thisIsARole: Role['lambda', 's3', 'dynamo']; }; }; }

A interface gera um componente de interface do usuário que solicita um novo ambiente (myNewEnvironment) com uma única conexão de conta (thisIsMyFirstAccountConnection. Uma função na conexão da conta (thisIsARole) também é gerada com ['lambda', 's3', 'dynamo'] os recursos de função mínimos necessários. Nem todos os usuários têm conexões de conta, então você deve verificar o caso em que um usuário não conecta uma conta ou não conecta uma conta com uma função. As funções também podem ser anotadas com. @inlinePolicies Para ter mais informações, consulte @inlinePolicy. /caminho/para/policy/file.json.

O componente ambiental requer um name environmentType e. O código a seguir é a forma padrão mínima exigida:

{ ... "myNewEnvironment": { "name": "myProductionEnvironment", "environmentType": "PRODUCTION" }, }

Em seguida, o componente de interface do usuário solicita vários campos. Conforme você preenche os campos, o blueprint ganha uma forma totalmente expandida. Pode ser útil incluir a simulação completa no defaults.json arquivo para fins de teste e desenvolvimento.

Exemplos de interface simulada

Interface simulada simples

{ ... "thisIsMyEnvironment": { "name": "myProductionEnvironment", "environmentType": "PRODUCTION", "thisIsMySecondAccountConnection": { "id": "12345678910", "name": "my-account-connection-name", "secondAdminRole": { "arn": "arn:aws:iam::12345678910:role/ConnectedQuokkaRole", "name": "ConnectedQuokkaRole", "capabilities": [ "lambda", "s3", "dynamo" ] } } } }

Interface simulada complexa

export interface Options extends ParentOptions { /** * The name of an environment * @displayName This is a Environment Name * @collapsed */ thisIsMyEnvironment: EnvironmentDefinition{ /** * comments about the account that is being deployed into * @displayName This account connection has an overriden name * @collapsed */ thisIsMyFirstAccountConnection: AccountConnection{ /** * Blah blah some information about the role that I expect * e.g. here's a copy-pastable policy: [to a link] * @displayName This role has an overriden name */ adminRole: Role['admin', 'lambda', 's3', 'cloudfront']; /** * Blah blah some information about the second role that I expect * e.g. here's a copy-pastable policy: [to a link] */ lambdaRole: Role['lambda', 's3']; }; /** * comments about the account that is being deployed into */ thisIsMySecondAccountConnection: AccountConnection{ /** * Blah blah some information about the role that I expect * e.g. here's a copy-pastable policy: [to a link] */ secondAdminRole: Role['admin', 'lambda', 's3', 'cloudfront']; /** * Blah blah some information about the second role that I expect * e.g. here's a copy-pastable policy: [to a link] */ secondLambdaRole: Role['lambda', 's3']; }; }; }

Interface simulada completa

{ ... "thisIsMyEnvironment": { "name": "my-production-environment", "environmentType": "PRODUCTION", "thisIsMySecondAccountConnection": { "id": "12345678910", "name": "my-connected-account", "secondAdminRole": { "name": "LambdaQuokkaRole", "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole", "capabilities": [ "admin", "lambda", "s3", "cloudfront" ] }, "secondLambdaRole": { "name": "LambdaQuokkaRole", "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole", "capabilities": [ "lambda", "s3" ] } }, "thisIsMyFirstAccountConnection": { "id": "12345678910", "name": "my-connected-account", "adminRole": { "name": "LambdaQuokkaRole", "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole", "capabilities": [ "admin", "lambda", "s3", "cloudfront" ] }, "lambdaRole": { "name": "LambdaQuokkaRole", "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole", "capabilities": [ "lambda", "s3" ] } } }, }