Tutorial: Criar uma aplicação full-stack com esquemas de PDK compostos - Amazon CodeCatalyst

Tutorial: Criar uma aplicação full-stack com esquemas de PDK compostos

O Amazon CodeCatalyst fornece vários esquemas diferentes para ajudar você a começar seus projetos com rapidez. Um projeto criado com um esquema inclui os recursos de que você precisa, incluindo um repositório de origem, exemplo de código-fonte, fluxos de trabalho de CI/CD, relatórios de criação e teste e ferramentas integradas de controle de problemas. No entanto, às vezes, você pode querer criar gradualmente um projeto ou adicionar funcionalidade a um projeto existente criado por meio de um esquema. Você também pode fazer isso com esquemas. Este tutorial demonstra como você pode começar com um único esquema que define uma base e permite armazenar todo o código do projeto em um único repositório. A partir daí, você tem a flexibilidade de incorporar recursos e infraestrutura adicionais acrescentando outros esquemas ao esquema inicial, como quiser. Por meio desse método básico, você pode satisfazer requisitos específicos em vários projetos.

Este tutorial mostra como compor vários esquemas do AWS Project Development Kit (AWS PDK) juntos para criar uma aplicação composta por um site do React, a API Smithy e a infraestrutura de CDK de suporte para implantá-la na AWS. O AWS PDK fornece elementos básicos para padrões comuns, além de ferramentas de desenvolvimento para gerenciar e criar seus projetos. Para ter mais informações, consulte o repositório de origem do AWS PDK no GitHub.

Os seguintes esquemas de PDK foram projetados para serem usados entre si para criar uma aplicação de forma combinável:

  • Monorepo - Cria um projeto no nível raiz que gerencia as interdependências entre projetos dentro do monorepo. O projeto também fornece cache de compilação e visualização de dependências.

  • API Type Safe - Cria uma API que pode ser definida no Smithy ou na OpenAPI v3 e gerencia a geração de código em tempo de criação para permitir que você implemente e interaja com sua API de maneira segura. Fornece um constructo de CDK que gerencia a implantação da API no API Gateway e configura a validação automática de entrada.

  • Site do Cloudscape React - Cria um site baseado em React criado usando o Cloudscape que vem pré-integrado ao Cognito Auth e (opcionalmente) à API criada, que fornece a capacidade de chamar sua API com segurança.

  • Infraestrutura - Cria um projeto que configura toda a infraestrutura relacionada ao CDK necessária para implantar a aplicação. Ela também vem pré-configurada para gerar um diagrama baseado no código CDK toda vez que você cria.

  • DevOps: cria fluxos de trabalho de DevOps compatíveis com constructos encontrados no AWS Project Development Kit (AWS PDK).

O tutorial também inclui etapas sobre como visualizar a aplicação implantada, convidar outros usuários para trabalhar nela e fazer alterações no código com solicitações pull que são automaticamente criadas e implantadas em recursos na conta conectada da AWS quando a solicitação pull é mesclada.

Quando você cria um projeto composto por esquemas do PDK, seu projeto é criado com os seguintes recursos em um projeto do CodeCatalyst:

  • Um repositório de origem configurado como um monorepo.

  • Um fluxo de trabalho que executa análise estática de código e verificação de licenças, além de criar e implantar o código de amostra sempre que uma alteração é feita na ramificação padrão. Um diagrama de arquitetura é gerado sempre que você faz alterações no código.

  • Um quadro de problemas e um backlog que você pode usar para planejar e monitorar o trabalho.

  • Um conjunto de relatórios de teste com relatórios automatizados.

Pré-requisitos

Para criar e atualizar um projeto, você deve ter concluído as tarefas descritas em Configuração e login no CodeCatalyst da seguinte forma:

Etapa 1: criar um projeto monorepo

Comece com o esquema PDK - Monorepo para criar sua base de código monorepo que atua como base, permitindo que você adicione outros esquemas PDK.

Para criar um projeto usando o esquema PDK - Monorepo

  1. Abra o console do CodeCatalyst em https://codecatalyst.aws/.

  2. No console do CodeCatalyst, navegue até o espaço onde você deseja criar um projeto.

  3. No painel do espaço, escolha Criar projeto.

  4. Selecione Começar com um esquema.

  5. Escolha o esquema PDK - Monorepo e, depois, selecione Próximo.

  6. Em Nomear seu projeto, insira o nome que você deseja atribuir ao seu projeto e os nomes dos recursos associados. O nome deve ser exclusivo em seu espaço.

  7. Em Recursos do projeto, faça o seguinte:

    1. Em Linguagem de programação principal, escolha uma linguagem na qual você deseja desenvolver o código do seu projeto. Você pode escolher entre TypeScript, Java ou Python.

    2. Selecione Configuração do código

    3. No campo de entrada de texto Repositório de origem, insira o nome de um repositório de origem, que criará um novo repositório, ou selecione um repositório vinculado existente. O repositório existente deve estar vazio. Para ter mais informações, consulte Vincular um repositório de origem.

    4. (Opcional) No menu suspenso Gerenciador de pacotes, escolha um gerenciador de pacotes. Isso só será necessário se você tiver selecionado TypeScript como sua Linguagem de programação principal.

  8. (Opcional) Para visualizar o código que será gerado com base nas escolhas de parâmetros do projeto que você fez, selecione Visualizar código em Gerar visualização do projeto.

  9. (Opcional) Selecione Visualizar detalhes no cartão do esquema para visualizar detalhes específicos sobre o esquema, como uma visão geral da arquitetura do esquema, conexões e permissões necessárias e o tipo de recursos que o esquema cria.

  10. Selecione Criar projeto para criar seu projeto monorepo. O projeto no nível raiz criado gerencia as interdependências entre projetos dentro do monorepo, além de fornecer armazenamento em cache de compilação e gerenciamento de dependências.

    Para ter mais informações sobre esquemas de projeto, consulte Criação de um projeto abrangente com esquemas do CodeCatalyst.

O esquema PDK - Monorepo gera apenas a base do projeto. Para criar uma aplicação viável usando o esquema, você precisa adicionar outros esquemas de PDK, como API Type Safe, Cloudscape React Website, Infrastructure ou DevOps. Na próxima etapa, você adicionará uma API Type Safe ao projeto.

Etapa 2: adicionar a API Type Safe ao projeto

O esquema PDK - API Type Safe permite que você defina uma API usando o Smithy ou o OpenAI v3. Ele gera pacotes de runtime a partir da definição de API, que inclui clientes para interagir com sua API e código do lado do servidor para implementar sua API. O esquema também gera um constructo de CDK com segurança de tipo para cada operação de API. Você pode adicionar o esquema a um projeto PDK monorepo existente para adicionar recursos de API ao projeto.

Para adicionar o esquema PDK - API Type Safe

  1. No painel de navegação do projeto monorepo, selecione Esquemas e escolha Adicionar esquema.

  2. Escolha o esquema PDK - API Type Safe e, depois, selecione Próximo.

  3. Em Configurar esquema, configure os parâmetros do esquema:

    • Em Linguagem do modelo, escolha o idioma em que o modelo de API está definido.

    • No campo de entrada de texto Namespace, insira um namespace para sua API.

    • No campo de entrada de texto Nome da API, insira um nome para a sua API.

    • Em Linguagem de CDK, escolha seu idioma preferido para escrever a infraestrutura de CDK na qual implantar a API.

    • Escolha o menu suspenso Idiomas do manipulador e, depois, escolha os idiomas nos quais você deseja implementar manipuladores para operações de API.

    • Escolha o menu suspenso Formatos de documentação e, depois, escolha os formatos que você deseja para gerar a documentação da API.

  4. Na guia Alterações no código, revise as alterações propostas. A diferença exibida em uma solicitação pull mostra as alterações em seu projeto no momento em que a solicitação pull foi criada.

  5. Quando estiver satisfeito com as alterações propostas que serão feitas quando o esquema for aplicado, selecione Adicionar esquema.

    Depois que uma solicitação pull é criada, você pode adicionar comentários. Os comentários podem ser adicionados à solicitação pull ou a linhas individuais em arquivos, bem como à solicitação pull geral. Você pode adicionar links a recursos, como arquivos, usando o sinal @ seguido pelo nome do arquivo.

    nota

    O esquema não será aplicado até que a solicitação pull seja aprovada e mesclada. Para ter mais informações, consulte Revisão de uma solicitação pull e Mesclar uma solicitação pull.

  6. Na coluna Status, selecione Solicitação pull pendente para a linha do esquema PDK - API Type Safe e, depois, escolha o link da solicitação pull aberta.

  7. Selecione Mesclar, escolha sua estratégia de mesclagem preferida e, depois, selecione Mesclar para incorporar as alterações do esquema aplicado.

    Depois que a solicitação pull é mesclada, uma nova pasta packages/apis/mypdkapi é gerada em seu projeto monorepo, que contém todo o código-fonte relacionado à API Type Safe configurada.

  8. No painel de navegação, selecione Esquemas para confirmar se o Status de PDK - API Type Safe mostra Atualizado.

Etapa 3: adicionar um site do Cloudscape React para o projeto

O esquema PDK - Site do Cloudscape React gera um site. Você pode associar um parâmetro opcional (APIs Type Safe) para configurar automaticamente seu site para configurar clientes de tipo seguro autenticados junto com um explorador de API interativo para testar suas várias APIs.

Para adicionar o esquema PDK - Site do Cloudscape React

  1. No painel de navegação do projeto monorepo, selecione Esquemas e escolha Adicionar esquema.

  2. Escolha o esquema PDK - Site do Cloudscape React e, depois, selecione Próximo.

  3. Em Configurar esquema, configure os parâmetros do esquema:

    • No campo de entrada de texto Nome do site, insira um nome para o seu site.

    • Escolha o menu suspenso APIs Type Safe e, depois, escolha os esquemas de API que você deseja integrar ao site. A transmissão de uma API configura clientes autenticados e adiciona as dependências necessárias, o explorador de API e outros recursos.

  4. Na guia Alterações no código, revise as alterações propostas. A diferença exibida em uma solicitação pull mostra as alterações em seu projeto no momento em que a solicitação pull foi criada.

  5. Quando estiver satisfeito com as alterações propostas que serão feitas quando o esquema for aplicado, selecione Adicionar esquema.

    Depois que uma solicitação pull é criada, você pode adicionar comentários. Os comentários podem ser adicionados à solicitação pull ou a linhas individuais em arquivos, bem como à solicitação pull geral. Você pode adicionar links a recursos, como arquivos, usando o sinal @ seguido pelo nome do arquivo.

    nota

    O esquema não será aplicado até que a solicitação pull seja aprovada e mesclada. Para ter mais informações, consulte Revisão de uma solicitação pull e Mesclar uma solicitação pull.

  6. Na coluna Status, selecione Solicitação pull pendente para a linha do esquema PDK - Site do Cloudscape React e, depois, escolha o link da solicitação pull aberta.

  7. Selecione Mesclar, escolha sua estratégia de mesclagem preferida e, depois, selecione Mesclar para incorporar as alterações do esquema aplicado.

    Depois que a solicitação pull é mesclada, uma nova pasta packages/websites/my-website-name é gerada em seu projeto monorepo, que contém todo o código-fonte do novo site.

  8. No painel de navegação, selecione Esquemas para confirmar se o Status de PDK - Site do Cloudscape React mostra Atualizado.

Depois, você adicionará o esquema PDK - Infraestrutura para gerar a infraestrutura para implantar seu site na Nuvem AWS.

Etapa 4: gerar a infraestrutura para implantar a aplicação na Nuvem AWS

O esquema PDK - Infraestrutura configura um pacote contendo todo o código de CDK para implantar seu site e sua API. Ele também fornece geração de diagramas e conformidade com o pacote de mensagens de prototipagem por padrão.

Como adicionar o esquema PDK - Infraestrutura

  1. No painel de navegação do projeto monorepo, selecione Esquemas e escolha Adicionar esquema.

  2. Escolha o esquema PDK - Infraestrutura e, depois, selecione Próximo.

  3. Em Configurar esquema, configure os parâmetros do esquema:

    • Em Linguagem de CDK, escolha a linguagem com a qual você deseja desenvolver sua infraestrutura.

    • No campo de entrada de texto Nome da pilha, insira o nome da pilha do CloudFormation gerada para seu esquema.

      nota

      Anote o nome dessa pilha na próxima etapa, na qual você definirá um fluxo de trabalho de DevOps.

    • Escolha o menu suspenso APIs Type Safe e, depois, escolha os esquemas de API que você deseja integrar ao site.

    • Escolha o menu suspenso Sites do Cloudscape React TS e, depois, escolha os esquemas do site que você deseja implantar na infraestrutura (por exemplo, PDK - Site do Cloudscape React).

  4. Na guia Alterações no código, revise as alterações propostas. A diferença exibida em uma solicitação pull mostra as alterações em seu projeto no momento em que a solicitação pull foi criada.

  5. Quando estiver satisfeito com as alterações propostas que serão feitas quando o esquema for aplicado, selecione Adicionar esquema.

    Depois que uma solicitação pull é criada, você pode adicionar comentários. Os comentários podem ser adicionados à solicitação pull ou a linhas individuais em arquivos, bem como à solicitação pull geral. Você pode adicionar links a recursos, como arquivos, usando o sinal @ seguido pelo nome do arquivo.

    nota

    O esquema não será aplicado até que a solicitação pull seja aprovada e mesclada. Para ter mais informações, consulte Revisão de uma solicitação pull e Mesclar uma solicitação pull.

  6. Na coluna Status, selecione Solicitação pull pendente para a linha do esquema PDK - Infraestrutura e, depois, escolha o link da solicitação pull aberta.

  7. Selecione Mesclar, escolha sua estratégia de mesclagem preferida e, depois, selecione Mesclar para incorporar as alterações do esquema aplicado.

    Depois que a solicitação pull é mesclada, uma nova pasta packages/infra é gerada em seu projeto monorepo, que contém a infraestrutura que implantará seu projeto na Nuvem AWS.

  8. No painel de navegação, selecione Esquemas para confirmar se o Status de PDK - Infraestrutura mostra Atualizado.

Em seguida, você adicionará o esquema PDK - DevOps para implantar a aplicação.

Etapa 5: configurar um fluxo de trabalho de DevOps para implantar o projeto

O esquema PDK — DevOps gera os fluxos de trabalho de DevOps necessários para criar e implantar seu projeto usando a conta da AWS e o perfil especificados na configuração.

Para adicionar o esquema PDK - DevOps

  1. No painel de navegação do projeto monorepo, selecione Esquemas e escolha Adicionar esquema.

  2. Escolha o esquema PDK - DevOps e, depois, selecione Próximo.

  3. Em Configurar esquema, configure os parâmetros do esquema:

    • Selecione Iniciar CDK no ambiente atual.

    • No campo de entrada de texto Nome da pilha, insira o nome da pilha do CloudFormation que deseja implantar. Isso deve corresponder ao nome da pilha configurado em Etapa 4: gerar a infraestrutura para implantar a aplicação na Nuvem AWS para o esquema PDK - Infraestrutura.

    • Escolha o menu suspenso Conexão da conta da AWS e, depois, escolha a conta da AWS que você deseja usar para os recursos. Para ter mais informações, consulte Adicionar uma Conta da AWS a um espaço.

    • Escolha o menu suspenso O perfil a ser usado para implantar a aplicação e, depois, escolha o perfil do IAM que você deseja usar para implantar a aplicação do projeto.

      nota

      Ao criar um perfil do IAM, restrinja o SourceArn ao ProjectID atual encontrado nas configurações do projeto. Para ter mais informações, consulte Noções básicas sobre o perfil de serviço CodeCatalystWorkflowDevelopmentRole-spaceName.

    • Escolha o menu suspenso Região e, depois, escolha a região na qual você deseja implantar seu projeto monorepo. A implantação só funciona em regiões onde existem os serviços obrigatórios da AWS. Para ter mais informações, consulte Serviços da AWS por região.

  4. Na guia Alterações no código, revise as alterações propostas. A diferença exibida em uma solicitação pull mostra as alterações em seu projeto no momento em que a solicitação pull foi criada.

  5. Quando estiver satisfeito com as alterações propostas que serão feitas quando o esquema for aplicado, selecione Adicionar esquema.

    Depois que uma solicitação pull é criada, você pode adicionar comentários. Os comentários podem ser adicionados à solicitação pull ou a linhas individuais em arquivos, bem como à solicitação pull geral. Você pode adicionar links a recursos, como arquivos, usando o sinal @ seguido pelo nome do arquivo.

    nota

    O esquema não será aplicado até que a solicitação pull seja aprovada e mesclada. Para ter mais informações, consulte Revisão de uma solicitação pull e Mesclar uma solicitação pull.

  6. Na coluna Status, selecione Solicitação pull pendente para a linha do esquema PDK - Infraestrutura e, depois, escolha o link da solicitação pull aberta.

  7. Selecione Mesclar, escolha sua estratégia de mesclagem preferida e, depois, selecione Mesclar para incorporar as alterações do esquema aplicado.

    Depois que a solicitação pull é mesclada, uma nova pasta .codecatalyst/workflows é gerada em seu projeto monorepo.

  8. No painel de navegação, selecione Esquemas para confirmar se o Status de PDK - DevOps mostra Atualizado.

nota

O esquema PDK - DevOps e todas as alterações subsequentes nos esquemas do PDK serão significativamente mais lentos a partir de agora, pois os arquivos de bloqueio nos bastidores são gerados para garantir que as compilações e implantações sejam reproduzíveis no futuro. Ele gerará arquivos de bloqueio para todos os pacotes em qualquer linguagem compatível.

Etapa 6: confirmar o fluxo de trabalho de lançamento e visualizar seu site

Depois de concluir as etapas anteriores, você poderá confirmar o fluxo de trabalho de lançamento para garantir que o projeto esteja sendo construído.

Como confirmar o fluxo de trabalho de lançamento e visualizar o site

  1. No painel de navegação do projeto monorepo, selecione CI/CD e Fluxos de trabalho.

  2. Para o fluxo de trabalho de lançamento, escolha a última execução do fluxo de trabalho para ver os detalhes. Para ter mais informações, consulte Visualização do status e detalhes de uma única execução.

  3. Depois que a execução do fluxo de trabalho for concluída, escolha a última ação no fluxo de trabalho (por exemplo, Deploy-Beta-ap-southeast-2) e selecione Variáveis.

    Fluxo de trabalho de esquemas do PDK.
  4. Visualize o site implantado copiando e colando o link encontrado na tabela Variáveis (por exemplo, MyPDKApiwebsiteDistributionDomainNameXXXXX) em uma nova janela do navegador.

    Tabela de variáveis de uma ação de fluxo de trabalho.

    Você precisa de uma conta do Amazon Cognito para fazer login no seu site. Por padrão, o grupo de usuários não está configurado para permitir o autorregistro.

    1. Acesse o console do AWS Cognito.

    2. Na tabela de Grupos de usuários, escolha o Nome do grupo de usuários que corresponda ao grupo de usuários criado pelo esquema PDK - DevOps, que pode ser encontrado na tabela Variáveis (por exemplo, infracalculatebetaUserIdentityinfracalculatebetaUserIdentityIdentityPoolIdXXXXX. Para ter mais informações, consulte Conceitos básicos de grupos de usuários.

      Grupo de usuários criado pelo esquema PDK - DevOps.
    3. Selecione Criar usuário.

    4. Configure os parâmetros de Informações do usuário:

      • Em Mensagem de convite, selecione Enviar um convite por e-mail.

      • No campo de entrada de texto Nome de usuário, insira um nome de usuário.

      • No campo de entrada de texto Endereço de e-mail, insira um nome de usuário.

      • Em Senha temporária, selecione Gerar uma senha.

    5. Selecione Criar usuário.

    6. Navegue até a conta de e-mail que você inseriu para os parâmetros de Informações do usuário e abra um e-mail com uma senha temporária. Anote a senha.

    7. Volte para o site implantado, digite o nome de usuário que você criou e a senha temporária que recebeu e, depois, selecione Entrar.

  5. (Opcional) Depois que a execução do fluxo de trabalho for concluída, você também poderá visualizar o diagrama gerado. Escolha a guia Artefatos no CodeCatalyst, selecione Baixar para a linha Diagrama e, depois, abra os arquivos baixados.

    Guia Artefatos para fluxo de trabalho.
    Diagrama gerado por esquemas do PDK.

Colaborar e repetir o projeto do PDK

Depois que seu projeto estiver configurado, você poderá fazer alterações no código-fonte. Você também pode convidar outros membros do espaço para trabalhar no projeto. Os esquemas do PDK permitem que você crie a aplicação de forma iterativa, adicionando somente o que precisar, quando precisar, mantendo o controle total da configuração de cada esquema.

Etapa 1: convidar membros para o projeto

Você pode usar o console para convidar usuários para o seu projeto. Você pode convidar membros do seu espaço ou adicionar nomes de fora do seu espaço.

Para convidar usuários para o seu projeto, você deve estar conectado com o perfil de Administrador do projeto ou Administrador do espaço.

Você não precisa convidar um usuário com o perfil de Administrador do espaço para o seu projeto porque ele já tem acesso implícito a todos os projetos no espaço.

Quando você convida um usuário para seu projeto (sem atribuir o perfil de Administrador do espaço), o usuário aparece na tabela Membros do projeto em projetos e na tabela Membros do projeto em espaços.

Para convidar um membro para o projeto na guia Configurações do projeto
  1. Navegue até o projeto.

    dica

    Você pode escolher qual projeto deseja visualizar na barra de navegação superior.

  2. No painel de navegação, escolha Configurações do projeto.

  3. Escolha a guia Membros.

  4. Em Membros do projeto, selecione Convidar novo membro.

  5. Digite o endereço de e-mail do novo membro, escolha o perfil para esse membro e selecione Convidar. Para ter mais informações sobre funções, consulte Concessão de acesso com perfis de usuário.

Como convidar um membro para o projeto na página Visão geral do projeto
  1. Navegue até o projeto.

    dica

    Você pode escolher qual projeto deseja visualizar na barra de navegação superior.

  2. Escolha o botão Membros +.

  3. Digite o endereço de e-mail do novo membro, escolha o perfil para esse membro e selecione Convidar. Para ter mais informações sobre funções, consulte Concessão de acesso com perfis de usuário.

Etapa 2: criar problemas para colaborar e monitorar o trabalho

O CodeCatalyst ajuda você a rastrear recursos, tarefas, bugs e qualquer outro trabalho envolvido no projeto com problemas. Você pode criar problemas para monitorar as ideias e o trabalho necessários. Por padrão, quando você cria um problema, ele é adicionado ao backlog. Você pode mover os problemas para um quadro onde é possível acompanhar o trabalho em andamento. Você também pode atribuir um problema a um membro específico do projeto. Nesta etapa, crie um problema para fazer alterações em seu projeto PDK.

Para criar um problema

  1. Abra o console do CodeCatalyst em https://codecatalyst.aws/.

  2. Navegue até o projeto monorepo onde você deseja criar um problema.

  3. Na página inicial do projeto, escolha Criar problema. Como alternativa, no painel de navegação, selecione Problemas.

  4. Selecione Criar problema.

    nota

    Você também pode adicionar problemas em linha ao usar uma visualização em grade.

  5. Insira um título para o problema.

  6. (Opcional) Insira uma Descrição. Para esse problema, insira a seguinte descrição: a change in the src/mysfit_data.json file. Você pode usar Markdown para adicionar formatação.

  7. (Opcional) Escolha um Status, Prioridade e Estimativa para o problema.

  8. (Opcional) Adicione um rótulo existente ou crie outro rótulo e adicione-o selecionando + Adicionar rótulo.

    1. Para adicionar um rótulo existente, escolha o rótulo na lista. Você pode inserir um termo de pesquisa no campo para pesquisar todos os rótulos que contêm esse termo no projeto.

    2. Para criar um rótulo e adicioná-lo, digite o nome do rótulo que você deseja criar no campo de pesquisa e pressione enter.

  9. (Opcional) Adicione um destinatário selecionando + Adicionar um destinatário. Você pode se adicionar rapidamente como destinatário selecionando + Me adicionar.

    dica

    Você pode optar por atribuir um problema ao Amazon Q para que o Amazon Q tente resolver o problema. Para ter mais informações, consulte Tutorial: Usar os recursos de IA generativa do CodeCatalyst para acelerar seu trabalho de desenvolvimento.

    Essa funcionalidade exige que recursos de IA generativa estejam habilitados para o espaço. Para ter mais informações, consulte Gerenciar recursos de IA generativa.

  10. (Opcional) Adicione um campo personalizado existente ou crie outro. Os problemas podem ter vários campos personalizados.

    1. Para adicionar um campo personalizado existente, escolha o campo personalizado na lista. Você pode inserir um termo de pesquisa no campo para pesquisar todos os campos personalizados que contêm esse termo no projeto.

    2. Para criar um campo personalizado e adicioná-lo, digite o nome do campo personalizado que você deseja criar no campo de pesquisa e pressione enter. Depois, escolha o tipo de campo personalizado que você deseja criar e defina um valor.

  11. Selecione Criar problema. Uma notificação aparece no canto inferior direito: se o problema foi criado, uma mensagem de confirmação será exibida informando que o problema foi criado. Se o problema não tiver sido criado, uma mensagem com o motivo da falha será exibida. Depois, você pode selecionar Tentar novamente para editar e tentar criar o problema novamente ou selecionar Descartar para descartar o problema. As duas opções ignorarão a notificação.

    nota

    Você não pode vincular uma solicitação pull a um problema ao criá-lo. No entanto, você pode editá-lo depois de criá-lo para adicionar links às solicitações pull.

Para ter mais informações, consulte Acompanhar e organizar o trabalho com problemas no CodeCatalyst.

Etapa 3: visualizar o repositório de origem

Você pode visualizar os repositórios de origem associados a um projeto no Amazon CodeCatalyst. Para repositórios de origem no CodeCatalyst, a página de visão geral de um repositório fornece uma visão geral rápida das informações e atividades nesse repositório, incluindo:

  • A descrição do repositório, se houver

  • O número de ramificações no repositório

  • O número de solicitações pull abertas para o repositório

  • O número de fluxos de trabalho relacionados para o repositório

  • Os arquivos e pastas na ramificação padrão ou na ramificação selecionada

  • O título, o autor e a data da última confirmação na ramificação exibida

  • O conteúdo do arquivo README.md renderizado no Markdown, se algum arquivo README.md estiver incluído

Essa página também fornece links para confirmações, ramificações e solicitações pull do repositório, bem como uma maneira rápida de abrir, visualizar e editar arquivos individuais.

nota

Você não pode visualizar essas informações sobre repositórios vinculados no console do CodeCatalyst. Para visualizar informações sobre repositórios vinculados, escolha o link na lista de repositórios para abrir esse repositório no serviço que o hospeda.

Como navegar até os repositórios de origem de um projeto
  1. Navegue até o projeto e faça o seguinte:

    • Na página de resumo do seu projeto, selecione o repositório que você deseja na lista e, depois, selecione Visualizar repositório.

    • No painel de navegação, selecione Código e, depois, selecione Repositórios de origem. Em Repositórios de origem, selecione o nome do repositório na lista. Você pode filtrar a lista de repositórios digitando parte do nome do repositório na barra de filtro.

  2. Na página inicial do repositório, visualize o conteúdo do repositório e as informações sobre os recursos associados, como o número de solicitações pull e fluxos de trabalho. Por padrão, o conteúdo da ramificação padrão é exibido. Você pode alterar a visualização selecionando uma ramificação diferente na lista suspensa.

dica

Você também pode navegar rapidamente até os repositórios do seu projeto selecionando Ver código do projeto na página de resumo do projeto.

Etapa 4: criar um Ambiente de Desenvolvimento e fazer alterações no código

Nesta etapa, crie um Ambiente de Desenvolvimento e faça alterações no código que serão mescladas na ramificação principal. Embora este tutorial mostre um projeto simples do AWS PDK, você também pode seguir um exemplo mais complexo fornecido no repositório do AWS PDK no GitHub.

Para criar um Ambiente de Desenvolvimento com uma nova ramificação

  1. No painel de navegação do projeto monorepo, execute uma das seguintes opções:

    • Selecione Visão geral e navegue até a seção Meus ambientes de desenvolvimento.

    • Selecione Código e, depois, escolha Ambientes de Desenvolvimento.

    • Selecione Código, Repositórios de origem e selecione o repositório monorepo para o qual você deseja criar um Ambiente de Desenvolvimento.

  2. Selecione um IDE compatível no menu suspenso. Consulte Ambientes de desenvolvimento integrados compatíveis para ambientes de desenvolvimento Para mais informações.

  3. Escolha Clonar um repositório.

  4. Escolha o repositório a ser clonado, selecione Trabalhar em uma nova ramificação, insira um nome de ramificação no campo Nome da ramificação e escolha uma ramificação a partir da qual criar a nova ramificação no menu Criar ramificação.

    nota

    Se você criar um Ambiente de Desenvolvimento na página Repositórios de origem ou em um repositório de origem específico, não precisará escolher um repositório. O Ambiente de Desenvolvimento será criado no repositório de origem que você escolheu na página Repositórios de origem.

  5. (Opcional) Em Alias - opcional, insira um alias para o Ambiente de Desenvolvimento.

  6. (Opcional) Escolha o botão de edição da configuração do Ambiente de Desenvolvimento para editar a configuração de computação, armazenamento ou tempo limite do Ambiente de Desenvolvimento.

  7. (Opcional) Em Amazon Virtual Private Cloud (Amazon VPC) - opcional, selecione uma conexão VPC que você gostaria de associar ao seu Ambiente de Desenvolvimento no menu suspenso.

    Se uma VPC padrão for definida para seu espaço, seus ambientes de desenvolvimento serão executados conectados a essa VPC. Você pode substituir isso associando uma conexão VPC diferente. Além disso, observe que os ambientes de desenvolvimento conectados à VPC não são compatíveis com o AWS Toolkit.

    nota

    Quando você cria um Ambiente de Desenvolvimento com uma conexão VPC, uma nova interface de rede é criada dentro da VPC. O CodeCatalyst interage com essa interface usando o perfil da VPC associado. Além disso, garanta que seu bloco CIDR IPv4 não esteja configurado para o intervalo de endereços IP 172.16.0.0/12.

  8. Escolha Criar. Enquanto seu Ambiente de Desenvolvimento estiver sendo criado, a coluna de status do Ambiente de Desenvolvimento exibirá Iniciando e a coluna de status exibirá Executando após a criação do Ambiente de Desenvolvimento.

Depois que o Ambiente de Desenvolvimento estiver em execução, você trabalhará com a aplicação de exemplo gerada no CodeCatalyst fazendo alterações no código com solicitações pull que são automaticamente criadas e implantadas nos recursos da conta da AWS conectada quando a solicitação pull é mesclada. O monorepo vende um devfile para que todas as dependências e runtimes globais necessários estejam presentes automaticamente.

Como alterar o código em seu projeto

  1. Em um terminal funcional do seu Ambiente de Desenvolvimento, navegue até seu projeto monorepo e, depois, instale as dependências do projeto executando o seguinte comando:

    npx projen install
  2. Navegue até o packages/apis/mypdkapi/model/src/main/smithy/operations/say-hello.smithy, que define um exemplo de operação de API. Neste tutorial, você criará uma operação Calculate simples que soma dois números. Faça uma alteração no código para definir essa operação, incluindo entrada e saída.

    Exemplo:

    $version: "2" namespace com.aws @http(method: "POST", uri: "/calculate") @handler(language: "typescript") operation Calculate { input := { @required numberA: Integer @required numberB: Integer } output := { @required result: Integer } }

    A característica @handler diz à API Type Safe que você implementará essa operação como um manipulador do AWS Lambda escrito em TypeScript. A API Type Safe gerará um stub para essa operação para você implementar no TypeScript. A característica @required foi adicionada, o que significa que ela será aplicada em runtime pelo gateway de API que será implantado. Para ter mais informações, consulte a documentação do Smithy.

  3. Renomeie o nome do arquivo /say-hello.smithy com um que esteja alinhado com suas alterações de código (por exemplo, calculate.smithy).

  4. Navegue até o packages/apis/mypdkapi/model/src/main/smithy/main.smithy e faça uma alteração no código para conectar a operação. Você pode expor a operação Calculate definida no /calculate.smithy listando-a no campo operations desse arquivo.

    Exemplo:

    $version: "2" namespace com.aws use aws.protocols#restJson1 /// A sample smithy api @restJson1 service MyPDKApi { version: "1.0" operations: [Calculate] errors: [ BadRequestError NotAuthorizedError InternalFailureError ] }
  5. Crie as alterações executando o comando a seguir:

    npx projen build
    nota

    Se desejar, você pode transmitir o sinalizador --parallel X, que distribuirá a compilação entre os núcleos X.

    Como a característica @handler foi adicionada, os seguintes arquivos são gerados após a conclusão da criação:

    • /packages/apis/mypdkapi/handlers/typescript/src/calculate.ts

    • /packages/apis/mypdkapi/handlers/typescript/test/calculate.test.ts

  6. Navegue até packages/apis/mypdkapi/handlers/typescript/src/calculate.ts e faça alterações no código. Esse arquivo é o manipulador do servidor que é chamado para a API.

    import { calculateHandler, CalculateChainedHandlerFunction, INTERCEPTORS, Response, LoggingInterceptor, } from 'mypdkapi-typescript-runtime'; /** * Type-safe handler for the Calculate operation */ export const calculate: CalculateChainedHandlerFunction = async (request) => { LoggingInterceptor.getLogger(request).info('Start Calculate Operation'); const { input } = request; return Response.success({ result: input.body.numberA + input.body.numberB, }); }; /** * Entry point for the AWS Lambda handler for the Calculate operation. * The calculateHandler method wraps the type-safe handler and manages marshalling inputs and outputs */ export const handler = calculateHandler(...INTERCEPTORS, calculate);
  7. Navegue até o arquivo /packages/apis/mypdkapi/handlers/typescript/test/calculate.test.ts e faça alterações no código para atualizar os testes de unidade.

    Exemplo:

    import { CalculateChainedRequestInput, CalculateResponseContent, } from 'mypdkapi-typescript-runtime'; import { calculate, } from '../src/calculate'; // Common request arguments const requestArguments = { chain: undefined as never, event: {} as any, context: {} as any, interceptorContext: { logger: { info: jest.fn(), }, }, } satisfies Omit<CalculateChainedRequestInput, 'input'>; describe('Calculate', () => { it('should return correct sum', async () => { const response = await calculate({ ...requestArguments, input: { requestParameters: {}, body: { numberA: 1, numberB: 2 } }, }); expect(response.statusCode).toBe(200); expect((response.body as CalculateResponseContent).result).toEqual(3); }); });
  8. Navegue até o arquivo /packages/infra/main/src/constructs/apis/mypdkapi.ts e faça alterações no código para adicionar uma integração para a operação Calculate na infraestrutura de CDK. O constructo da API tem uma propriedade de integrações, na qual você pode transmitir a implementação adicionada anteriormente. Como você está usando a característica @handler no modelo Smithy para a operação Calculate, você pode usar o constructo de CDK CalculateFunction gerado, que é pré-configurada, para apontar para a implementação do manipulador.

    Exemplo:

    import { UserIdentity } from "@aws/pdk/identity"; import { Authorizers, Integrations } from "@aws/pdk/type-safe-api"; import { Stack } from "aws-cdk-lib"; import { Cors } from "aws-cdk-lib/aws-apigateway"; import { AccountPrincipal, AnyPrincipal, Effect, PolicyDocument, PolicyStatement, } from "aws-cdk-lib/aws-iam"; import { Construct } from "constructs"; import { Api, CalculateFunction } from "calculateapi-typescript-infra"; /** * Api construct props. */ export interface CalculateApiProps { /** * Instance of the UserIdentity. */ readonly userIdentity: UserIdentity; } /** * Infrastructure construct to deploy a Type Safe API. */ export class CalculateApi extends Construct { /** * API instance */ public readonly api: Api; constructor(scope: Construct, id: string, props?: CalculateApiProps) { super(scope, id); this.api = new Api(this, id, { defaultAuthorizer: Authorizers.iam(), corsOptions: { allowOrigins: Cors.ALL_ORIGINS, allowMethods: Cors.ALL_METHODS, }, integrations: { calculate: { integration: Integrations.lambda(new CalculateFunction(this, "CalculateFunction")) } }, policy: new PolicyDocument({ statements: [ // Here we grant any AWS credentials from the account that the prototype is deployed in to call the api. // Machine to machine fine-grained access can be defined here using more specific principals (eg roles or // users) and resources (ie which api paths may be invoked by which principal) if required. // If doing so, the cognito identity pool authenticated role must still be granted access for cognito users to // still be granted access to the API. new PolicyStatement({ effect: Effect.ALLOW, principals: [new AccountPrincipal(Stack.of(this).account)], actions: ["execute-api:Invoke"], resources: ["execute-api:/*"], }), // Open up OPTIONS to allow browsers to make unauthenticated preflight requests new PolicyStatement({ effect: Effect.ALLOW, principals: [new AnyPrincipal()], actions: ["execute-api:Invoke"], resources: ["execute-api:/*/OPTIONS/*"], }), ], }), }); // Grant authenticated users access to invoke the api props?.userIdentity.identityPool.authenticatedRole.addToPrincipalPolicy( new PolicyStatement({ effect: Effect.ALLOW, actions: ["execute-api:Invoke"], resources: [this.api.api.arnForExecuteApi("*", "/*", "*")], }), ); } }
  9. Crie as alterações executando o comando a seguir:

    npx projen build

Depois que a construção do projeto for concluída, você poderá visualizar o diagrama gerado atualizado, que pode ser encontrado no /packages/infra/main/cdk.out/cdkgraph/diagram.png. O diagrama mostra como a função é adicionada e conectada à API criada. Conforme o código do CDK é modificado, esse diagrama também é atualizado.

Agora você pode implantar as alterações enviando-as e mesclando-as na ramificação principal do repositório.

Etapa 5: enviar e mesclar alterações de código

Confirme e envie as alterações de código, que podem ser mescladas na ramificação principal do repositório de origem.

Como enviar alterações à ramificação de recursos

  • Confirme e envie alterações à ramificação de recursos executando os seguintes comandos:

    git add .
    git commit -m "my commit message"
    git push

Fazer alterações aciona a execução de um novo fluxo de trabalho para a ramificação de recursos, que você pode visualizar no console do CodeCatalyst. Depois, você pode criar uma solicitação pull para mesclar as alterações na ramificação principal do repositório de origem. Mesclar a ramificação de recursos com a ramificação principal aciona o fluxo de trabalho de lançamento. Você também pode vincular a solicitação pull ao seu problema.

Para criar uma solicitação pull e vinculá-la ao seu problema

  1. No projeto monorepo, execute uma das seguintes opções:

    • No painel de navegação, escolha Código, Solicitações pull e, depois, selecione Criar solicitação pull.

    • Na página inicial do repositório, escolha Mais e, depois, selecione Criar solicitação pull.

    • Na página do projeto, selecione Criar solicitação pull.

  2. No Repositório de origem, certifique-se de que o repositório de origem especificado seja aquele que contém o código confirmado. Essa opção só aparecerá se você não tiver criado a solicitação pull na página principal do repositório.

  3. Em Ramificação de destino, selecione a ramificação principal na qual mesclar o código depois que ele for revisado.

  4. Em Ramificação de origem, selecione a ramificação de recursos que contém o código confirmado.

  5. Em Título da solicitação pull, insira um título que ajude outros usuários a entender o que precisa ser revisado e por quê.

  6. (Opcional) Na Descrição da solicitação pull, forneça informações, como um link para problemas ou uma descrição das alterações.

    dica

    Você pode selecionar Escrever descrição para mim para que o CodeCatalyst gere automaticamente uma descrição das alterações contidas na solicitação pull. Você pode fazer alterações na descrição gerada automaticamente depois de adicioná-la à solicitação pull.

    Essa funcionalidade exige que recursos de IA generativa estejam habilitados para o espaço. Para ter mais informações, consulte Gerenciamento de recursos de IA generativa no Amazon CodeCatalyst.

  7. Em Problemas, selecione Vincular problemas e, depois, escolha o problema em que você criou em Etapa 2: criar problemas para colaborar e monitorar o trabalho. Para desvincular um problema, selecione o ícone de desvinculação.

  8. (Opcional) Em Revisores obrigatórios, selecione Adicionar revisores obrigatórios. Selecione na lista de membros do projeto para adicioná-los. Os revisores obrigatórios devem aprovar as alterações antes que a solicitação pull seja mesclada na ramificação de destino.

    nota

    Não é possível adicionar um revisor como revisor obrigatório e revisor opcional. Não é possível se adicionar como revisor.

  9. (Opcional) Em Revisores opcionais, selecione Adicionar revisores opcionais. Selecione na lista de membros do projeto para adicioná-los. Revisores opcionais não precisam aprovar as alterações como um requisito antes que a solicitação pull seja mesclada na ramificação de destino.

  10. A solicitação pull deve ser revisada e mesclada na ramificação principal pelos revisores ou por você mesmo. Para ter mais informações, consulte Mesclar uma solicitação pull.

    Quando as alterações são mescladas na ramificação principal do repositório de origem, um novo fluxo de trabalho é acionado automaticamente.

  11. Depois que a mesclagem for concluída, você poderá mover o problema para Concluído.

    1. No painel de navegação, selecione Problemas.

    2. Escolha o problema criado em Etapa 2: criar problemas para colaborar e monitorar o trabalho, escolha a lista suspensa Status e, depois, escolha Concluído.

O fluxo de trabalho de lançamento implanta a aplicação após uma execução bem-sucedida, para que você possa visualizar as alterações.

Como confirmar o fluxo de trabalho de lançamento e visualizar o site

  1. No painel de navegação do projeto monorepo, selecione CI/CD e Fluxos de trabalho.

  2. Para o fluxo de trabalho de lançamento, escolha a última execução do fluxo de trabalho para ver os detalhes. Para ter mais informações, consulte Visualização do status e detalhes de uma única execução.

  3. Depois que a execução do fluxo de trabalho for concluída, escolha a última ação no fluxo de trabalho (Deploy-Beta-ap-southeast-2) e selecione Variáveis.

  4. Visualize o site implantado copiando e colando o link encontrado na linha MyPDKApiwebsiteDistributionDomainNameXXXXX em uma nova janela do navegador.

  5. Insira o nome do usuário e a senha criados em Etapa 6: confirmar o fluxo de trabalho de lançamento e visualizar seu site e selecione Entrar.

  6. (Opcional) Teste as alterações na aplicação.

    1. Escolha o menu suspenso POST.

    2. Insira dois valores para numberA e number B e selecione Executar.

    3. Confirme os resultados no Corpo da resposta.

Com o tempo, as versões do catálogo dos esquemas do PDK podem mudar. Você pode alterar os esquemas do projeto para as versões do catálogo para se manter atualizado com as alterações mais recentes. Você pode visualizar as alterações no código e os ambientes afetados antes de alterar as versões do esquema do projeto. Para ter mais informações, consulte Alteração das versões do esquema em um projeto.