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.
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 update
Para Ubuntu Server:
sudo apt update
-
Confirme si
nvm
ya está instalado. Para ello, ejecute el comandonvm
con la opción--version
.nvm --version
Si 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 denvm
aquí. 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~/.bashrc
que 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
node
con la opción--version
.node --version
Si 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
nvm
con la accióninstall
.nota
También puede ejecutar
nvm install node
para 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
nvm
junto 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 16
nota
El comando anterior establece Node.js 16 como la versión predeterminada de Node.js. Si lo desea, también puede ejecutar el comando
nvm
junto con la acciónuse
, en lugar de la acciónalias
(por ejemplo,nvm use 16.17.0
). Sin embargo, la acciónuse
provoca 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
--version
opción.tsc --version
Si 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
npm
comando con lainstall
acción, la-g
opció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
--version
opción.tsc --version
Si 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
cdk
con la opción--version
.cdk --version
Si 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
npm
comando junto con lainstall
acción, el nombre del AWS CDK paquete que se va a instalar y la-g
opció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
cdk
con la opción--version
.cdk --version
Si 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-cdk
en 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
cdk
con la accióninit
, la plantillasample-app
y la opción--language
junto con el nombre del lenguaje de programación.cdk init sample-app --language typescript
De esta forma, se crean los siguientes archivos y subdirectorios en el directorio.
-
Un subdirectorio
.git
y un archivo.gitignore
ocultos, 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
.npmignore
oculto, que enumera los tipos de subdirectorios y los archivos quenpm
no necesita al compilar el código. -
Un archivo
cdk.json
, que contiene la información para poder ejecutar el comandocdk
más fácilmente. -
Un archivo
package-lock.json
, que contiene información quenpm
puede utilizar para reducir posibles errores de compilación y ejecución. -
Un archivo
package.json
, que contiene información para poder ejecutar el comandonpm
más fácilmente y con posiblemente menos errores de compilación y ejecución. -
Un
README.md
archivo en el que se enumeran los comandos útiles con los que puede ejecutarnpm
y los AWS CDK. -
Un archivo
tsconfig.json
, que contiene información para poder ejecutar el comandotsc
má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.ts
y 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); } }
-
Topic
Las clasesStack
App
,StackProps
Queue
, y representan una AWS CloudFormation pila y sus propiedades, un programa ejecutable, una cola de Amazon SQS y un tema de Amazon SNS, respectivamente. -
La
HelloCdkStack
clase representa la AWS 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.ts
y 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
HelloCdkStack
a partir del archivolib/hello-cdk-stack.ts
. -
Se utiliza
npm
para 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.js
archivo del proyecto. Para ello, desde el directorio raíz del proyecto, ejecute el comandonpm
con la acciónrun
y especifique el valor del comandobuild
en el archivopackage.json
, tal y como se indica a continuación.npm run build
El comando anterior ejecuta el TypeScript compilador, que añade archivos
bin/hello-cdk.d.ts
ylib/hello-cdk-stack.d.ts
soportes. El compilador también transpone los archivoshello-cdk-stack.ts
yhello-cdk.ts
en los archivoshello-cdk-stack.js
yhello-cdk.js
.
Paso 3: Ejecutar el código
En este paso, le indicas AWS CDK que creen una plantilla de AWS 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 AWS 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
cdk
con la acciónsynth
y el nombre de la pila.cdk synth HelloCdkStack
Si tiene éxito, el resultado muestra la
Resources
sección de la plantilla de AWS 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
cdk
con la acciónbootstrap
.cdk bootstrap
nota
Si se ejecuta
cdk bootstrap
sin 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 AWS CloudFormation pila para implementar la pila. Para ello, desde el directorio raíz del proyecto, ejecute el comando
cdk
con la accióndeploy
y el nombre de la pila.cdk deploy HelloCdkStack
Si se ejecuta correctamente, la salida muestra que la pila
HelloCdkStack
se 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 deploy
comando de nuevo. Para obtener más información, consulte Llamar Servicios de AWS desde un entorno de 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
publish
comando 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-8BCD9EFGHIJ0K
En el comando anterior,
arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
sustitúyalo por el ARN que se AWS CloudFormation asigna al tema. Para obtener el ID, puede ejecutar el comandolist-topics
de Amazon SNS.aws sns list-topics --output table --query 'Topics[*].TopicArn'
Si se ejecuta correctamente, la salida del comando
publish
muestra el valor deMessageId
del mensaje que se publicó.Para verificar la cola para ver si se ha recibido el mensaje, ejecute el comando
receive-message
de Amazon SQS y proporcione la URL de la cola.aws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
En el comando anterior,
https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
sustitúyalo por el ARN que se AWS CloudFormation asigna a la cola. Para obtener la URL, puede ejecutar el comandolist-queues
de Amazon SQS.aws sqs list-queues --output table --query 'QueueUrls[*]'
Si se ejecuta correctamente, la salida del comando
receive-message
muestra 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. AWS 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.