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