AWS CDK tutorial para AWS Cloud9 - AWS Cloud9

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, Amazon SNS Pricing e Amazon SQS Pricing.

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

  1. Gerenciador de versão do Node ou nvm que você usa para instalar o Node.js posteriormente.

  2. 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.

  3. TypeScript, o que é exigido por esta amostra. ( AWS CDK Também fornece suporte para várias outras linguagens de programação.)

  4. AWS CDKA.

Etapa 1.1: Instale o Gerenciador de versão do Node (nvm)

  1. 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 ou apt 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
  2. Confirme se o nvm já está instalado. Para fazer isso, execute o comando nvm 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.

  3. 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 do nvm aqui.

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
  4. 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 o nvm .

    . ~/.bashrc

Etapa 1.2: Instalar o Node.js

  1. 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 nodecomando com a --versionopçã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.

  2. Instale o Node.js 16 executando o comando nvm com a ação install .

    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 LTS versão do Node.js.

    nvm install v16
  3. Comece a usar o Node.js 16. Para fazer isso, execute o comando nvm com a ação alias , 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ção use , em vez da ação alias (por exemplo, nvm use 16.17.0 ). No entanto, a ação use faz com que essa versão do Node.js execute apenas durante a execução da sessão de terminal atual.

  4. 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

  1. 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 --versionopçã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.

  2. Instalar TypeScript. Para fazer isso, execute o npmcomando com a installação, a -gopção e o nome do TypeScript pacote. Isso é instalado TypeScript como um pacote global no ambiente.

    npm install -g typescript
  3. Confirme se TypeScript está instalado. Para fazer isso, execute o TypeScript compilador de linha de comando com a --versionopçã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

  1. Confirme se você já tem o AWS CDK instalado. Para fazer isso, com a sessão do terminal ainda aberta noIDE, execute o cdkcomando com a --versionopçã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.

  2. Instale o AWS CDK executando o npmcomando junto com a install 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
  3. 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.

  1. 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.
  2. Configure o diretório como um projeto de TypeScript linguagem para AWS CDK o. Para fazer isso, execute o comando cdk com a ação init , o modelo sample-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 arquivo hello-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 arquivo hello-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 o npm não precisa quando cria o código.

    • Um arquivo cdk.json, que contém informações para facilitar a execução do comando cdk .

    • Um arquivo package-lock.json, que contém informações que o npm 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 comando npm e possivelmente diminuir os erros de compilação e execução.

    • Um README.md arquivo que lista comandos úteis com os quais você pode executar npme AWS CDK o.

    • Um arquivo tsconfig.json, que contém informações para facilitar a execução do comando tsc e possivelmente diminuir os erros de compilação e execução.

  3. 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 classes StackApp,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.

  4. 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 arquivo lib/hello-cdk-stack.ts.

  5. Use npmpara executar o TypeScript compilador para verificar erros de codificação e, em seguida, habilite o AWS CDK para executar o arquivo do bin/hello-cdk.js projeto. Para fazer isso, no diretório raiz do projeto, execute o comando npm com a ação run , especificando o valor do comando build no arquivo package.json, conforme mostrado a seguir.

    npm run build

    O comando anterior executa o TypeScript compilador, que adiciona suporte bin/hello-cdk.d.ts e lib/hello-cdk-stack.d.ts arquivos. O compilador também desmembra os arquivos hello-cdk.ts e hello-cdk-stack.ts nos arquivos hello-cdk.js e hello-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.

  1. 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 cdkcomando com a synthaçã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.

  2. 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 de bootstrap .

    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
  3. 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ção deploy 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 deploycomando novamente. Para obter mais informações, consulte Chamando Serviços da AWS de um ambiente em AWS Cloud9.

  4. 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 publishcomando 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 SNS list-topicscomando Amazon.

    aws sns list-topics --output table --query 'Topics[*].TopicArn'

    Se for bem-sucedido, a saída do comando publish exibe o valor MessageId para a mensagem que foi publicada.

    Para verificar a fila da mensagem recebida, execute o SQS receive-messagecomando Amazon, fornecendo as da fila. URL

    aws 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 SQS list-queuescomando 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 cdkcomando com a destroyaçã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.