AWS Cloud9 não está mais disponível para novos clientes. Os clientes atuais do AWS Cloud9 podem continuar usando o serviço normalmente. Saiba mais
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
AWS CDK tutorial para AWS Cloud9
Este tutorial mostra como trabalhar com o AWS Cloud Development Kit (AWS CDK) em um ambiente de AWS Cloud9 desenvolvimento. AWS CDK É um conjunto de ferramentas e bibliotecas de software que os desenvolvedores podem usar para modelar componentes de AWS infraestrutura como código.
AWS CDK Isso inclui a AWS Construct Library, que você pode usar para resolver rapidamente muitas tarefas AWS. Por exemplo, é possível usar o constructo Fleet
para implantar totalmente e de forma segura o código em uma frota de hosts. Você pode criar seus próprios constructos para modelar vários elementos de suas arquiteturas, compartilhá-los com outras pessoas ou publicá-los na comunidade. Para obter mais informações, consulte o Guia do usuário do Kit de Desenvolvimento da Nuvem AWS.
Seguir este tutorial e criar este exemplo pode gerar cobranças em sua conta da AWS
. Isso inclui possíveis cobranças por serviços como Amazon EC2SNS, Amazon e AmazonSQS. Para obter mais informações, consulte Amazon EC2 Pricing
Tópicos
Pré-requisitos
Antes de usar esse exemplo, verifique se suas configurações cumprem os requisitos a seguir.
-
Você deve ter um ambiente de AWS Cloud9 EC2 desenvolvimento existente. Este exemplo pressupõe que você já tenha um EC2 ambiente conectado a uma EC2 instância da Amazon que executa o Amazon Linux ou Ubuntu Servidor. Caso tenha um tipo diferente de ambiente ou sistema operacional, poderá ser necessário adaptar as instruções desse exemplo para configurar ferramentas relacionadas. Para obter mais informações, consulte Criando um ambiente em AWS Cloud9.
-
Você tem o AWS Cloud9 IDE para o ambiente existente já aberto. Quando você abre um ambiente, AWS Cloud9 abre o IDE para esse ambiente em seu navegador da web. Para obter mais informações, consulte Abrir um ambiente no AWS Cloud9.
Etapa 1: Instalar as ferramentas necessárias
Nesta etapa, você instala todas as ferramentas necessárias em seu ambiente para executar uma amostra escrita na linguagem de TypeScript programação. AWS CDK
-
Gerenciador de versão do Node ou
nvm
que você usa para instalar o Node.js posteriormente. -
Node.js, que é exigido pela amostra e contém o Node Package Manager
npm
, ou, que você usa para instalar TypeScript e o AWS CDK posterior. -
TypeScript, o que é exigido por esta amostra. ( AWS CDK Também fornece suporte para várias outras linguagens de programação.)
-
AWS CDKA.
Etapa 1.1: Instale o Gerenciador de versão do Node (nvm)
-
Em uma sessão de terminal no AWS Cloud9 IDE, verifique se as atualizações de segurança e correções de erros mais recentes estão instaladas. Para fazer isso, execute o comando
yum update
para Amazon Linux ouapt update
para Ubuntu Server. (Para iniciar uma nova sessão de terminal, na barra de menus, selecione Janela, Novo terminal.)Para Amazon Linux:
sudo yum -y update
Para Ubuntu Server:
sudo apt update
-
Confirme se o
nvm
já está instalado. Para fazer isso, execute o comandonvm
com a opção--version
.nvm --version
Se for bem-sucedido, a saída conterá o número da versão do
nvm
, e você poderá ir direto para Etapa 1.2: Instalar o Node.js. -
Faça download e instale
nvm
. Para fazer isso, execute o script de instalação. Neste exemplo, a versão v0.33.0 é instalada, mas é possível verificar a versão mais recente donvm
aqui. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
-
Comece a utilizar
nvm
. Você pode fechar a sessão de terminal e depois iniciá-la novamente ou extrair o arquivo~/.bashrc
que contém os comandos para carregar onvm
.. ~/.bashrc
Etapa 1.2: Instalar o Node.js
-
Confirme se você já tem o Node.js instalado e, se tiver, confirme se a versão instalada é a 16.17.0 ou posterior. Este exemplo foi testado no Node.js 16.17.0. Para verificar, com a sessão do terminal ainda aberta noIDE, execute o
node
comando com a--version
opção.node --version
Se já tem o Node.js instalado, a saída contém o número da versão. Se o número da versão for v16.17.0, avance para Etapa 1.3: Instalar TypeScript.
-
Instale o Node.js 16 executando o comando
nvm
com a açãoinstall
.nota
Você também pode executar
nvm install node
para instalar a versão de suporte de longo prazo (LTS) do Node.js. AWS Cloud9 o suporte rastreia a LTS versão do Node.js.nvm install v16
-
Comece a usar o Node.js 16. Para fazer isso, execute o comando
nvm
com a açãoalias
, o número da versão para alias e a versão a ser usada para esse alias, como mostrado a seguir.nvm alias default 16
nota
O comando anterior define o Node.js 16 como a versão padrão do Node.js. Como alternativa, é possível executar o comando
nvm
juntamente com a açãouse
, em vez da açãoalias
(por exemplo,nvm use 16.17.0
). No entanto, a açãouse
faz com que essa versão do Node.js execute apenas durante a execução da sessão de terminal atual. -
Para confirmar se está usando o Node.js 16, execute o comando
node --version
novamente. Se a versão correta estiver instalada, a saída conterá a versão v16.
Etapa 1.3: Instalar TypeScript
-
Confirme se você já TypeScript instalou. Para fazer isso, com a sessão do terminal ainda aberta noIDE, execute o TypeScript compilador de linha de comando com a
--version
opção.tsc --version
Se você tiver TypeScript instalado, a saída conterá o número da TypeScript versão. Se TypeScript estiver instalado, vá paraEtapa 1.4: Instalar o AWS CDK.
-
Instalar TypeScript. Para fazer isso, execute o
npm
comando com ainstall
ação, a-g
opção e o nome do TypeScript pacote. Isso é instalado TypeScript como um pacote global no ambiente.npm install -g typescript
-
Confirme se TypeScript está instalado. Para fazer isso, execute o TypeScript compilador de linha de comando com a
--version
opção.tsc --version
Se TypeScript estiver instalado, a saída conterá o número da TypeScript versão.
Etapa 1.4: Instalar o AWS CDK
-
Confirme se você já tem o AWS CDK instalado. Para fazer isso, com a sessão do terminal ainda aberta noIDE, execute o
cdk
comando com a--version
opção.cdk --version
Se o AWS CDK estiver instalado, a saída conterá a AWS CDK versão e os números de compilação. Avance para Etapa 2: Adicionar código.
-
Instale o AWS CDK executando o
npm
comando junto com ainstall
ação, o nome do AWS CDK pacote a ser instalado e a-g
opção de instalar o pacote globalmente no ambiente.npm install -g aws-cdk
-
Confirme se o AWS CDK está instalado e referenciado corretamente. Para fazer isso, execute o comando
cdk
com a opção--version
.cdk --version
Se for bem-sucedido, os números da AWS CDK versão e da versão serão exibidos.
Etapa 2: Adicionar código
Nesta etapa, você cria um TypeScript projeto de amostra que contém todo o código-fonte necessário para AWS CDK implantar programaticamente uma AWS CloudFormation pilha. Essa pilha cria um SNS tópico da Amazon e uma SQS fila da Amazon em sua AWS conta e, em seguida, inscreve a fila no tópico.
-
Com a sessão do terminal ainda aberta noIDE, crie um diretório para armazenar o código-fonte do projeto, por exemplo, um
~/environment/hello-cdk
diretório em seu ambiente. Depois, mude para esse diretório.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 o diretório como um projeto de TypeScript linguagem para AWS CDK o. Para fazer isso, execute o comando
cdk
com a açãoinit
, o modelosample-app
e a opção--language
com o nome da linguagem de programação.cdk init sample-app --language typescript
Isso cria os seguintes arquivos e subdiretórios no diretório:
-
Um subdiretório
.git
oculto e um arquivo.gitignore
oculto, que torna o projeto compatível com ferramentas de controle de fonte como o Git. -
Um subdiretório
lib
, que inclui um arquivohello-cdk-stack.ts
. Esse arquivo contém o código da sua AWS CDK pilha. Esse código é descrito na próxima etapa neste procedimento. -
Um subdiretório
bin
, que inclui um arquivohello-cdk.ts
. Esse arquivo contém o ponto de entrada do seu AWS CDK aplicativo. -
Um subdiretório
node_modules
, que contém pacotes de código de suporte que o aplicativo e a pilha podem usar conforme necessário. -
Um arquivo
.npmignore
oculto, que lista os tipos de subdiretórios e arquivos que onpm
não precisa quando cria o código. -
Um arquivo
cdk.json
, que contém informações para facilitar a execução do comandocdk
. -
Um arquivo
package-lock.json
, que contém informações que onpm
pode usar para reduzir possíveis erros de compilação e execução. -
Um arquivo
package.json
, que contém informações para facilitar a execução do comandonpm
e possivelmente diminuir os erros de compilação e execução. -
Um
README.md
arquivo que lista comandos úteis com os quais você pode executarnpm
e AWS CDK o. -
Um arquivo
tsconfig.json
, que contém informações para facilitar a execução do comandotsc
e possivelmente diminuir os erros de compilação e execução.
-
-
Na janela Ambiente, abra o arquivo
lib/hello-cdk-stack.ts
e procure o código a seguir.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); } }
-
As
Topic
classesStack
App
,StackProps
,Queue
, e representam uma AWS CloudFormation pilha e suas propriedades, um programa executável, uma SQS fila da Amazon e um SNS tópico da Amazon, respectivamente. -
A
HelloCdkStack
classe representa a AWS CloudFormation pilha desse aplicativo. Essa pilha contém a nova SQS fila da Amazon e o SNS tópico da Amazon para este aplicativo.
-
-
Na janela Ambiente, abra o arquivo
bin/hello-cdk.ts
e procure o código a seguir.#!/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();
Esse código carrega, cria uma instância e executa a classe
HelloCdkStack
do arquivolib/hello-cdk-stack.ts
. -
Use
npm
para executar o TypeScript compilador para verificar erros de codificação e, em seguida, habilite o AWS CDK para executar o arquivo dobin/hello-cdk.js
projeto. Para fazer isso, no diretório raiz do projeto, execute o comandonpm
com a açãorun
, especificando o valor do comandobuild
no arquivopackage.json
, conforme mostrado a seguir.npm run build
O comando anterior executa o TypeScript compilador, que adiciona suporte
bin/hello-cdk.d.ts
elib/hello-cdk-stack.d.ts
arquivos. O compilador também desmembra os arquivoshello-cdk.ts
ehello-cdk-stack.ts
nos arquivoshello-cdk.js
ehello-cdk-stack.js
.
Etapa 3: Executar o código
Nesta etapa, você instrui o a AWS CDK criar um modelo de AWS CloudFormation pilha com base no código no bin/hello-cdk.js
arquivo. Em seguida, você instrui o AWS CDK a implantar a pilha, que cria o SNS tópico da Amazon e a SQS fila da Amazon e, em seguida, inscreve a fila no tópico. Depois, confirme se o tópico e a fila foram implantados com êxito, enviando uma mensagem do tópico para a fila.
-
Peça AWS CDK para criar o modelo AWS CloudFormation de pilha. Para fazer isso, com a sessão do terminal ainda aberta noIDE, a partir do diretório raiz do projeto, execute o
cdk
comando com asynth
ação e o nome da pilha.cdk synth HelloCdkStack
Se for bem-sucedida, a saída exibirá a
Resources
seção do modelo de AWS CloudFormation pilha. -
Na primeira vez que você implanta um AWS CDK aplicativo em um ambiente para uma combinação específica de AWS conta e AWS região, você deve instalar uma pilha de bootstrap. Essa pilha inclui vários recursos AWS CDK necessários para concluir suas várias operações. Por exemplo, essa pilha inclui um bucket Amazon S3 que é AWS CDK usado para armazenar modelos e ativos durante seus processos de implantação. Para instalar a pilha de bootstrap, execute o comando
cdk
com a ação debootstrap
.cdk bootstrap
nota
Se você executar
cdk bootstrap
sem especificar nenhuma opção, a AWS conta e a AWS região padrão serão usadas. Você também pode fazer o bootstrap de um determinado ambiente, especificando um perfil e uma combinação de conta e região. Por exemplo:cdk bootstrap --profile test 123456789012/us-east-1
-
Faça com que AWS CDK execute o modelo de AWS CloudFormation pilha para implantar a pilha. Para fazer isso, no diretório raiz do projeto, execute o comando
cdk
com a açãodeploy
e o nome da pilha.cdk deploy HelloCdkStack
Se for bem-sucedido, a saída exibe que a pilha
HelloCdkStack
foi implantada sem erros.nota
Se a saída exibir uma mensagem informando que a pilha não define um ambiente e que AWS as credenciais não puderam ser obtidas em locais padrão ou que nenhuma região foi configurada, verifique se suas AWS credenciais estão definidas corretamente no e execute o IDE
cdk deploy
comando novamente. Para obter mais informações, consulte Chamando Serviços da AWS de um ambiente em AWS Cloud9. -
Para confirmar que o SNS tópico da Amazon e a SQS fila da Amazon foram implantados com sucesso, envie uma mensagem para o tópico e, em seguida, verifique a mensagem recebida na fila. Para fazer isso, você pode usar uma ferramenta como o AWS Command Line Interface (AWS CLI) ou AWS CloudShell o. Para mais informações sobre essas ferramentas, consulte AWS CLI e tutorial aws-shell para AWS Cloud9.
Por exemplo, para enviar uma mensagem para o tópico, com a sessão do terminal ainda aberta noIDE, use o AWS CLI para executar o SNS
publish
comando da Amazon, fornecendo o assunto e o corpo da mensagem, a AWS região do tópico e o nome de recurso da Amazon do tópico (ARN).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
No comando anterior,
arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
substitua pelo ARN que é AWS CloudFormation atribuído ao tópico. Para obter o ID, você pode executar o SNSlist-topics
comando Amazon.aws sns list-topics --output table --query 'Topics[*].TopicArn'
Se for bem-sucedido, a saída do comando
publish
exibe o valorMessageId
para a mensagem que foi publicada.Para verificar a fila da mensagem recebida, execute o SQS
receive-message
comando Amazon, fornecendo as da fila. URLaws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
No comando anterior,
https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
substitua pelo ARN que é AWS CloudFormation atribuído à fila. Para obter oURL, você pode executar o SQSlist-queues
comando Amazon.aws sqs list-queues --output table --query 'QueueUrls[*]'
Se for bem-sucedido, a saída do comando
receive-message
exibe as informações sobre a mensagem que foi recebida.
Etapa 4: limpar
Para evitar cobranças contínuas em sua AWS conta depois de terminar de usar essa amostra, você deve excluir a AWS CloudFormation pilha. Isso exclui o SNS tópico da Amazon e a SQS fila da Amazon. Exclua também o ambiente.
Etapa 4.1: Excluir a pilha
Com a sessão do terminal ainda aberta noIDE, a partir do diretório raiz do projeto, execute o cdk
comando com a destroy
ação e o nome da pilha.
cdk destroy HelloCdkStack
Quando solicitado a excluir a pilha, digite y
e depois pressione Enter
.
Se for bem-sucedido, a saída exibe que a pilha HelloCdkStack
foi excluída sem erros.
Etapa 4.2: Excluir o ambiente
Para excluir o ambiente, consulte Excluir um ambiente no AWS Cloud9.