

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

# Crie e implante automaticamente um aplicativo Java no Amazon EKS usando um CI/CD pipeline
<a name="automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline"></a>

*MAHESH RAGHUNANDANAN, Jomcy Pappachen e James Radtke, Amazon Web Services*

## Resumo
<a name="automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline-summary"></a>

Esse padrão descreve como criar um pipeline de integração contínua e entrega contínua (CI/CD) que cria e implanta automaticamente um aplicativo Java com as DevSecOps práticas recomendadas em um cluster do Amazon Elastic Kubernetes Service (Amazon EKS) no. Nuvem AWS Esse padrão usa um aplicativo de saudação desenvolvido com uma estrutura Java Spring Boot e que usa o Apache Maven.

Você pode usar a abordagem deste padrão para compilar o código para um aplicativo Java, empacotar os artefatos do aplicativo como uma imagem do Docker, verificar a segurança da imagem e fazer o upload da imagem como um contêiner de workload no Amazon EKS. A abordagem deste padrão é útil se você quiser migrar de uma arquitetura monolítica fortemente acoplada para uma arquitetura de microsserviços. A abordagem também ajuda você a monitorar e gerenciar todo o ciclo de vida de um aplicativo Java, o que garante um nível mais alto de automação e ajuda a evitar erros ou bugs.

## Pré-requisitos e limitações
<a name="automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS.
+ AWS Command Line Interface (AWS CLI) versão 2, instalada e configurada. Para obter mais informações sobre isso, consulte [Instalação ou atualização para a versão mais recente do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) na AWS CLI documentação.

  AWS CLI a versão 2 deve ser configurada com a mesma função AWS Identity and Access Management (IAM) que cria o cluster Amazon EKS, porque somente essa função está autorizada a adicionar outras funções do IAM ao `aws-auth``ConfigMap`. Para obter informações e etapas de configuração AWS CLI, consulte [Definindo configurações](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html) na AWS CLI documentação.
+ Funções e permissões do IAM com acesso total AWS CloudFormation a. Para obter mais informações sobre isso, consulte Como [controlar o acesso com o IAM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) na CloudFormation documentação.
+ Um cluster existente do Amazon EKS, com detalhes do nome do perfil do IAM e o nome do recurso da Amazon (ARN) do perfil do IAM dos nós de processamento no cluster do EKS.
+ Kubernetes Cluster Autoscaler, instalado e configurado em seu cluster Amazon EKS. Para obter mais informações, consulte [Escalar a computação em cluster com o Karpenter e o Cluster Autoscaler](https://docs.aws.amazon.com/eks/latest/userguide/cluster-autoscaler.html) na documentação do Amazon EKS. 
+ Acesso ao código no GitHub repositório.

**Importante**  
AWS Security Hub CSPM é habilitado como parte dos CloudFormation modelos incluídos no código desse padrão. Por padrão, depois que o Security Hub CSPM é ativado, ele vem com um teste gratuito de 30 dias. Ao fim dessa avaliação, esse AWS service (Serviço da AWS) tem um custo associado. Para obter mais informações sobre preços, consulte [Preços do AWS Security Hub CSPM](https://aws.amazon.com/security-hub/pricing/).

**Versões do produto**
+ Helm versão 3.4.2 ou superior
+ Apache Maven versão 3.6.3 ou mais recente
+ BridgeCrew Checkov versão 2.2 ou posterior
+ Aqua Security Trivy versão 0.37 ou mais recente

## Arquitetura
<a name="automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline-architecture"></a>

**Pilha de tecnologia**
+ AWS CodeBuild
+ AWS CodeCommit
+ Amazon CodeGuru
+ AWS CodePipeline
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon EKS
+ Amazon EventBridge
+ AWS Security Hub CSPM
+ Amazon Simple Notiﬁcation Service (Amazon SNS)

**Arquitetura de destino**

![Fluxo de trabalho para implantar uma aplicação em Java no Amazon EKS.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/95a5b5c2-d7fb-41eb-9089-455318c0d585/images/4f5fd8c2-2b6d-4945-aa64-fcf317521711.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O desenvolvedor atualiza o código do aplicativo Java na ramificação base do CodeCommit repositório, o que cria uma pull request (PR).

1. Assim que o PR é enviado, o Amazon CodeGuru Reviewer revisa automaticamente o código, o analisa com base nas melhores práticas de Java e fornece recomendações ao desenvolvedor.

1. Depois que o PR é mesclado com a filial base, um EventBridge evento da Amazon é criado.

1. O EventBridge evento inicia o CodePipeline pipeline, que começa.

1. CodePipeline executa o estágio de CodeSecurity digitalização (segurança contínua).

1. AWS CodeBuild inicia o processo de verificação de segurança no qual os arquivos Helm de implantação do Dockerfile e do Kubernetes são verificados usando o Checkov, e o código-fonte do aplicativo é escaneado com base em alterações incrementais no código. A verificação do código-fonte do aplicativo é realizada pelo wrapper da [interface de linha de comando (CLI) do CodeGuru Reviewer](https://github.com/aws/aws-codeguru-cli).
**nota**  
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](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/codeguru-reviewer-availability-change.html) do CodeGuru Reviewer. 

1. Se o estágio de verificação de segurança for bem-sucedido, o estágio de compilação (integração contínua) será inicializado.

1. No estágio CodeBuild Build, cria o artefato, empacota o artefato em uma imagem do Docker, escaneia a imagem em busca de vulnerabilidades de segurança usando o Aqua Security Trivy e armazena a imagem no Amazon ECR.

1. As vulnerabilidades detectadas na etapa 8 são enviadas para o Security Hub CSPM para análise posterior por desenvolvedores ou engenheiros. O Security Hub CSPM fornece uma visão geral e recomendações para remediar as vulnerabilidades.

1. As notificações por e-mail das fases sequenciais dentro do CodePipeline pipeline são enviadas pelo Amazon SNS.

1. Depois que as fases de integração contínua forem concluídas, CodePipeline entra no estágio de implantação (entrega contínua).

1. A imagem do Docker é implantada no Amazon EKS como uma workload de contêiner (pod) usando charts do Helm.

1. O pod do aplicativo é configurado com o agente Amazon CodeGuru Profiler, que envia os dados de perfil do aplicativo (CPU, uso do heap e latência) para o CodeGuru Profiler, o que ajuda os desenvolvedores a entender o comportamento do aplicativo.

## Ferramentas
<a name="automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline-tools"></a>

**Serviços da AWS**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los em todo o ciclo de vida em todas Contas da AWS as regiões.
+  O [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação.
+ O [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) é um serviço de controle de versão que ajuda no armazenamento e no gerenciamento de repositórios Git de forma privada, sem a necessidade de administrar o próprio sistema de controle de origem.
+ [O Amazon CodeGuru Profiler](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 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 [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software, além de automatizar as etapas necessárias para a implantação contínua de alterações.
+ O [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) é um serviço gerenciado de registro de imagens de contêineres seguro, escalável e confiável.
+ [O Amazon Elastic Kubernetes Service (Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html)) ajuda você a executar o AWS Kubernetes sem precisar instalar ou manter seu próprio plano de controle ou nós do Kubernetes.
+  EventBridgeA [Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) é um serviço de barramento de eventos sem servidor que ajuda você a conectar seus aplicativos a dados em tempo real de várias fontes, incluindo AWS Lambda funções, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outras. Contas da AWS
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)fornece uma visão abrangente do seu estado de segurança em AWS. Também ajuda você a verificar seu AWS ambiente de acordo com os padrões e as melhores práticas do setor de segurança.
+ O [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

**Outros serviços**
+ O [Helm](https://helm.sh/docs/) é um gerenciador de pacotes de código aberto para o Kubernetes.
+ O [Apache Maven](https://maven.apache.org/) é uma ferramenta de gerenciamento e compreensão de projetos de software.
+ BridgeCrew O [Checkov](https://www.checkov.io/1.Welcome/What%20is%20Checkov.html) é uma ferramenta estática de análise de código para escanear a infraestrutura como arquivos de código (IaC) em busca de configurações incorretas que possam levar a problemas de segurança ou conformidade.
+ O [Aqua Security Trivy](https://github.com/aquasecurity/trivy) é um scanner abrangente para vulnerabilidades em imagens de contêineres, sistemas de arquivos e repositórios Git, além de problemas de configuração.

**Código **

O código desse padrão está disponível no GitHub [aws-codepipeline-devsecops-amazoneks](https://github.com/aws-samples/aws-codepipeline-devsecops-amazoneks)repositório.

## Práticas recomendadas
<a name="automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline-best-practices"></a>
+ Este padrão segue as [práticas recomendadas de segurança do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) para aplicar o princípio de privilégio mínimo para entidades do IAM em todas as fases da solução. Se você quiser estender a solução com ferramentas adicionais Serviços da AWS ou de terceiros, recomendamos que você revise a seção sobre a [aplicação de permissões de privilégios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) na documentação do IAM.
+ Se você tiver vários aplicativos Java, recomendamos criar CI/CD pipelines separados para cada aplicativo.
+ Se você tiver uma aplicação monolítica, recomendamos dividir a aplicação em microsserviços onde for possível. Os microsserviços são mais flexíveis, facilitam a implantação de aplicativos como contêineres e fornecem melhor visibilidade da compilação e implantação gerais do aplicativo.

## Épicos
<a name="automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline-epics"></a>

### Configurar o ambiente
<a name="set-up-the-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o GitHub repositório. | Para clonar o repositório, execute o comando a seguir.<pre>git clone https://github.com/aws-samples/aws-codepipeline-devsecops-amazoneks</pre> | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Crie um bucket do S3 faça o upload do código. | 1. Faça login no Console de gerenciamento da AWS, abra o [console do Amazon S3](https://console.aws.amazon.com/s3/) e, em seguida, crie um bucket S3 no local em Região da AWS que você planeja implantar essa solução. Para obter mais informações, consulte [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) na documentação do Amazon S3<br />2. No bucket do S3, crie uma pasta chamada `code`.<br />3. Navegue até onde você clonou o repositório. Para criar uma versão compactada do código inteiro com a extensão .zip (`cicdstack.zip`) e validar o arquivo .zip, execute os comandos a seguir em ordem.<pre>cd aws-codepipeline-devsecops-amazoneks<br />python -m zipfile -c cicdstack.zip *<br />python -m zipfile -t cicdstack.zip</pre>Se o comando `python` falhar e indicar que o Python não foi encontrado, use `python3` em vez disso.<br />4. Faça upload do arquivo `cicdstack.zip` para a pasta de código que você criou anteriormente no bucket S3. | AWS DevOps, administrador de nuvem, DevOps engenheiro | 
| Crie uma CloudFormation pilha. | 1. Abra o [console do CloudFormation](https://console.aws.amazon.com/cloudformation/) e escolha **Create stack (Criar pilha)**.<br />2. Em **Especificar modelo**, escolha **Fazer upload de um arquivo de modelo**, faça o upload do arquivo `cf_templates/codecommit_ecr.yaml` e escolha **Avançar**.<br />3. Em **Especificar detalhes da pilha**, insira o nome da pilha e, em seguida, forneça os seguintes valores de parâmetros de entrada:`CodeCommitRepositoryBranchName`: o nome da ramificação em que seu código residirá (o padrão é `main`)`CodeCommitRepositoryName`: O nome do a CodeCommitrepository ser criado`CodeCommitRepositoryS3Bucket`: o nome do bucket do S3 no qual você criou a pasta de código`CodeCommitRepositoryS3BucketObjKey`: `code/cicdstack.zip``ECRRepositoryName`: o nome do repositório do Amazon ECR a ser criado<br />4. Escolha **Próximo**, use as configurações padrão para **Configurar opções de pilha** e, em seguida, escolha **Próximo**.<br />5. Na seção **Revisão**, verifique os detalhes do modelo e da pilha e escolha **Criar pilha**. A pilha é então criada, incluindo os repositórios Amazon ECR CodeCommit e Amazon.<br />6. Anote os nomes dos repositórios CodeCommit e do Amazon ECR, que serão necessários para configurar o pipeline Java CI/CD . | AWS DevOps, DevOps engenheiro | 
| Valide a implantação da CloudFormation pilha. | 1. Em **Pilhas** no CloudFormation console, verifique o status da CloudFormation pilha que você implantou. O status da pilha deve ser **CREATE COMPLETE**.<br />2. No console, confirme se os repositórios CloudFormation e o Amazon ECR foram provisionados e estão prontos. | AWS DevOps, DevOps engenheiro | 
| Exclua o bucket do S3. | Esvazie e exclua o bucket do S3 criado anteriormente. Para obter mais informações, consulte [Excluir um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) na documentação do Amazon S3 | AWS DevOps, DevOps engenheiro | 

### Configurar os charts do Helm
<a name="configure-the-helm-charts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure os charts do Helm do seu aplicativo Java. | 1. No local em que você clonou o GitHub repositório, navegue até a pasta. `helm_charts/aws-proserve-java-greeting` Nessa pasta, o arquivo `values.dev.yaml`** **contém informações sobre a configuração dos recursos do Kubernetes que você pode modificar para suas implantações de contêineres no Amazon EKS. Atualize o parâmetro do repositório Docker fornecendo seu Conta da AWS ID e nome do repositório Amazon ECR. Região da AWS<pre>image:<br />  repository: <account-id>.dkr.ecr.<region>.amazonaws.com/<app-ecr-repo-name></pre><br />2. O tipo de serviço do pod Java está definido como `LoadBalancer`.<pre>service:<br />  type: LoadBalancer<br />  port: 80<br />  targetPort: 8080<br />  path: /hello<br />  initialDelaySeconds: 60<br />  periodSeconds: 30</pre><br />Para usar um serviço diferente (por exemplo, `NodePort`), você pode alterar esse parâmetro. Para obter mais informações, consulte [a documentação do Kubernetes](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types).<br />3. Você pode ativar o [Ajustador de escala automático do pod horizontal do Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/horizontal-pod-autoscaler.html) alterando o parâmetro `autoscaling` para `enabled: true`.<pre>autoscaling:<br />  enabled: true<br />  minReplicas: 1<br />  maxReplicas: 100<br />  targetCPUUtilizationPercentage: 80<br />  # targetMemoryUtilizationPercentage: 80</pre><br />4. Você pode habilitar diferentes recursos para as workloads do Kubernetes alterando os valores no arquivo `values.<ENV>.yaml`, onde `<ENV>` é seu ambiente de desenvolvimento, produção, UAT ou QA. | DevOps engenheiro | 
| Valide os charts do Helm em busca de erros de sintaxe. | 1. No terminal, verifique se o Helm v3 está instalado em sua estação de trabalho local executando o seguinte comando.<pre>helm --version</pre><br />Se o Helm v3 não estiver instalado, [instale-o](https://helm.sh/docs/intro/install/).<br />2. No terminal, navegue até o diretório de charts do Helm (`helm_charts/aws-proserve-java-greeting`) e execute o comando a seguir.<pre>helm lint . -f values.dev.yaml</pre><br />Ele verificará se há erros de sintaxe nos charts do Helm. | DevOps engenheiro | 

### Configurar o CI/CD pipeline Java
<a name="set-up-the-java-ci-cd-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o CI/CD pipeline. | 1. Abra o [console do CloudFormation](https://console.aws.amazon.com/cloudformation/) e escolha **Create stack (Criar pilha)**.<br />2. Em **Especificar modelo**, escolha **Carregar um arquivo de modelo**, carregue o modelo `cf_templates/build_deployment.yaml` e escolha **Próximo**.<br />3. Em **Especificar detalhes da pilha**, especifique o **Nome da pilha** e, em seguida, forneça os seguintes valores de parâmetros de entrada:`CodeBranchName`: nome da ramificação do CodeCommit repositório em que seu código reside`EKSClusterName`: nome do seu cluster do EKS (não o ID `EKSCluster`)`EKSCodeBuildAppName`: nome do chart do Helm da aplicação (`aws-proserve-java-greeting`)`EKSWorkerNodeRoleARN`: ARN do perfil do IAM atribuído aos nós de processamento do Amazon EKS`EKSWorkerNodeRoleName`: nome do perfil do IAM atribuído aos nós de processamento do Amazon EKS`EcrDockerRepository`: nome do repositório do Amazon ECR onde as imagens do Docker do seu código serão armazenadas`EmailRecipient`: endereço de e-mail para o qual as notificações de compilação devem ser enviadas`EnvType`: ambiente (por exemplo, dev, test ou prod)`SourceRepoName`: nome do CodeCommit repositório em que seu código reside<br />4. Escolha **Próximo**. use as configurações padrão em **Configurar opções de pilha** e, em seguida, escolha **Avançar**.<br />5. Na seção **Revisão**, verifique os detalhes do CloudFormation modelo e da pilha e escolha **Avançar**.<br />6. Selecione **Criar pilha**. <br />7. Durante a implantação da CloudFormation pilha, o proprietário do endereço de e-mail que você forneceu nos parâmetros receberá uma mensagem para se inscrever em um tópico do SNS. Para assinar o Amazon SNS, o proprietário deve escolher o link na mensagem.<br />8. Depois que a pilha for criada, abra a guia **Saídas** da pilha e registre o valor do ARN para a chave de saída `EksCodeBuildkubeRoleARN`. Esse valor do ARN do IAM será exigido posteriormente quando você fornecer permissões para a função do CodeBuild IAM implantar cargas de trabalho no cluster Amazon EKS. | AWS DevOps | 

### Ative a integração entre o Security Hub CSPM e o Aqua Security
<a name="activate-integration-between-ash-and-aqua-security"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Ative a integração com o Aqua Security. | Essa etapa é necessária para fazer o upload das descobertas da vulnerabilidade de imagem do Docker relatadas pela Trivy para o Security Hub CSPM. Como CloudFormation não oferece suporte às integrações CSPM do Security Hub, esse processo deve ser feito manualmente.1. Abra o [console do AWS Security Hub CSPM](https://console.aws.amazon.com/securityhub/) e navegue até **Integrações**.<br />2. Procure por Aqua Security e selecione **Aqua Security: Aqua Security**.<br />3. Escolha **Aceitar descobertas**. | Administrador e DevOps engenheiro da AWS | 

### Configure CodeBuild para executar os comandos Helm ou kubectl
<a name="configure-acb-to-run-helm-or-kubectl-commands"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Permita CodeBuild a execução de comandos Helm ou kubectl no cluster Amazon EKS. |  CodeBuild Para ser autenticado para usar o Helm ou `kubectl` comandos com o cluster Amazon EKS, você deve adicionar as funções do IAM ao. `aws-auth` `ConfigMap` Nesse caso, adicione o ARN da função do IAM`EksCodeBuildkubeRoleARN`, que é a função do IAM criada para que o CodeBuild serviço acesse o cluster do Amazon EKS e implante cargas de trabalho nele. Essa é uma atividade feita uma única vez.O procedimento a seguir deve ser concluído antes do estágio de aprovação da implantação em CodePipeline.1. Abra o script de shell `cf_templates/kube_aws_auth_configmap_patch.sh` em seu ambiente Amazon Linux ou macOS.<br />2. Autentique-se no cluster do Amazon EKS executando o comando a seguir.<pre>aws eks --region <aws-region> update-kubeconfig --name <eks-cluster-name></pre><br />3. Execute o script de shell usando o comando a seguir, substituindo `<rolearn-eks-codebuild-kubectl>` pelo valor ARN de `EksCodeBuildkubeRoleARN` que você registrou anteriormente.<pre>bash cf_templates/kube_aws_auth_configmap_patch.sh <rolearn-eks-codebuild-kubectl> </pre><br />O `aws_auth``ConfigMap` está configurado e o acesso é concedido.  | DevOps | 

### Valide o pipeline CI/CD
<a name="validate-the-ci-cd-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique se o CI/CD pipeline é iniciado automaticamente. | 1. O estágio de CodeSecurity verificação no pipeline geralmente falhará se o Checkov detectar vulnerabilidades nos gráficos Dockerfile ou Helm. No entanto, o objetivo deste exemplo é estabelecer um processo de identificação de possíveis vulnerabilidades de segurança em vez de corrigi-las por meio do CI/CD pipeline, normalmente um DevSecOps processo. No arquivo `buildspec/buildspec_secscan.yaml`, o comando `checkov` usa o sinalizador `--soft-fail` para evitar falhas no pipeline.<pre>- echo -e "\n Running Dockerfile Scan"<br />- checkov -f code/app/Dockerfile --framework dockerfile --soft-fail --summary-position bottom<br />- echo -e "\n Running Scan of Helm Chart files"<br />- cp -pv helm_charts/$EKS_CODEBUILD_APP_NAME/values.dev.yaml helm_charts/$EKS_CODEBUILD_APP_NAME/values.yaml<br />- checkov -d helm_charts/$EKS_CODEBUILD_APP_NAME --framework helm --soft-fail --summary-position bottom<br />- rm -rfv helm_charts/$EKS_CODEBUILD_APP_NAME/values.yaml</pre><br />Para que o pipeline falhe quando vulnerabilidades forem relatadas no Dockerfile e nos charts do Helm, a opção `--soft-fail` deve ser removida do comando `checkov`. Os desenvolvedores ou engenheiros podem então corrigir as vulnerabilidades e confirmar as alterações no repositório do CodeCommit código-fonte.<br />2. Semelhante ao CodeSecurity Scan, o estágio Build usa o Aqua Security Trivy para identificar `HIGH` vulnerabilidades de imagem do `CRITICAL` Docker antes de enviar o aplicativo para o Amazon ECR.<pre>- AWS_REGION=$AWS_DEFAULT_REGION AWS_ACCOUNT_ID=$AWS_ACCOUNT_ID trivy -d image --no-progress --ignore-unfixed --exit-code 0 --severity HIGH,CRITICAL --format template --template "@securityhub/asff.tpl" -o securityhub/report.asff $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$CODEBUILD_RESOLVED_SOURCE_VERSION</pre><br />Neste exemplo, o pipeline não falha quando as vulnerabilidades da imagem do Docker são relatadas, porque o comando `trivy` no arquivo `buildspec/buildspec.yml` inclui o sinalizador ****`--exit-code`**** com um valor de ****`0`. Para que o pipeline falhe quando as vulnerabilidades `HIGH` e `CRTICAL` forem relatadas, altere o valor de `--exit-code` para `1`. Os desenvolvedores ou engenheiros podem então corrigir as vulnerabilidades e confirmar as alterações no repositório do CodeCommit código-fonte.<br />3. As vulnerabilidades de imagem do Docker relatadas pelo Aqua Security Trivy são enviadas para o Security Hub CSPM. **No console CSPM do Security Hub, navegue até Findings.** Filtre as descobertas com **Record** **State = Active** e **Product = Aqua Security**. Isso lista as vulnerabilidades da imagem Docker no CSPM do Security Hub. Pode levar de 15 minutos a uma hora para que as vulnerabilidades apareçam no CSPM do Security Hub.Para obter mais informações sobre como iniciar o pipeline usando CodePipeline, consulte [Iniciar um pipeline em](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-about-starting.html)CodePipeline, [Iniciar um pipeline manualmente](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-rerun-manually.html) e [Iniciar um pipeline em um cronograma](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-trigger-source-schedule.html) na CodePipeline documentação. | DevOps | 
| Aprove a implantação. | 1. Depois que a fase de compilação estiver concluída, haverá um portão de aprovação de implantação. O revisor ou um gerente de versão deve inspecionar a compilação e, se todos os requisitos forem atendidos, aprová-la. Essa é a abordagem recomendada para equipes que usam entrega contínua para implantação de aplicativos.<br />2. Após a aprovação, o pipeline inicia o estágio de implantação.<br />3. Depois que o estágio de implantação for bem-sucedido, o CodeBuild log desse estágio fornecerá a URL do aplicativo. Use o URL para validar a disponibilidade do aplicativo. | DevOps | 
| Valide o perfil do aplicativo. | Depois que a implantação for concluída e o pod do aplicativo for implantado no Amazon EKS, o agente do Amazon CodeGuru Profiler que está configurado no aplicativo tentará enviar dados de perfil do aplicativo (CPU, resumo da pilha, latência e gargalos) para o Profiler. CodeGuru <br />Para a implantação inicial de um aplicativo, o CodeGuru Profiler leva cerca de 15 minutos para visualizar os dados de criação de perfil. | AWS DevOps | 

## Recursos relacionados
<a name="automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline-resources"></a>
+ [AWS CodePipeline documentação](https://docs.aws.amazon.com/codepipeline/index.html)
+ [Digitalizando imagens com o Trivy em uma AWS CodePipeline](https://aws.amazon.com/blogs/containers/scanning-images-with-trivy-in-an-aws-codepipeline/) (postagem AWS do blog)
+ [Melhorando seus aplicativos Java usando o Amazon CodeGuru Profiler](https://aws.amazon.com/blogs/devops/improving-your-java-applications-using-amazon-codeguru-profiler) (postagem AWS no blog)
+ [AWS Sintaxe do Security Finding Format (ASFF)](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format-syntax.html)
+ [Padrões de EventBridge eventos da Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)
+ [Atualização do Helm](https://helm.sh/docs/helm/helm_upgrade/)

## Mais informações
<a name="automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline-additional"></a>
+ CodeGuru O Profiler não deve ser confundido com o AWS X-Ray serviço em termos de funcionalidade. Recomendamos que você use o CodeGuru Profiler para identificar as linhas de código mais caras que podem causar gargalos ou problemas de segurança e corrigi-las antes que se tornem um risco potencial. O serviço X-Ray é para o monitoramento da performance de aplicações.
+ Neste padrão, as regras de eventos são associadas ao barramento de eventos padrão. Se necessário, você pode estender o padrão para usar um barramento de eventos personalizado.
+ Esse padrão usa o CodeGuru Reviewer como uma ferramenta estática de teste de segurança de aplicativos (SAST) para o código do aplicativo. Você também pode usar esse pipeline para outras ferramentas, como SonarQube o Checkmarx. Você pode adicionar as instruções de configuração de escaneamento de qualquer uma dessas ferramentas `buildspec/buildspec_secscan.yaml` para substituir as instruções de CodeGuru escaneamento.
**nota**  
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](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/codeguru-reviewer-availability-change.html) do CodeGuru Reviewer.