Aggiungere componenti di ambiente a un blueprint - Amazon CodeCatalyst

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiungere componenti di ambiente a un blueprint

La procedura guidata per i progetti personalizzati viene generata dinamicamente dall'Optionsinterfaccia esposta tramite la procedura guidata. I blueprint supportano la generazione di componenti dell'interfaccia utente (UI) a partire dai tipi esposti.

Per importare i componenti dell'ambiente Amazon CodeCatalyst Blueprint

Nel tuo blueprint.ts file, aggiungi quanto segue:

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

Creazione di ambienti di sviluppo

L'esempio seguente mostra come distribuire l'applicazione nel cloud:

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

L'interfaccia genera un componente dell'interfaccia utente che richiede un nuovo ambiente (myNewEnvironment) con una singola connessione a un account (thisIsMyFirstAccountConnection. Viene inoltre generato un ruolo sulla connessione dell'account (thisIsARole) con ['lambda', 's3', 'dynamo'] le funzionalità minime richieste per il ruolo. Non tutti gli utenti dispongono di connessioni all'account, quindi dovresti verificare se un utente non connette un account o non collega un account a un ruolo. I ruoli possono anche essere annotati con@inlinePolicies. Per ulteriori informazioni, consulta @inlinePolicy. /path/to/policy/file.json.

Il componente ambientale richiede un comando name eenvironmentType. Il codice seguente è la forma predefinita minima richiesta:

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

Il componente dell'interfaccia utente richiede quindi l'immissione di vari campi. Man mano che compili i campi, il progetto assume una forma completamente espansa. Può esserti utile includere il mock completo nel defaults.json file per scopi di test e sviluppo.

Esempi di interfacce fittizie

Interfaccia fittizia semplice

{ ... "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" ] } } } }

Interfaccia fittizia complessa

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']; }; }; }

Interfaccia fittizia 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" ] } } }, }