Añadir componentes del entorno a un blueprint - 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.

Añadir componentes del entorno a un blueprint

El asistente de planos personalizados se genera dinámicamente desde la Options interfaz expuesta a través del asistente. Los planos permiten generar componentes de interfaz de usuario (UI) a partir de tipos expuestos.

Para importar los componentes del entorno de Amazon CodeCatalyst blueprints

En su blueprint.ts archivo, añada lo siguiente:

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

Creación de entornos de desarrollo

El siguiente ejemplo muestra cómo implementar la aplicación en la nube:

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

La interfaz genera un componente de interfaz de usuario que solicita un nuevo entorno (myNewEnvironment) con una conexión de cuenta única (thisIsMyFirstAccountConnection. También se genera un rol en la conexión de la cuenta (thisIsARole) con ['lambda', 's3', 'dynamo'] las capacidades de rol mínimas requeridas. No todos los usuarios tienen conexiones de cuenta, por lo que deberías comprobar si un usuario no conecta una cuenta o no conecta una cuenta con un rol. Los roles también se pueden anotar con@inlinePolicies. Para obtener más información, consulte @inlinePolicy. /path/to/policy/file.json.

El componente de entorno requiere una name y. environmentType El siguiente código es la forma predeterminada mínima requerida:

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

A continuación, el componente de interfaz de usuario le solicitará varios campos. A medida que rellena los campos, el plano adquiere una forma completamente expandida. Puede resultarle útil incluir el simulacro completo en el defaults.json archivo con fines de prueba y desarrollo.

Ejemplos de interfaces simuladas

Interfaz simulada simple

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

Interfaz simulada compleja

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

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