Échantillon AWS AppConfig Java
V2-2024
Aperçu
Ce projet est une démo de l'agent de développeur Amazon Q pour la transformation du code. Il s'agit d'une application de microservice basée sur Java 1.8 qui affiche une liste gratuite de films pour le mois basée sur la configuration stockée dans le service AWS AppConfig à l'aide du SDK AWS. Cette application a d'abord été ouverte en 2020 et utilise des versions héritées de bibliothèques telles que Spring Boot 2.x, Log4j 2.13.x, Mockito 1.x, Javax et Junit 4.
L'agent de développeur Amazon Q pour la transformation de code peut mettre à niveau la version de la langue de code de vos fichiers en place. Vous pouvez transformer un module dans JetBrains et un projet ou un espace de travail entier dans le code Visual Studio. Amazon Q construit d'abord votre code dans la version de la langue source et vérifie qu'il a les informations nécessaires pour transformer votre code. Après Amazon Q qui a réussi à transformer votre code, vous vérifiez et acceptez les modifications de votre environnement de développement intégré (IDE). Pour plus d'informations, voyez comment fonctionne l'agent de développeur Amazon Q pour la transformation de code.
Reportez-vous à Getter Started Guide et 3 façons comment Amazon Q Developer Agent for Code Transformation accélère vos mises à niveau Java.
Instructions d'installation
Locale
- Compiler l'application dans l'IDE local
- Ouvrez un nouveau terminal et tapez
java -jar .targetmovie-service-0.1.0.jar - Suivez l'étape 1 dans la section AWS ci-dessous pour configurer la configuration AppConfig dans votre profil de compte par défaut AWS
- Ouvrez un navigateur et allez sur http: // localhost: 8080 / films / getmovies
- Vous devriez pouvoir voir la liste des films payants
AWS
Étape 1: Créez des applications, des environnements et un profil de configuration dans AWS AppConfig
- Ouvrez la console AWS Systems Manager.
- Dans le volet de navigation gauche, choisissez AWS AppConfig et cliquez sur Démarrer
- Si la page d'accueil AWS AppConfig apparaît, cliquez sur Créer une application sur la navigation gauche.
- Pour le nom, entrez un nom pour l'application. ( MyContainerApplication ) Vous pouvez ajouter une description facultative et appliquer des balises à l'application. Choisissez Créer l'application.
- Une fois l'application créée, vous êtes dirigé vers une page avec des environnements et des profils de configuration Choisissez Créer un environnement, puis entrez un nom ( MyContainerApplicationProductionNironmentment ) et une description facultative de l'environnement. Vous pouvez également ajouter éventuellement des balises et configurer les alarmes Amazon CloudWatch pour cet environnement.
- Dans la navigation supérieure, choisissez le nom de l'application, et sur l'onglet Profils de configuration et les indicateurs de fonctionnalité, choisissez Créer un profil de configuration et la configuration Freeform.
- Entrez un nom ( myContainerApplicationConfigurationProfile ) et une description facultative du profil de configuration.
- Sous Source de configuration, choisissez AWS AppConfig Hosted Configuration.
{
"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"
}
]
}
- (Facultatif) Vous pouvez ajouter des validateurs pour valider la configuration. Pour plus d'informations, vérifiez les validateurs dans la documentation AWS AppConfig.
- Choisissez Créer un profil de configuration.
- Choisissez Démarrer le déploiement.
- Choisissez l'environnement, la version de configuration hébergée, la stratégie de déploiement et une description facultative pour démarrer le processus de déploiement.
- Pour créer une stratégie de déploiement personnalisée, choisissez Créer une stratégie de déploiement. Ou choisissez l'une des stratégies de déploiement prédéfinies fournies par AWS AppConfig. Pour plus d'informations, vérifiez la création d'une stratégie de déploiement dans la documentation AWS AppConfig. Aux fins de cet article, nous avons choisi la stratégie de déploiement AppConfig.Linear50PERCETERVERY30SECONDS .
Remarque: Selon la stratégie de déploiement que vous avez sélectionnée, cette opération peut prendre quelques minutes. La configuration est disponible pour l'application dès que l'état de déploiement sera terminé.
** V1 - 2020 **
Remarque: utilisez cette version uniquement si vous souhaitez essayer les fonctionnalités liées à AppConnfig.
Aperçu
Il s'agit d'une démo de l'application AWS AppConfig Java, comme expliqué dans le déploiement de configuration de l'application de billet de blog sur les charges de travail de conteneur à l'aide d'AWS AppConfig. Cette démo montre comment intégrer une application Java Microservices avec le service AWS AppConfig ainsi que la mise en œuvre d'un cache en mémoire pour gérer efficacement la configuration de l'application.
AWS AppConfig aide les clients AWS à déployer rapidement des configurations d'applications sur les applications hébergées sur les instances EC2, les conteneurs, les Lambda AWS, les applications mobiles, les appareils IoT et les serveurs sur site d'une manière validée, contrôlée et surveillée.
Cet exemple de code explique
- Comment séparer la configuration de l'application à partir du code d'application pour une application conteneurisée.
- Utilisez AWS AppConfig pour gérer et déployer la configuration de l'application.
- Comment automatiser et gérer efficacement les configurations d'application dans une application conteneurisée.
Cette démo utilise des modèles CloudFormation pour déployer un cluster de service de conteneur élastique Amazon et une tâche AWS Fargate. Les utilisateurs cloneraient ce référentiel, construisaient une image Docker et poussaient au registre des conteneurs élastiques Amazon et interagissent avec le service AWS AppConfig.
Cette application a une couche de mise en cache intégrée pour mettre en cache les réponses du service AWS AppConfig. Les appels suivants pour récupérer la valeur de configuration vérifient d'abord le cache et renvoie la réponse du cache. Si le cache est vide, il passe un appel à l'API AWS AppConfig pour récupérer la valeur. L'expiration du cache est basée sur TTL définie dans les propriétés.
Instructions d'installation
Locale
- Compiler l'application dans l'IDE local
- Ouvrez un nouveau terminal et tapez
java -jar .targetmovie-service-0.1.0.jar - Suivez l'étape 1 dans la section AWS ci-dessous pour configurer la configuration AppConfig dans votre profil de compte par défaut AWS
- Ouvrez un navigateur et allez sur http: // localhost: 8080 / films / getmovies
- Vous devriez pouvoir voir la liste de 5 films payants
AWS
Étape 1: Créez des applications, des environnements et un profil de configuration dans AWS AppConfig
- Ouvrez la console AWS Systems Manager.
- Dans le volet de navigation gauche, choisissez AWS AppConfig.
- Si la page d'accueil AWS AppConfig apparaît, cliquez sur Créer des données de configuration. Sinon, cliquez sur Créer l'application.
- Pour le nom, entrez un nom pour l'application. ( MyContainerApplication ) Vous pouvez ajouter une description facultative et appliquer des balises à l'application. Choisissez une application Créer.
- Une fois l'application créée, vous êtes dirigé vers une page avec des environnements et des profils de configuration Choisissez Créer un environnement, puis entrez un nom ( MyContainerApplicationProductionNironmentment ) et une description facultative de l'environnement. Vous pouvez également ajouter éventuellement des balises et configurer les alarmes Amazon CloudWatch pour cet environnement.
- Dans la navigation supérieure, choisissez le nom de l'application et sur l'onglet Profils de configuration, choisissez Créer un profil de configuration.
- Entrez un nom ( myContainerApplicationConfigurationProfile ) et une description facultative du profil de configuration.
- Sous Source de configuration, choisissez AWS AppConfig Hosted Configuration.
{
"boolEnableFeature": true,
"intItemLimit": 5
}
- (Facultatif) Vous pouvez ajouter des validateurs pour valider la configuration. Pour plus d'informations, vérifiez les validateurs dans la documentation AWS AppConfig.
- Choisissez Créer un profil de configuration.
- Choisissez Démarrer le déploiement.
- Choisissez l'environnement, la version de configuration hébergée, la stratégie de déploiement et une description facultative pour démarrer le processus de déploiement.
- Pour créer une stratégie de déploiement personnalisée, choisissez Créer une stratégie de déploiement. Ou choisissez l'une des stratégies de déploiement prédéfinies fournies par AWS AppConfig. Pour plus d'informations, vérifiez la création d'une stratégie de déploiement dans la documentation AWS AppConfig. Aux fins de cet article, nous avons choisi la stratégie de déploiement AppConfig.Linear50PERCETERVERY30SECONDS .
Remarque: Selon la stratégie de déploiement que vous avez sélectionnée, cette opération peut prendre quelques minutes. La configuration est disponible pour l'application dès que l'état de déploiement sera terminé.
Étape 2: Configurez l'application de base avec Amazon ECS et Amazon ECR et les composants réseau associés à l'aide d'AWS Cloudformation
- Ouvrez la console Cloudformation et cliquez sur «Créer une pile», en sélectionnant l'option «avec de nouvelles ressources».
- Dans l'écran suivant, dans la section «Spécifier le modèle», choisissez «Télécharger le fichier de modèle», et fournissez le fichier que vous avez téléchargé à partir du repo /templates/ecs-cluster.yml.
- Cliquez sur Suivant, donnez à la pile un nom comme «ECSCluster-Dev», et choisissez Dev comme valeur pour le paramètre de l'environnement. Cliquez ensuite, définissez éventuellement vos balises, puis cliquez à nouveau. Sur le dernier écran, n'oubliez pas de cocher la case dans la section "Capacités", et enfin cliquez sur le bouton "Créer une pile".
Étape 3: Clone le référentiel de code, créer un conteneur Docker et publier sur Amazon ECR
- Git clone ce référentiel
- Accédez à Amazon Elastic Container Registry Console, cliquez sur le référentiel que vous avez créé et cliquez sur Afficher les commandes push.
- Accédez au référentiel de code dans l'invite de commande et exécutez les commandes push pour télécharger le projet.
- Une fois le téléchargement terminé, copiez l'URL de l'image dans le référentiel. Utilisez cette URL comme paramètre d'entrée (ImageUrl) sur le modèle AWS Cloudformation mentionné dans la section suivante.
Étape 4: Créez une tâche Fargate et déployez l'application de conteneur dans Amazon ECS sur AWS Fargate en utilisant AWS Cloudformation
- Ouvrez la console Cloudformation et cliquez sur «Créer une pile», en sélectionnant l'option «avec de nouvelles ressources».
- Dans l'écran suivant, dans la section «Spécifier le modèle», choisissez «Télécharger le fichier de modèle», et fournissez le fichier que vous avez téléchargé à partir du repo /templates/fargate-task.yml.
- Cliquez sur Suivant, donnez un nom à la pile comme «Fargate-task-DEV». Choisissez «Dev» comme valeur pour le paramètre d'environnement.
- Fournissez l'URL d'image obtenue à l'étape précédente pour le paramètre ImageUrl et laissez le reste des paramètres par défaut.
- Cliquez sur Suivant et définissez éventuellement vos balises. Cliquez à nouveau sur Suivant. Sur le dernier écran, n'oubliez pas de cocher la case dans la section "Capacités", et enfin cliquez sur le bouton "Créer une pile".
Étape 5: Vérifiez l'application déployée, mettez à jour les données de configuration AppConfig et déployez la configuration mise à jour
- Accédez à la console AWS Cloudformation et ouvrez la pile Fargate-Task-Dev que vous avez créée
- Cliquez sur les sorties et copiez l'externalurl pour le chargeur de chargement
- Vérifiez l'application en utilisant l'URL externe pour l'équilibreur de charge. http: // externalurl / films / getmovies
- Ensuite, nous modifierons la valeur de configuration dans l'AWS AppConfig et verrons comment il sera reflété dans l'application Container.
- Ouvrez la console AWS AppConfig, cliquez sur votre application et accédez à l'onglet Profils de configuration et cliquez sur le profil de configuration que vous avez créé
- Cliquez sur Créer des versions de configuration hébergée, cela ouvrira un nouvel écran où vous pouvez modifier les données de configuration.
- Modifiez la valeur de configuration et cliquez sur le bouton Créer la version de configuration hébergée.
- Ensuite, cliquez sur Démarrer le déploiement et choisissez l'environnement, la dernière version de configuration hébergée, la stratégie de déploiement et une description facultative pour démarrer le processus de déploiement.
- Une fois le déploiement terminé, visitez à nouveau l'URL de l'application pour voir les modifications reflétées immédiatement.
- Notez que cette modification ne nécessitait pas que l'application de conteneur soit redémarrée car l'application a récupéré la valeur mise à jour dans l'appel suivant à AWS AppConfig.
Nettoyage
Supprimez toutes les ressources créées tout au long de ce processus et empêchez les coûts supplémentaires.
AppConfig
- Configuration hébergée
- Profil de configuration
- Environnement
- Application
Application de conteneur de base et tâche Fargate
- Accéder à la console AWS Cloudformation
- Sélectionnez la pile Fargate-Task-DEV et cliquez sur Supprimer
- Sélectionnez la pile ECSCluster-DEV et cliquez sur Supprimer
Licence
Cet exemple de code est concédé sous licence MIT-0. Voir le fichier de licence.