Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

AWS CDK proyectos

Modo de enfoque
AWS CDK proyectos - AWS Cloud Development Kit (AWS CDK) v2

Esta es la guía para AWS CDK desarrolladores de la versión 2. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde el 1.° de junio de 2023.

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.

Esta es la guía para AWS CDK desarrolladores de la versión 2. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde el 1.° de junio de 2023.

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.

Un AWS Cloud Development Kit (AWS CDK) proyecto representa los archivos y carpetas que contienen el código CDK. El contenido variará en función del lenguaje de programación.

Puede crear su AWS CDK proyecto manualmente o con la interfaz de línea de AWS CDK comandos (AWS CDK CLIcdk initcomando). En este tema, haremos referencia a la estructura del proyecto y a las convenciones de nomenclatura de los archivos y las carpetas que crea la CLI de AWS CDK. Puede personalizar y organizar sus proyectos de CDK para adaptarlos a sus necesidades.

nota

Estructura del proyecto creada por el AWS CDK CLI puede variar de una versión a otra a lo largo del tiempo.

Archivos y carpetas universales

.git

Si ha git instalado, el AWS CDK CLI inicializa automáticamente un Git repositorio para su proyecto. El directorio .git contiene información sobre el repositorio.

.gitignore

Archivo de texto utilizado por Git para especificar los archivos y carpetas que se van a ignorar.

README.md

Archivo de texto que proporciona orientación básica e información importante para gestionar el AWS CDK proyecto. Modifique este archivo según sea necesario para documentar la información importante relacionada con el proyecto del CDK.

cdk.json

Archivo de configuración para el AWS CDK. Este archivo proporciona instrucciones para el AWS CDK CLI sobre cómo ejecutar tu aplicación.

Archivos y carpetas específicos del lenguaje

Los siguientes archivos y las carpetas son exclusivos de cada lenguaje de programación compatible.

TypeScript

El siguiente es un ejemplo de proyecto creado en el directorio my-cdk-ts-project mediante el comando cdk init --language typescript:

my-cdk-ts-project ├── .git ├── .gitignore ├── .npmignore ├── README.md ├── bin │ └── my-cdk-ts-project.ts ├── cdk.json ├── jest.config.js ├── lib │ └── my-cdk-ts-project-stack.ts ├── node_modules ├── package-lock.json ├── package.json ├── test │ └── my-cdk-ts-project.test.ts └── tsconfig.json
.npmignore

Archivo que especifica qué archivos y carpetas se deben ignorar al publicar un paquete en el npm registro. Este archivo es similar a.gitignore, pero es específico de npm paquetes.

bin/ .ts my-cdk-ts-project

El archivo de la aplicación define la aplicación del CDK. Los proyectos de CDK pueden contener uno o más archivos de aplicación. Los archivos de aplicación se almacenan en la carpeta bin.

A continuación, se muestra un ejemplo de un archivo de aplicación básico que define una aplicación CDK:

#!/usr/bin/env node import 'source-map-support/register'; import * as cdk from 'aws-cdk-lib'; import { MyCdkTsProjectStack } from '../lib/my-cdk-ts-project-stack'; const app = new cdk.App(); new MyCdkTsProjectStack(app, 'MyCdkTsProjectStack');
jest.config.js

Archivo de configuración para Jest. Jestes un popular JavaScript marco de pruebas.

lib/ -stack.ts my-cdk-ts-project

El archivo de pila define la pila de CDK. Dentro de la pila, usted define los recursos y las propiedades de AWS mediante constructos.

A continuación, se muestra un ejemplo de un archivo de pila básico que define una pila de CDK:

import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; export class MyCdkTsProjectStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // code that defines your resources and properties go here } }
node_modules

Carpeta común en Node.js proyectos que contienen dependencias para su proyecto.

package-lock.json

Archivo de metadatos que funciona con el archivo package.json para administrar las versiones de las dependencias.

package.json

Archivo de metadatos que se utiliza habitualmente en Node.js proyectos. Este archivo contiene información sobre su proyecto de CDK, como el nombre del proyecto, las definiciones de los scripts, las dependencias y otra información de importación del proyecto.

test/ .test.ts my-cdk-ts-project

Se crea una carpeta de pruebas para organizar las pruebas del proyecto de CDK. También se crea un archivo de prueba de muestra.

Puede escribir pruebas en TypeScript y usar Jest para compilar tu TypeScript código antes de ejecutar las pruebas.

tsconfig.json

Archivo de configuración utilizado en TypeScript proyectos que especifican las opciones del compilador y la configuración del proyecto.

JavaScript

El siguiente es un ejemplo de proyecto creado en el directorio my-cdk-js-project mediante el comando cdk init --language javascript:

my-cdk-js-project ├── .git ├── .gitignore ├── .npmignore ├── README.md ├── bin │ └── my-cdk-js-project.js ├── cdk.json ├── jest.config.js ├── lib │ └── my-cdk-js-project-stack.js ├── node_modules ├── package-lock.json ├── package.json └── test └── my-cdk-js-project.test.js
.npmignore

Archivo que especifica qué archivos y carpetas se deben ignorar al publicar un paquete en el npm registro. Este archivo es similar a.gitignore, pero es específico de npm paquetes.

bin/.js my-cdk-js-project

El archivo de la aplicación define la aplicación del CDK. Los proyectos de CDK pueden contener uno o más archivos de aplicación. Los archivos de aplicación se almacenan en la carpeta bin.

A continuación, se muestra un ejemplo de un archivo de aplicación básico que define una aplicación CDK:

#!/usr/bin/env node const cdk = require('aws-cdk-lib'); const { MyCdkJsProjectStack } = require('../lib/my-cdk-js-project-stack'); const app = new cdk.App(); new MyCdkJsProjectStack(app, 'MyCdkJsProjectStack');
jest.config.js

Archivo de configuración para Jest. Jestes un popular JavaScript marco de pruebas.

lib/ -stack.js my-cdk-js-project

El archivo de pila define la pila de CDK. Dentro de la pila, usted define los recursos y las propiedades de AWS mediante constructos.

A continuación, se muestra un ejemplo de un archivo de pila básico que define una pila de CDK:

const { Stack, Duration } = require('aws-cdk-lib'); class MyCdkJsProjectStack extends Stack { constructor(scope, id, props) { super(scope, id, props); // code that defines your resources and properties go here } } module.exports = { MyCdkJsProjectStack }
node_modules

Carpeta común en Node.js proyectos que contienen dependencias para su proyecto.

package-lock.json

Archivo de metadatos que funciona con el archivo package.json para administrar las versiones de las dependencias.

package.json

Archivo de metadatos que se utiliza habitualmente en Node.js proyectos. Este archivo contiene información sobre su proyecto de CDK, como el nombre del proyecto, las definiciones de los scripts, las dependencias y otra información de importación del proyecto.

test/ .test.js my-cdk-js-project

Se crea una carpeta de pruebas para organizar las pruebas del proyecto de CDK. También se crea un archivo de prueba de muestra.

Puede escribir pruebas en JavaScript y usar Jest para compilar tu JavaScript código antes de ejecutar las pruebas.

Python

El siguiente es un ejemplo de proyecto creado en el directorio my-cdk-py-project mediante el comando cdk init --language python:

my-cdk-py-project ├── .git ├── .gitignore ├── .venv ├── README.md ├── app.py ├── cdk.json ├── my_cdk_py_project │ ├── __init__.py │ └── my_cdk_py_project_stack.py ├── requirements-dev.txt ├── requirements.txt ├── source.bat └── tests ├── __init__.py └── unit
.venv

El CDK. CLI crea automáticamente un entorno virtual para su proyecto. El directorio .venv hace referencia a este entorno virtual.

app.py

El archivo de la aplicación define la aplicación del CDK. Los proyectos de CDK pueden contener uno o más archivos de aplicación.

A continuación, se muestra un ejemplo de un archivo de aplicación básico que define una aplicación CDK:

#!/usr/bin/env python3 import os import aws_cdk as cdk from my_cdk_py_project.my_cdk_py_project_stack import MyCdkPyProjectStack app = cdk.App() MyCdkPyProjectStack(app, "MyCdkPyProjectStack") app.synth()
my_cdk_py_project

Directorio que contiene los archivos de pila. El CDK. CLI crea lo siguiente aquí:

  • __init__.py — Un vacío Python fichero de definición del paquete.

  • my_cdk_py_project: es un archivo que define la pila del CDK. A continuación, defina los recursos de AWS y las propiedades de la pila mediante constructos.

A continuación, se muestra un ejemplo de un archivo de pila:

from aws_cdk import Stack from constructs import Construct class MyCdkPyProjectStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) # code that defines your resources and properties go here
requirements-dev.txt

Archivo similar a requirements.txt, pero se utiliza para administrar las dependencias específicamente con fines de desarrollo y no de producción.

requirements.txt

Archivo común utilizado en Python proyectos para especificar y gestionar las dependencias de los proyectos.

source.bat

Archivo Batch para Windows que se utiliza para configurar el Python entorno virtual.

pruebas

Directorio que contiene pruebas de unidades para el proyecto de CDK.

A continuación, se muestra un ejemplo de una prueba unitaria:

import aws_cdk as core import aws_cdk.assertions as assertions from my_cdk_py_project.my_cdk_py_project_stack import MyCdkPyProjectStack def test_sqs_queue_created(): app = core.App() stack = MyCdkPyProjectStack(app, "my-cdk-py-project") template = assertions.Template.from_stack(stack) template.has_resource_properties("AWS::SQS::Queue", { "VisibilityTimeout": 300 })
Java

El siguiente es un ejemplo de proyecto creado en el directorio my-cdk-java-project mediante el comando cdk init --language java:

my-cdk-java-project ├── .git ├── .gitignore ├── README.md ├── cdk.json ├── pom.xml └── src ├── main └── test
pom.xml

Archivo que contiene información de configuración y metadatos sobre el proyecto de CDK. Este archivo forma parte de Maven.

src/main

Directorio que contiene los archivos de la aplicación y de la pila.

A continuación, se muestra un ejemplo de un archivo de aplicación:

package com.myorg; import software.amazon.awscdk.App; import software.amazon.awscdk.Environment; import software.amazon.awscdk.StackProps; import java.util.Arrays; public class MyCdkJavaProjectApp { public static void main(final String[] args) { App app = new App(); new MyCdkJavaProjectStack(app, "MyCdkJavaProjectStack", StackProps.builder() .build()); app.synth(); } }

A continuación, se muestra un ejemplo de un archivo de pila:

package com.myorg; import software.constructs.Construct; import software.amazon.awscdk.Stack; import software.amazon.awscdk.StackProps; public class MyCdkJavaProjectStack extends Stack { public MyCdkJavaProjectStack(final Construct scope, final String id) { this(scope, id, null); } public MyCdkJavaProjectStack(final Construct scope, final String id, final StackProps props) { super(scope, id, props); // code that defines your resources and properties go here } }
src/test

Directorio que contiene los archivos de prueba. A continuación, se muestra un ejemplo:

package com.myorg; import software.amazon.awscdk.App; import software.amazon.awscdk.assertions.Template; import java.io.IOException; import java.util.HashMap; import org.junit.jupiter.api.Test; public class MyCdkJavaProjectTest { @Test public void testStack() throws IOException { App app = new App(); MyCdkJavaProjectStack stack = new MyCdkJavaProjectStack(app, "test"); Template template = Template.fromStack(stack); template.hasResourceProperties("AWS::SQS::Queue", new HashMap<String, Number>() {{ put("VisibilityTimeout", 300); }}); } }
C#

El siguiente es un ejemplo de proyecto creado en el directorio my-cdk-csharp-project mediante el comando cdk init --language csharp:

my-cdk-csharp-project ├── .git ├── .gitignore ├── README.md ├── cdk.json └── src ├── MyCdkCsharpProject └── MyCdkCsharpProject.sln
src/ MyCdkCsharpProject

Directorio que contiene los archivos de la aplicación y de la pila.

A continuación, se muestra un ejemplo de un archivo de aplicación:

using Amazon.CDK; using System; using System.Collections.Generic; using System.Linq; namespace MyCdkCsharpProject { sealed class Program { public static void Main(string[] args) { var app = new App(); new MyCdkCsharpProjectStack(app, "MyCdkCsharpProjectStack", new StackProps{}); app.Synth(); } } }

A continuación, se muestra un ejemplo de un archivo de pila:

using Amazon.CDK; using Constructs; namespace MyCdkCsharpProject { public class MyCdkCsharpProjectStack : Stack { internal MyCdkCsharpProjectStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { // code that defines your resources and properties go here } } }

Este directorio también contiene lo siguiente:

  • GlobalSuppressions.cs: archivo utilizado para suprimir advertencias o errores específicos del compilador en todo el proyecto.

  • .csproj: archivo basado en XML que se utiliza para definir los ajustes, las dependencias y las configuraciones de compilación del proyecto.

src/ .sln MyCdkCsharpProject

Microsoft Visual Studio Solution File se utiliza para organizar y gestionar proyectos relacionados.

Go

El siguiente es un ejemplo de proyecto creado en el directorio my-cdk-go-project mediante el comando cdk init --language go:

my-cdk-go-project ├── .git ├── .gitignore ├── README.md ├── cdk.json ├── go.mod ├── my-cdk-go-project.go └── my-cdk-go-project_test.go
go.mod

Archivo que contiene información del módulo y que se utiliza para gestionar las dependencias y el control de versiones de su Go proyecto.

my-cdk-go-project.go

Archivo que define la aplicación y las pilas de CDK.

A continuación, se muestra un ejemplo:

package main import ( "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" ) type MyCdkGoProjectStackProps struct { awscdk.StackProps } func NewMyCdkGoProjectStack(scope constructs.Construct, id string, props *MyCdkGoProjectStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) // The code that defines your resources and properties go here return stack } func main() { defer jsii.Close() app := awscdk.NewApp(nil) NewMyCdkGoProjectStack(app, "MyCdkGoProjectStack", &MyCdkGoProjectStackProps{ awscdk.StackProps{ Env: env(), }, }) app.Synth(nil) } func env() *awscdk.Environment { return nil }
my-cdk-go-project_test.go

Archivo que define un ejemplo de prueba.

A continuación, se muestra un ejemplo:

package main import ( "testing" "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/aws-cdk-go/awscdk/v2/assertions" "github.com/aws/jsii-runtime-go" ) func TestMyCdkGoProjectStack(t *testing.T) { // GIVEN app := awscdk.NewApp(nil) // WHEN stack := NewMyCdkGoProjectStack(app, "MyStack", nil) // THEN template := assertions.Template_FromStack(stack, nil) template.HasResourceProperties(jsii.String("AWS::SQS::Queue"), map[string]interface{}{ "VisibilityTimeout": 300, }) }

El siguiente es un ejemplo de proyecto creado en el directorio my-cdk-ts-project mediante el comando cdk init --language typescript:

my-cdk-ts-project ├── .git ├── .gitignore ├── .npmignore ├── README.md ├── bin │ └── my-cdk-ts-project.ts ├── cdk.json ├── jest.config.js ├── lib │ └── my-cdk-ts-project-stack.ts ├── node_modules ├── package-lock.json ├── package.json ├── test │ └── my-cdk-ts-project.test.ts └── tsconfig.json
.npmignore

Archivo que especifica qué archivos y carpetas se deben ignorar al publicar un paquete en el npm registro. Este archivo es similar a.gitignore, pero es específico de npm paquetes.

bin/ .ts my-cdk-ts-project

El archivo de la aplicación define la aplicación del CDK. Los proyectos de CDK pueden contener uno o más archivos de aplicación. Los archivos de aplicación se almacenan en la carpeta bin.

A continuación, se muestra un ejemplo de un archivo de aplicación básico que define una aplicación CDK:

#!/usr/bin/env node import 'source-map-support/register'; import * as cdk from 'aws-cdk-lib'; import { MyCdkTsProjectStack } from '../lib/my-cdk-ts-project-stack'; const app = new cdk.App(); new MyCdkTsProjectStack(app, 'MyCdkTsProjectStack');
jest.config.js

Archivo de configuración para Jest. Jestes un popular JavaScript marco de pruebas.

lib/ -stack.ts my-cdk-ts-project

El archivo de pila define la pila de CDK. Dentro de la pila, usted define los recursos y las propiedades de AWS mediante constructos.

A continuación, se muestra un ejemplo de un archivo de pila básico que define una pila de CDK:

import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; export class MyCdkTsProjectStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // code that defines your resources and properties go here } }
node_modules

Carpeta común en Node.js proyectos que contienen dependencias para su proyecto.

package-lock.json

Archivo de metadatos que funciona con el archivo package.json para administrar las versiones de las dependencias.

package.json

Archivo de metadatos que se utiliza habitualmente en Node.js proyectos. Este archivo contiene información sobre su proyecto de CDK, como el nombre del proyecto, las definiciones de los scripts, las dependencias y otra información de importación del proyecto.

test/ .test.ts my-cdk-ts-project

Se crea una carpeta de pruebas para organizar las pruebas del proyecto de CDK. También se crea un archivo de prueba de muestra.

Puede escribir pruebas en TypeScript y usar Jest para compilar tu TypeScript código antes de ejecutar las pruebas.

tsconfig.json

Archivo de configuración utilizado en TypeScript proyectos que especifican las opciones del compilador y la configuración del proyecto.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.