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á.
Automatize as CodeGuru avaliações da Amazon para aplicativos AWS CDK Python usando o Actions GitHub
Vanitha Dontireddy e Sarat Chandra Pothula, Amazon Web Services
Resumo
Observação: a partir de 7 de novembro de 2025, você não pode criar novas associações de repositórios no Amazon CodeGuru Reviewer. Para saber mais sobre serviços com recursos semelhantes aos do CodeGuru Reviewer, consulte a mudança de disponibilidade do Amazon CodeGuru Reviewer na documentação do CodeGuru Reviewer.
Esse padrão mostra a integração das análises de código CodeGuru automatizadas da Amazon para aplicativos AWS Cloud Development Kit (AWS CDK) Python, GitHub orquestradas por meio de ações. A solução implanta uma arquitetura sem servidor definida em Python. AWS CDK Ao automatizar a análise de código especializada no pipeline de desenvolvimento, essa abordagem pode fazer o seguinte para projetos em Python AWS CDK :
Código de melhor qualidade.
Simplificação dos fluxos de trabalho.
Aproveitamento máximo dos benefícios da computação com tecnologia sem servidor.
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS.
AWS Command Line Interface (AWS CLI) versão 2.9.11 ou posterior, instalada e configurada.
Uma GitHub conta ativa e um GitHub repositório com permissões de fluxo de trabalho de leitura e gravação e criação de pull requests (PR) pela GitHub Actions para garantir que o fluxo de trabalho de PR funcione corretamente.
Uma função do OpenID Connect (OIDC) em GitHub Ações para implantar a solução no. Conta da AWS Para criar o perfil, use o constructo do AWS CDK
.
Limitações
O Amazon CodeGuru Profiler oferece suporte a aplicativos escritos em todas as linguagens de máquina virtual Java (JVM) (como Scala e Kotlin) e tempos de execução e Python 3.6 ou posterior.
O Amazon CodeGuru Reviewer oferece suporte a associações com repositórios de código Java e Python somente dos seguintes provedores de origem AWS CodeCommit: Bitbucket GitHub GitHub , Enterprise Cloud e Enterprise Server. GitHub Além disso, os repositórios do Amazon Simple Storage Service (Amazon S3) só são suportados por meio de ações. GitHub
Não existe uma forma automatizada de apresentar as descobertas durante o pipeline de integração contínua e implantação contínua (CI/CD). Em vez disso, esse padrão usa GitHub Ações como um método alternativo para manipular e exibir as descobertas.
Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte AWS Services by Region
. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.
Arquitetura
O diagrama apresentado a seguir ilustra a arquitetura para esta solução.

Conforme mostrado no diagrama, quando um desenvolvedor cria uma pull request (PR) para análise, o GitHub Actions aciona as seguintes etapas:
Suposição da função do IAM — O pipeline usa a função do IAM especificada em GitHub Segredos para realizar tarefas de implantação.
Análise de código
CodeGuru O revisor analisa o código armazenado no bucket do Amazon S3. Ele identifica defeitos e fornece recomendações para correções e otimizações.
CodeGuru Verificações de segurança em busca de violações e vulnerabilidades de políticas.
Revisão das descobertas
O pipeline apresenta um link para o painel de descobertas na saída do console.
Se forem detectadas descobertas críticas, o pipeline falhará imediatamente.
Para descobertas com severidade alta, normal ou baixa, o pipeline prosseguirá para a próxima etapa.
Aprovação de PR
O PR precisa ser aprovado manualmente por um revisor.
Caso o PR seja recusado, o pipeline falha e interrompe quaisquer etapas subsequentes de implantação.
Implantação do CDK: após a aprovação do PR, o processo de implantação do CDK é iniciado. Ele configura o seguinte Serviços da AWS e os recursos:
CodeGuru Perfilador
AWS Lambda função
Fila do Amazon Simple Queue Service (Amazon SQS)
Geração de dados de perfil — Para gerar dados de perfil suficientes para CodeGuru o Profiler:
O pipeline invoca a função do Lambda várias vezes, enviando mensagens periodicamente para a fila do Amazon SQS.
Ferramentas
Serviços da AWS
AWS Cloud Development Kit (AWS CDK)é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar Nuvem AWS infraestrutura em código.
O CDK Toolkit é um kit de desenvolvimento em nuvem de linha de comando que ajuda você a interagir com seu AWS CDK aplicativo.
O Amazon CodeGuru Profiler coleta dados de desempenho de tempo de execução de seus aplicativos ativos e fornece recomendações que podem ajudá-lo a ajustar o desempenho do seu aplicativo.
O Amazon CodeGuru Reviewer usa análise de programas e aprendizado de máquina para detectar possíveis defeitos difíceis de serem encontrados pelos desenvolvedores. Em seguida, o CodeGuru Profiler oferece sugestões para melhorar seu código Java e Python.
O Amazon CodeGuru Security é uma ferramenta estática de segurança de aplicativos que usa aprendizado de máquina para detectar violações e vulnerabilidades de políticas de segurança. A ferramenta fornece sugestões para lidar com os riscos de segurança e gera métricas para que você possa acompanhar a postura de segurança das aplicações.
AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
O AWS Lambda é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
O Amazon Simple Queue Service (Amazon SQS) fornece uma fila hospedada segura, durável e disponível que ajuda a integrar e desacoplar sistemas e componentes de software distribuídos.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
Outras ferramentas
GitHub O Actions
é uma plataforma de integração contínua e entrega contínua (CI/CD) totalmente integrada aos GitHub repositórios. Você pode usar o GitHub Actions para automatizar seu pipeline de criação, teste e implantação.
Repositório de código
O código desse padrão está disponível no repositório GitHub amazon-codeguru-suite-cdk-python
Práticas recomendadas
Siga as práticas apresentadas em Best practices for developing and deploying cloud infrastructure with the AWS CDK.
Siga as melhores práticas de segurança no IAM ao usar os fluxos Serviços da AWS de trabalho do GitHub Actions, incluindo:
Não armazene credenciais no código do seu repositório.
Assuma um perfil do IAM para receber credenciais temporárias e use esse tipo de credencial sempre que possível.
Conceda o menor privilégio à função do IAM usada nos fluxos de trabalho do GitHub Actions. Conceda somente as permissões necessárias para realizar as ações em seus fluxos de trabalho de GitHub ações.
Monitore a atividade da função do IAM usada nos fluxos de trabalho do GitHub Actions.
Faça a rotação periódica de quaisquer credenciais de longo prazo que você empregue.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Configure as AWS credenciais. | Para exportar as variáveis que definem Conta da AWS e Região da AWS onde você está implantando a pilha, execute os seguintes comandos:
As AWS credenciais do AWS CDK são fornecidas por meio de variáveis de ambiente. | AWS DevOps, DevOps engenheiro |
Clonar o repositório. | Para clonar o repositório em sua máquina local, execute o seguinte comando:
| AWS DevOps, DevOps engenheiro |
Instale o CDK Toolkit. | Para confirmar que o CDK Toolkit está instalado e verificar a versão, execute o seguinte comando:
Se a versão do CDK Toolkit for anterior à 2.27.0, digite o seguinte comando para atualizá-lo para a versão 2.27.0:
Se o CDK Toolkit não estiver instalado, execute o seguinte comando para instalá-lo:
| AWS DevOps, DevOps engenheiro |
Instale as dependências necessárias. | Para instalar as dependências necessárias do projeto, execute o seguinte comando:
| AWS DevOps, DevOps engenheiro |
Inicialize o ambiente do CDK. | Para inicializar um ambiente do AWS CDK, execute os seguintes comandos:
Após inicializar com êxito o ambiente, a seguinte saída deve ser exibida:
| AWS DevOps, DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Sintetize o aplicativo. AWS CDK | Para sintetizar um AWS CDK aplicativo, execute o seguinte comando:
Para obter mais informações sobre esse comando, consulte cdk synthesize na documentação. AWS CDK | AWS DevOps, DevOps engenheiro |
Implantar os recursos | Para implantar os recursos, execute o seguinte comando:
notaA sinalização | AWS DevOps, DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Crie os segredos necessários em GitHub. | Para permitir que os fluxos de trabalho do GitHub Actions acessem AWS recursos com segurança sem expor informações confidenciais no código do seu repositório, crie segredos. Para criar os segredos em GitHub for A seguir, apresentamos mais informações sobre as variáveis:
| AWS DevOps, DevOps engenheiro |
Crie um token de acesso GitHub pessoal. | Para configurar uma forma segura de autenticar e interagir com seus fluxos de trabalho do GitHub Actions GitHub, faça o seguinte:
| AWS DevOps, DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Limpar os recursos | Para limpar seu aplicativo AWS CDK Python, execute o seguinte comando:
| DevOps engenheiro |
Solução de problemas
| Problema | Solução |
|---|---|
Exibir o link para as descobertas do painel. | Não há como imprimir as descobertas durante o CI/CD pipeline. Em vez disso, esse padrão usa GitHub Ações como um método alternativo para manipular e exibir as descobertas. |
Recursos relacionados
AWS recursos
GitHub documentação