Amostra AWS AppConfig Java
V2-2024
Visão geral
Este projeto é uma demonstração do Amazon Q Developer Agent para transformação de código. Este é um aplicativo de microsserviço baseado em Java 1.8, que exibe lista gratuita de filmes para o mês com base na configuração armazenada no serviço AWS AppConfig usando o AWS SDK. Este aplicativo foi de origem aberta em 2020 e usa versões legadas de bibliotecas como Spring Boot 2.x, log4j 2.13.x, Mockito 1.x, Javax e Junit 4.
O Amazon Q Developer Agent for Code Transformation pode atualizar a versão de idioma do código de seus arquivos. Você pode transformar um módulo em jetbrains e um projeto ou espaço de trabalho inteiro no código do Visual Studio. A Amazon Q primeiro constrói seu código na versão de linguagem de origem e verifica se possui as informações necessárias para transformar seu código. Depois que a Amazon Q transforma seu código com sucesso, você verifica e aceita as alterações em seu ambiente de desenvolvimento integrado (IDE). Para obter mais informações, consulte como o Amazon Q Developer Agent for Code Transformation funciona. Corrente, a Amazon Q pode atualizar o código Java 8 e Java 11 para o código Java 17.
Consulte o Guia de Iniciação e 3 maneiras de como a Amazon Q Developer Agent for Code Transformation acelera suas atualizações de Java.
Instruções de instalação
Local
- Compilar o aplicativo no IDE local
- Abra um novo terminal e digite
java -jar .targetmovie-service-0.1.0.jar - Siga a etapa 1 na seção AWS abaixo para configurar a configuração do AppConfig no seu perfil de conta AWS padrão
- Abra um navegador e vá para http: // localhost: 8080/filmes/getMovies
- Você deve poder ver a lista de filmes pagos
AWS
Etapa 1: Crie aplicativos, ambientes e perfil de configuração no AWS AppConfig
- Abra o console do AWS Systems Manager.
- No painel de navegação esquerda, escolha AWS AppConfig e clique em começar
- Se a página de boas -vindas da AWS AppConfig aparecer, clique em Criar aplicativo na navegação esquerda.
- Para nome, insira um nome para o aplicativo. ( MyContainerApplication ) Você pode adicionar uma descrição opcional e aplicar tags ao aplicativo. Escolha Criar aplicativo.
- Após a criação do aplicativo, você é direcionado para uma página com ambientes e perfis de configuração, escolha Criar ambiente e, em seguida, digite um nome ( MyContainerApplicationProductionOnvironment ) e descrição opcional para o ambiente. Opcionalmente, você também pode adicionar tags e configurar os alarmes do Amazon CloudWatch para esse ambiente.
- Na navegação superior, escolha o nome do aplicativo e, nos perfis de configuração e sinalizadores de recursos, escolha Criar perfil de configuração e configuração de forma livre.
- Digite um nome ( MyContainerApplicationConfigurationProfile ) e descrição opcional para o perfil de configuração.
- Sob a fonte de configuração, escolha AWS AppConfig Hosted Configuration.under Conteúdo, escolha JSON, cole o conteúdo a seguir e escolha a seguir.
{
"movies": [
{
"id": 1,
"movieName": "The Shawshank Redemption"
},
{
"id": 2,
"movieName": "City of God"
},
{
"id": 3,
"movieName": "Memento"
},
{
"id": 4,
"movieName": "The Intouchables"
},
{
"id": 5,
"movieName": "Stardust"
},
{
"id": 6,
"movieName": "Apocalypto"
},
{
"id": 7,
"movieName": "Taxi Driver"
},
{
"id": 8,
"movieName": "No Country for Old Men"
},
{
"id": 9,
"movieName": "Planet 51"
},
{
"id": 10,
"movieName": "The Beach"
}
]
}
- (Opcional) Você pode adicionar validadores para validar a configuração. Para obter informações, verifique sobre os validadores na documentação do AWS AppConfig.
- Escolha Criar perfil de configuração.
- Escolha Iniciar a implantação.
- Escolha o ambiente, a versão de configuração hospedada, a estratégia de implantação e uma descrição opcional para iniciar o processo de implantação.
- Para criar uma estratégia de implantação personalizada, escolha Criar estratégia de implantação. Ou escolha uma das estratégias de implantação predefinidas fornecidas pelo AWS AppConfig. Para obter mais informações, verifique a criação de uma estratégia de implantação na documentação do AWS AppConfig. Para os propósitos deste post, escolhemos a estratégia de implantação AppConfig.Linear50PercentVewo30SECONDS .
Nota: Dependendo da estratégia de implantação que você selecionou, esta operação pode levar alguns minutos para ser concluída. A configuração está disponível para o aplicativo assim que o estado de implantação estiver concluído.
** V1 - 2020 **
Nota: Use esta versão apenas se desejar experimentar recursos relacionados ao AppConnfig.
Visão geral
Esta é uma demonstração do aplicativo Java AppConfig da AWS, conforme explicado na implantação de configuração do aplicativo Postagem do blog para cargas de trabalho de contêiner usando o AWS AppConfig. Essa demonstração mostra como integrar um aplicativo Java Microservices com o AWS AppConfig, além de implementar um cache na memória para gerenciar com eficiência a configuração do aplicativo.
O AWS AppConfig ajuda os clientes da AWS a lançar rapidamente as configurações de aplicativos em aplicativos hospedados em instâncias, contêineres do EC2, AWS Lambda, aplicativos móveis, dispositivos IoT e servidores no local de uma maneira validada, controlada e monitorada.
Este código de amostra explica
- Como separar a configuração do aplicativo do código do aplicativo para um aplicativo de contêiner.
- Use AWS AppConfig para gerenciar e implantar a configuração do aplicativo.
- Como automatizar e gerenciar com eficiência as configurações de aplicativos em um aplicativo de contêiner.
Essa demonstração usa modelos de formação de nuvem para implantar um cluster de serviço de contêineres elásticos da Amazon e uma tarefa da AWS Fargate. Os usuários clonariam esse repositório, criariam uma imagem do Docker e pressionavam para o Amazon Elastic Container Registry e interagiam com o serviço AWS AppConfig.
Este aplicativo possui uma camada de cache incorporada para armazenar em cache as respostas do serviço AWS AppConfig. As chamadas subsequentes para buscar o valor de configuração verifica o cache primeiro e retorna a resposta do cache. Se o cache estiver vazio, ele fará uma chamada para a API APPCONFIG API para buscar o valor. O vencimento do cache é baseado no TTL definido nas propriedades.
Instruções de instalação
Local
- Compilar o aplicativo no IDE local
- Abra um novo terminal e digite
java -jar .targetmovie-service-0.1.0.jar - Siga a etapa 1 na seção AWS abaixo para configurar a configuração do AppConfig no seu perfil de conta AWS padrão
- Abra um navegador e vá para http: // localhost: 8080/filmes/getMovies
- Você deve poder ver a lista de 5 filmes pagos
AWS
Etapa 1: Crie aplicativos, ambientes e perfil de configuração no AWS AppConfig
- Abra o console do AWS Systems Manager.
- No painel de navegação esquerda, escolha AWS AppConfig.
- Se a página de boas -vindas da AWS AppConfig aparecer, clique em Criar dados de configuração. Caso contrário, clique em Criar aplicativo.
- Para nome, insira um nome para o aplicativo. ( MyContainerApplication ) Você pode adicionar uma descrição opcional e aplicar tags ao aplicativo. Escolha Criar aplicativo.
- Após a criação do aplicativo, você é direcionado para uma página com ambientes e perfis de configuração, escolha Criar ambiente e, em seguida, digite um nome ( MyContainerApplicationProductionOnvironment ) e descrição opcional para o ambiente. Opcionalmente, você também pode adicionar tags e configurar os alarmes do Amazon CloudWatch para esse ambiente.
- Na navegação superior, escolha o nome do aplicativo e, na guia Perfis de configuração, escolha Criar perfil de configuração.
- Digite um nome ( MyContainerApplicationConfigurationProfile ) e descrição opcional para o perfil de configuração.
- Sob a fonte de configuração, escolha AWS AppConfig Hosted Configuration.under Conteúdo, escolha JSON, cole o conteúdo a seguir e escolha a seguir.
{
"boolEnableFeature": true,
"intItemLimit": 5
}
- (Opcional) Você pode adicionar validadores para validar a configuração. Para obter informações, verifique sobre os validadores na documentação do AWS AppConfig.
- Escolha Criar perfil de configuração.
- Escolha Iniciar a implantação.
- Escolha o ambiente, a versão de configuração hospedada, a estratégia de implantação e uma descrição opcional para iniciar o processo de implantação.
- Para criar uma estratégia de implantação personalizada, escolha Criar estratégia de implantação. Ou escolha uma das estratégias de implantação predefinidas fornecidas pelo AWS AppConfig. Para obter mais informações, verifique a criação de uma estratégia de implantação na documentação do AWS AppConfig. Para os propósitos deste post, escolhemos a estratégia de implantação AppConfig.Linear50PercentVewo30SECONDS .
Nota: Dependendo da estratégia de implantação que você selecionou, esta operação pode levar alguns minutos para ser concluída. A configuração está disponível para o aplicativo assim que o estado de implantação estiver concluído.
Etapa 2: Configure o aplicativo base com Amazon ECS e Amazon ECR e componentes de rede associados usando a AWS CloudFormation
- Abra o CloudFormation Console e clique em "Criar pilha", selecionando a opção "com novos recursos".
- Na próxima tela, na seção "Especificar o modelo", escolha "Faça o upload do arquivo do modelo" e forneça o arquivo que você baixou no repo /templates/ecs-cluster.yml.
- Clique em Avançar, dê à pilha um nome como "EcScluster-dev" e escolha Dev como valor para o parâmetro do ambiente. Clique em Avançar, opcionalmente Defina suas tags e clique em Avançar novamente. Na última tela, não se esqueça de marcar a caixa de seleção na seção "Recursos" e, finalmente, clique no botão "Criar pilha".
Etapa 3: clone o repositório de código, crie um contêiner do Docker e publique na Amazon ECR
- Clone git este repositório
- Navegue até o console do registro de contêineres elásticos da Amazon, clique no repositório que você criou e clique em Exibir comandos push.
- Navegue até o repositório de código no prompt de comando e execute os comandos push para fazer o upload do projeto.
- Quando o upload for concluído, copie o URL da imagem no repositório. Use este URL como um parâmetro de entrada (ImageUrl) no modelo AWS CloudFormation mencionado na próxima seção.
Etapa 4: Crie uma tarefa Fargate e implante o aplicativo de contêiner no Amazon ECS na AWS Fargate usando a AWS CloudFormation
- Abra o CloudFormation Console e clique em "Criar pilha", selecionando a opção "com novos recursos".
- Na próxima tela, na seção "Especificar o modelo", escolha "Faça o upload do arquivo do modelo" e forneça o arquivo que você baixou no repo /templates/fargate-task.yml.
- Clique em Avançar, dê um nome à pilha como "Fargate-Task-Dev". Escolha “Dev” como valor para o parâmetro de ambiente.
- Forneça o URL da imagem obtido na etapa anterior para o parâmetro imageurl e deixe o restante dos parâmetros como padrão.
- Clique em Avançar e, opcionalmente, definir suas tags. Clique em Avançar novamente. Na última tela, não se esqueça de marcar a caixa de seleção na seção "Recursos" e, finalmente, clique no botão "Criar pilha".
Etapa 5: Verifique o aplicativo implantado, atualize os dados de configuração do AppConfig e implante a configuração atualizada
- Navegue para o AWS CloudFormation Console e abra a pilha Fargate-Task-Dev que você criou
- Clique em saídas e copie o externalUrl para o LoadBalancer
- Verifique o aplicativo usando o URL externo para o balanceador de carga. http: // externalurl/filmes/getMovies
- Em seguida, alteraremos o valor de configuração no AWS AppConfig e veremos como ele será refletido no aplicativo de contêiner.
- Abra o console AWS AppConfig, clique no seu aplicativo e vá para a guia Perfis de configuração e clique no perfil de configuração que você criou
- Clique em Criar versões de configuração hospedada, isso abrirá uma nova tela na qual você pode editar os dados de configuração.
- Edite o valor da configuração e clique em Criar botão de versão de configuração hospedada.
- Em seguida, clique em Iniciar a implantação e escolha o ambiente, a versão mais recente de configuração hospedada, a estratégia de implantação e uma descrição opcional para iniciar o processo de implantação.
- Quando a implantação estiver concluída, visite o URL do aplicativo novamente para ver as alterações refletidas imediatamente.
- Observe que essa alteração não exigiu que o aplicativo de contêiner fosse reiniciado desde que o aplicativo recuperou o valor atualizado na chamada subsequente ao AWS AppConfig.
Limpar
Exclua todos os recursos criados durante todo esse processo e evite custos adicionais.
AppConfig
- Configuração hospedada
- Perfil de configuração
- Ambiente
- Aplicativo
Aplicativo de contêiner base e tarefa de Fargate
- Navegue para o AWS CloudFormation Console
- Selecione a pilha Fargate-Task-Dev e clique em Excluir
- Selecione a pilha ecscluster-dev e clique em Excluir
Licença
Este código de amostra é licenciado sob a licença MIT-0. Veja o arquivo de licença.