AWS Cloud9 ya no está disponible para nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. Más información
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.
AWS CDK tutorial para AWS Cloud9
Este tutorial le muestra cómo trabajar con ellos AWS Cloud Development Kit (AWS CDK) en un entorno de AWS Cloud9 desarrollo. AWS CDK Se trata de un conjunto de herramientas y bibliotecas de software que los desarrolladores pueden utilizar para modelar los componentes de la AWS infraestructura como código.
AWS CDK Incluye la biblioteca AWS Construct, que puede utilizar para resolver rápidamente muchas tareas AWS. Por ejemplo, puede utilizar la construcción Fleet para implementar código de forma completa y segura en una flota de hosts. Puede crear sus propias construcciones para crear modelos de diversos elementos de sus arquitecturas, compartirlos con otras personas o publicarlos en la comunidad. Para obtener más información, consulte la Guía del desarrollador del kit de desarrollo de la nube de AWS.
El uso de este tutorial y la creación de esta muestra pueden generar cargos en su cuenta de AWS
. Estos incluyen posibles cargos por servicios como Amazon EC2, Amazon SNS y Amazon SQS. Para obtener más información, consulte Amazon EC2 Pricing
Temas
Requisitos previos
Antes de utilizar este ejemplo, asegúrese de que su configuración cumpla los siguientes requisitos:
-
Debe tener un entorno de AWS Cloud9 EC2 desarrollo existente. En este ejemplo se supone que ya tienes un EC2 entorno conectado a una EC2 instancia de Amazon que ejecuta Amazon Linux o Ubuntu Servidor. Si tiene otro tipo de entorno o sistema operativo, es posible que tenga que adaptar las instrucciones de este ejemplo para configurar herramientas relacionadas. Para obtener más información, consulte Crear un entorno en AWS Cloud9.
-
Ya tiene abierto el AWS Cloud9 IDE del entorno existente. Al abrir un entorno, AWS Cloud9 abre el IDE de ese entorno en el navegador web. Para obtener más información, consulte Abrir un entorno en AWS Cloud9.
Paso 1: Instalar las herramientas necesarias
En este paso, instalará en su entorno todas las herramientas necesarias AWS CDK para ejecutar un ejemplo escrito en el lenguaje de TypeScript programación.
-
Node Version Manager o
nvm, que se utiliza para instalar Node.js más adelante. -
Node.js, que se requiere en el ejemplo y contiene Node Package Manager, o bien
npm, que se utiliza para la instalación TypeScript y versiones AWS CDK posteriores. -
TypeScript, que se requiere en este ejemplo. ( AWS CDK También es compatible con varios otros lenguajes de programación).
Paso 1.1: Instalar Node Version Manager (nvm)
-
En una sesión terminal en el AWS Cloud9 IDE, asegúrese de que estén instaladas las últimas actualizaciones de seguridad y correcciones de errores. Para ello, ejecute el comando
yum update(para Amazon Linux) oapt update(para Ubuntu Server). (Para iniciar una nueva sesión del terminal, en la barra de menús, seleccione Window [Ventana], New Terminal [Nuevo terminal]).Para Amazon Linux:
sudo yum -y updatePara Ubuntu Server:
sudo apt update -
Confirme si
nvmya está instalado. Para ello, ejecute el comandonvmcon la opción--version.nvm --versionSi se ejecuta correctamente, el resultado contiene el número de versión de
nvm, en cuyo caso puede ir directamente a Paso 1.2: Instalar Node.js. -
Descargue e instale
nvm. Para ello, ejecute el script de instalación. En este ejemplo, la versión instalada es la 0.33.0, pero puede consultar la última versión denvmaquí. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash -
Comience a utilizar
nvm. Puede cerrar la sesión del terminal e iniciarla de nuevo, o bien cargar el archivo~/.bashrcque contiene los comandos para cargarnvm.. ~/.bashrc
Paso 1.2: Instalar Node.js
-
Confirme si ya tiene instalado Node.js. Si es así, asegúrese de que la versión instalada es 16.17.0 o superior. Este ejemplo se ha probado con Node.js 16.17.0. Para verificarlo, con la sesión del terminal aún abierta en el IDE, ejecute el comando
nodecon la opción--version.node --versionSi ha instalado Node.js, la salida contendrá el número de versión. Si el número de versión es 16.17.0, vaya directamente a Paso 1.3: Instalar TypeScript.
-
Instale Node.js 16 ejecutando el comando
nvmcon la accióninstall.nota
También puede ejecutar
nvm install nodepara instalar la versión de soporte a largo plazo (LTS) de Node.js. AWS Cloud9 el soporte rastrea la versión LTS de Node.js.nvm install v16 -
Comience a utilizar Node.js 16. Para ello, ejecute el comando
nvmjunto con la acciónalias, el número de versión para el alias y la versión que se va a utilizar para dicho alias, tal y como se indica a continuación.nvm alias default 16nota
El comando anterior establece Node.js 16 como la versión predeterminada de Node.js. Si lo desea, también puede ejecutar el comando
nvmjunto con la acciónuse, en lugar de la acciónalias(por ejemplo,nvm use 16.17.0). Sin embargo, la acciónuseprovoca que esa versión de Node.js solo se active mientras que la sesión del terminal actual se está ejecutando. -
Para confirmar que está utilizando 16 Node.js, vuelva a ejecutar el comando
node --version. Si la versión instalada es la correcta, la salida incluirá la versión v16.
Paso 1.3: Instalar TypeScript
-
Confirme si ya lo ha TypeScript instalado. Para ello, con la sesión de terminal aún abierta en el IDE, ejecute el TypeScript compilador de línea de comandos con la
--versionopción.tsc --versionSi lo ha TypeScript instalado, el resultado contiene el número de TypeScript versión. Si TypeScript está instalado, pase aPaso 1.4: Instale el AWS CDK.
-
Instalar TypeScript. Para ello, ejecute el
npmcomando con lainstallacción, la-gopción y el nombre del TypeScript paquete. Se instala TypeScript como un paquete global en el entorno.npm install -g typescript -
Confirme que TypeScript esté instalado. Para ello, ejecute el TypeScript compilador de línea de comandos con la
--versionopción.tsc --versionSi TypeScript está instalado, la salida contiene el número de TypeScript versión.
Paso 1.4: Instale el AWS CDK
-
Confirme si ya lo tiene AWS CDK instalado. Para ello, con la sesión del terminal aún abierta en el IDE, ejecute el comando
cdkcon la opción--version.cdk --versionSi AWS CDK está instalado, el resultado contiene los números de AWS CDK versión y compilación. Vaya a Paso 2: Agregar el código.
-
Para instalarlo, ejecute el
npmcomando junto con lainstallacción, el nombre del AWS CDK paquete que se va a instalar y la-gopción de instalar el paquete globalmente en el entorno. AWS CDKnpm install -g aws-cdk -
Confirme que AWS CDK está instalado y que está correctamente referenciado. Para ello, ejecute el comando
cdkcon la opción--version.cdk --versionSi se ejecuta correctamente, se muestran los números de AWS CDK versión y compilación.
Paso 2: Agregar el código
En este paso, crearás un TypeScript proyecto de ejemplo que contenga todo el código fuente que necesitas para implementar una AWS CloudFormation pila mediante programación. AWS CDK Esta pila crea un tema de Amazon SNS y una cola de Amazon SQS en AWS su cuenta y, a continuación, suscribe la cola al tema.
-
Con la sesión del terminal aún abierta en el IDE, cree un directorio para almacenar el código fuente del proyecto; por ejemplo, un directorio
~/environment/hello-cdken su entorno. Luego, cambie a ese directorio.rm -rf ~/environment/hello-cdk # Remove this directory if it already exists. mkdir ~/environment/hello-cdk # Create the directory. cd ~/environment/hello-cdk # Switch to the directory. -
Configure el directorio como un TypeScript proyecto de lenguaje para. AWS CDK Para ello, ejecute el comando
cdkcon la accióninit, la plantillasample-appy la opción--languagejunto con el nombre del lenguaje de programación.cdk init sample-app --language typescriptDe esta forma, se crean los siguientes archivos y subdirectorios en el directorio.
-
Un subdirectorio
.gity un archivo.gitignoreocultos, que hacen que el proyecto sea compatible con herramientas de control de código fuente como Git. -
Un subdirectorio
lib, que incluye un archivohello-cdk-stack.ts. Este archivo contiene el código de su AWS CDK pila. Este código se describe en el siguiente paso de este procedimiento. -
Un subdirectorio
bin, que incluye un archivohello-cdk.ts. Este archivo contiene el punto de entrada de tu AWS CDK aplicación. -
Un subdirectorio
node_modules, que contiene los paquetes de código de apoyo que la aplicación y la pila pueden utilizar según sea necesario. -
Un archivo
.npmignoreoculto, que enumera los tipos de subdirectorios y los archivos quenpmno necesita al compilar el código. -
Un archivo
cdk.json, que contiene la información para poder ejecutar el comandocdkmás fácilmente. -
Un archivo
package-lock.json, que contiene información quenpmpuede utilizar para reducir posibles errores de compilación y ejecución. -
Un archivo
package.json, que contiene información para poder ejecutar el comandonpmmás fácilmente y con posiblemente menos errores de compilación y ejecución. -
Un
README.mdarchivo en el que se enumeran los comandos útiles con los que puede ejecutarnpmy los AWS CDK. -
Un archivo
tsconfig.json, que contiene información para poder ejecutar el comandotscmás fácilmente y con posiblemente menos errores de compilación y ejecución.
-
-
En la ventana Environment (Entorno), abra el archivo
lib/hello-cdk-stack.tsy examine el siguiente código en ese archivo.import sns = require('@aws-cdk/aws-sns'); import sqs = require('@aws-cdk/aws-sqs'); import cdk = require('@aws-cdk/cdk'); export class HelloCdkStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const queue = new sqs.Queue(this, 'HelloCdkQueue', { visibilityTimeoutSec: 300 }); const topic = new sns.Topic(this, 'HelloCdkTopic'); topic.subscribeQueue(queue); } }-
TopicLas clasesStackApp,StackPropsQueue, y representan una CloudFormation pila y sus propiedades, un programa ejecutable, una cola de Amazon SQS y un tema de Amazon SNS, respectivamente. -
La
HelloCdkStackclase representa la CloudFormation pila de esta aplicación. Esta pila contiene la nueva cola de Amazon SQS y el tema de Amazon SNS para esta aplicación.
-
-
En la ventana Environment (Entorno), abra el archivo
bin/hello-cdk.tsy examine el siguiente código en ese archivo.#!/usr/bin/env node import cdk = require('@aws-cdk/cdk'); import { HelloCdkStack } from '../lib/hello-cdk-stack'; const app = new cdk.App(); new HelloCdkStack(app, 'HelloCdkStack'); app.run();Este código carga, crea una instancia y luego ejecuta la clase
HelloCdkStacka partir del archivolib/hello-cdk-stack.ts. -
Se utiliza
npmpara ejecutar el TypeScript compilador para comprobar si hay errores de codificación y, AWS CDK a continuación, habilitar la ejecución delbin/hello-cdk.jsarchivo del proyecto. Para ello, desde el directorio raíz del proyecto, ejecute el comandonpmcon la acciónruny especifique el valor del comandobuilden el archivopackage.json, tal y como se indica a continuación.npm run buildEl comando anterior ejecuta el TypeScript compilador, que añade archivos
bin/hello-cdk.d.tsylib/hello-cdk-stack.d.tssoportes. El compilador también transpone los archivoshello-cdk-stack.tsyhello-cdk.tsen los archivoshello-cdk-stack.jsyhello-cdk.js.
Paso 3: Ejecutar el código
En este paso, le indicas AWS CDK que creen una plantilla de CloudFormation pila basada en el código del archivo. bin/hello-cdk.js A continuación, le indicas que AWS CDK desplieguen la pila, lo que crea el tema de Amazon SNS y la cola de Amazon SQS y, a continuación, suscribe la cola al tema. Luego, confirme que el tema y la cola se han implementado correctamente enviando un mensaje del tema a la cola.
-
Haga que creen la plantilla de pila. AWS CDK CloudFormation Para ello, con la sesión del terminal aún abierta en el IDE, desde el directorio raíz del proyecto, ejecute el comando
cdkcon la acciónsynthy el nombre de la pila.cdk synth HelloCdkStackSi tiene éxito, el resultado muestra la
Resourcessección de la plantilla de CloudFormation pila. -
La primera vez que despliegues una AWS CDK aplicación en un entorno para una combinación específica de AWS cuenta y AWS región, debes instalar una pila de arranque. Esta pila incluye varios recursos que AWS CDK necesita para completar sus distintas operaciones. Por ejemplo, esta pila incluye un bucket de Amazon S3 que AWS CDK utiliza para almacenar plantillas y activos durante sus procesos de implementación. Para instalar la pila de arranque, ejecute el comando
cdkcon la acciónbootstrap.cdk bootstrapnota
Si se ejecuta
cdk bootstrapsin especificar ninguna opción, se utilizan la AWS cuenta y AWS la región predeterminadas. También puede arrancar un entorno específico especificando una combinación de perfil y cuenta/región. Por ejemplo:cdk bootstrap --profile test 123456789012/us-east-1 -
Haga que AWS CDK ejecute la plantilla de CloudFormation pila para implementar la pila. Para ello, desde el directorio raíz del proyecto, ejecute el comando
cdkcon la accióndeployy el nombre de la pila.cdk deploy HelloCdkStackSi se ejecuta correctamente, la salida muestra que la pila
HelloCdkStackse ha implementado sin errores.nota
Si el resultado muestra un mensaje en el que se indica que la pila no define un entorno y que AWS las credenciales no se pudieron obtener de ubicaciones estándar o que no se configuró ninguna región, asegúrese de que AWS las credenciales estén configuradas correctamente en el IDE y, a continuación, ejecute el
cdk deploycomando de nuevo. Para obtener más información, consulte Llamar Servicios de AWS desde un entorno en AWS Cloud9. -
Para confirmar que el tema de Amazon SNS y la cola de Amazon SQS se han implementado correctamente, envíe un mensaje al tema y, luego, verifique la cola para ver si se ha recibido el mensaje. Para ello, puede utilizar una herramienta como el AWS Command Line Interface (AWS CLI) o el AWS CloudShell. Para obtener más información sobre estas herramientas, consulte AWS CLI y tutorial de aws-shell para AWS Cloud9.
Por ejemplo, para enviar un mensaje al tema, con la sesión de terminal aún abierta en el IDE, utilice el
publishcomando AWS CLI to run Amazon SNS, proporcionando el asunto y el cuerpo del mensaje, la AWS región del tema y el nombre de recurso de Amazon (ARN) del tema.aws sns publish --subject "Hello from the AWS CDK" --message "This is a message from the AWS CDK." --topic-arn arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0KEn el comando anterior,
arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0Ksustitúyalo por el ARN que se CloudFormation asigna al tema. Para obtener el ID, puede ejecutar el comandolist-topicsde Amazon SNS.aws sns list-topics --output table --query 'Topics[*].TopicArn'Si se ejecuta correctamente, la salida del comando
publishmuestra el valor deMessageIddel mensaje que se publicó.Para verificar la cola para ver si se ha recibido el mensaje, ejecute el comando
receive-messagede Amazon SQS y proporcione la URL de la cola.aws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0KEn el comando anterior,
https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0Ksustitúyalo por el ARN que se CloudFormation asigna a la cola. Para obtener la URL, puede ejecutar el comandolist-queuesde Amazon SQS.aws sqs list-queues --output table --query 'QueueUrls[*]'Si se ejecuta correctamente, la salida del comando
receive-messagemuestra información del mensaje que se recibió.
Paso 4: Limpiar
Para evitar que se hagan cargos continuos a tu AWS cuenta una vez que hayas terminado de usar este ejemplo, debes eliminar la pila. CloudFormation De esta forma se eliminan el tema de Amazon SNS y la cola de Amazon SQS. También debe eliminar el entorno.
Paso 4.1: Eliminar la pila
Con la sesión del terminal aún abierta en el IDE, desde el directorio raíz del proyecto, ejecute el comando cdk con la acción destroy y el nombre de la pila.
cdk destroy HelloCdkStack
Cuando se le pida que elimine la pila, escriba y y, a continuación, pulse Enter.
Si se ejecuta correctamente, la salida muestra que la pila HelloCdkStack se ha eliminado sin errores.
Paso 4.2: Eliminar el entorno
Para eliminar el entorno, consulte Eliminar un entorno en AWS Cloud9.