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 EC2, Amazon SNS e Amazon SQS. 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 desse ambiente em seu navegador da web. Para obter mais informações, consulte Abrindo um ambiente em 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
nvmque 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.)
-
O AWS CDK.
Etapa 1.1: Instale o Gerenciador de versão do Node (nvm)
-
Em uma sessão de terminal no AWS Cloud9 IDE, certifique-se de que as atualizações de segurança e correções de erros mais recentes estejam instaladas. Para fazer isso, execute o comando
yum updatepara Amazon Linux ouapt updatepara Ubuntu Server. (Para iniciar uma nova sessão de terminal, na barra de menus, selecione Janela, Novo terminal.)Para Amazon Linux:
sudo yum -y updatePara Ubuntu Server:
sudo apt update -
Confirme se o
nvmjá está instalado. Para fazer isso, execute o comandonvmcom a opção--version.nvm --versionSe 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 donvmaqui. 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~/.bashrcque 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 de terminal ainda aberta no IDE, execute o comando
nodecom a opção--version.node --versionSe 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
nvmcom a açãoinstall.nota
Você também pode executar
nvm install nodepara instalar a versão de suporte de longo prazo (LTS) do Node.js. AWS Cloud9 o suporte rastreia a versão LTS do Node.js.nvm install v16 -
Comece a usar o Node.js 16. Para fazer isso, execute o comando
nvmcom 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 16nota
O comando anterior define o Node.js 16 como a versão padrão do Node.js. Como alternativa, é possível executar o comando
nvmjuntamente com a açãouse, em vez da açãoalias(por exemplo,nvm use 16.17.0). No entanto, a açãousefaz 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 --versionnovamente. 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 no IDE, execute o TypeScript compilador da linha de comando com a
--versionopção.tsc --versionSe 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
npmcomando com ainstallação, a-gopçã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
--versionopção.tsc --versionSe 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 de terminal ainda aberta no IDE, execute o comando
cdkcom a opção--version.cdk --versionSe 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
npmcomando junto com ainstallação, o nome do AWS CDK pacote a ser instalado e a-gopçã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
cdkcom a opção--version.cdk --versionSe 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 tópico do Amazon SNS e uma fila do Amazon SQS em AWS sua conta e, em seguida, inscreve a fila no tópico.
-
Com a sessão de terminal ainda aberta no IDE, crie um diretório para armazenar o código-fonte do projeto, por exemplo, um diretório
~/environment/hello-cdkno 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
cdkcom a açãoinit, o modelosample-appe a opção--languagecom o nome da linguagem de programação.cdk init sample-app --language typescriptIsso cria os seguintes arquivos e subdiretórios no diretório:
-
Um subdiretório
.gitoculto e um arquivo.gitignoreoculto, 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
.npmignoreoculto, que lista os tipos de subdiretórios e arquivos que onpmnã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 onpmpode 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 comandonpme possivelmente diminuir os erros de compilação e execução. -
Um
README.mdarquivo, que lista comandos úteis com os quais você pode executarnpme AWS CDK o. -
Um arquivo
tsconfig.json, que contém informações para facilitar a execução do comandotsce possivelmente diminuir os erros de compilação e execução.
-
-
Na janela Ambiente, abra o arquivo
lib/hello-cdk-stack.tse 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
TopicclassesStackApp,StackProps,Queue, e representam uma CloudFormation pilha e suas propriedades, um programa executável, uma fila do Amazon SQS e um tópico do Amazon SNS, respectivamente. -
A
HelloCdkStackclasse representa a CloudFormation pilha desse aplicativo. Essa pilha contém a nova fila do Amazon SQS e o tópico do Amazon SNS para esta aplicação.
-
-
Na janela Ambiente, abra o arquivo
bin/hello-cdk.tse 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
HelloCdkStackdo arquivolib/hello-cdk-stack.ts. -
Use
npmpara executar o TypeScript compilador para verificar se há erros de codificação e, em seguida, habilite o AWS CDK para executar o arquivo dobin/hello-cdk.jsprojeto. Para fazer isso, no diretório raiz do projeto, execute o comandonpmcom a açãorun, especificando o valor do comandobuildno arquivopackage.json, conforme mostrado a seguir.npm run buildO comando anterior executa o TypeScript compilador, que adiciona suporte
bin/hello-cdk.d.tselib/hello-cdk-stack.d.tsarquivos. O compilador também desmembra os arquivoshello-cdk.tsehello-cdk-stack.tsnos arquivoshello-cdk.jsehello-cdk-stack.js.
Etapa 3: Executar o código
Nesta etapa, você instrui o a AWS CDK criar um modelo de 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 tópico do Amazon SNS e a fila do Amazon SQS 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.
-
Faça com que eles AWS CDK criem o modelo CloudFormation de pilha. Para fazer isso, com a sessão de terminal ainda aberta no IDE, no diretório raiz do projeto, execute o comando
cdkcom a açãosynthe o nome da pilha.cdk synth HelloCdkStackSe for bem-sucedida, a saída exibirá a
Resourcesseção do modelo de 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
cdkcom a ação debootstrap.cdk bootstrapnota
Se você executar
cdk bootstrapsem 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 CloudFormation pilha para implantar a pilha. Para fazer isso, no diretório raiz do projeto, execute o comando
cdkcom a açãodeploye o nome da pilha.cdk deploy HelloCdkStackSe for bem-sucedido, a saída exibe que a pilha
HelloCdkStackfoi 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 IDE e execute o
cdk deploycomando novamente. Para obter mais informações, consulte Chamando Serviços da AWS de um ambiente em AWS Cloud9. -
Para confirmar se o tópico do Amazon SNS e a fila do Amazon SQS foram implantados com êxito, envie uma mensagem ao tópico e consulte a fila para verificar se a mensagem foi recebida. 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 no IDE, use o AWS CLI para executar o
publishcomando Amazon SNS, fornecendo o assunto e o corpo da mensagem, a AWS região do tópico e o nome de recurso da Amazon (ARN) do tópico.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-8BCD9EFGHIJ0KNo comando anterior,
arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0Ksubstitua pelo ARN atribuído CloudFormation ao tópico. Para obter o ID, você pode executar o comandolist-topicsdo Amazon SNS.aws sns list-topics --output table --query 'Topics[*].TopicArn'Se for bem-sucedido, a saída do comando
publishexibe o valorMessageIdpara a mensagem que foi publicada.Para verificar se a fila recebeu a mensagem, execute o comando
receive-messagedo Amazon SQS, fornecendo o URL da fila.aws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0KNo comando anterior,
https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0Ksubstitua pelo ARN atribuído CloudFormation à fila. Para obter o URL, você pode executar o comandolist-queuesdo Amazon SQS.aws sqs list-queues --output table --query 'QueueUrls[*]'Se for bem-sucedido, a saída do comando
receive-messageexibe 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 CloudFormation pilha. Isso exclui o tópico do Amazon SNS e a fila do Amazon SQS. Exclua também o ambiente.
Etapa 4.1: Excluir a pilha
Com a sessão de terminal ainda aberta no IDE, no diretório raiz do projeto, execute o comando cdk com a ação destroy 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 Excluindo um ambiente no AWS Cloud9.