AWS AppConfig Java Beispiel
V2-2024
Überblick
Dieses Projekt ist eine Demo von Amazon Q Developer Agent für die Code -Transformation. Dies ist eine Java 1.8 -basierte MicroService -Anwendung, in der die kostenlose Liste der Filme für den Monat basierend auf Konfiguration angezeigt wird, die im AWS AppConfig -Dienst mit AWS SDK gespeichert sind. Diese Anwendung wurde erstmals im Jahr 2020 offen gesammelt und verwendet ältere Versionen von Bibliotheken wie Spring Boot 2.x, Log4J 2.13.x, Mockito 1.x, Javax und Junit 4.
Der Amazon Q Developer -Agent für die Code -Transformation kann die Codesprachversion Ihrer Dateien aufrüsten. Sie können ein Modul in JetBrains und ein Projekt oder einen gesamten Arbeitsbereich im Visual Studio -Code transformieren. Amazon Q erstellt Ihren Code zuerst in der Quellsprachversion und überprüft, ob die Informationen zur Transformation Ihres Codes erforderlich sind. Nachdem Amazon Q Ihren Code erfolgreich verändert hat, überprüfen und akzeptieren Sie die Änderungen in Ihrer integrierten Entwicklungsumgebung (IDE). Weitere Informationen finden Sie unter der Art und Weise, wie der Amazon Q Developer Agent für Code -Transformation funktioniert.
Weitere Informationen finden Sie in der Gelt -Start -Handbuch und 3 Möglichkeiten, wie Amazon Q Developer Agent für die Code -Transformation Ihre Java -Upgrades beschleunigt.
Installationsanweisungen
Lokal
- Kompilieren Sie die Anwendung in der lokalen IDE
- Öffnen Sie ein neues Terminal und Typ
java -jar .targetmovie-service-0.1.0.jar - Befolgen Sie den Abschnitt Schritt 1 in AWS unten, um die AppConfig -Konfiguration in Ihrem Standard -AWS -Konto -Profil einzurichten
- Öffnen Sie einen Browser und gehen Sie zu http: // localhost: 8080/filme/getMovies
- Sie sollten in der Lage sein, eine Liste von bezahlten Filmen zu sehen
AWS
Schritt 1: Erstellen Sie Anwendungs-, Umgebungen und Konfigurationsprofile in AWS AppConfig
- Öffnen Sie die AWS Systems Manager -Konsole.
- Wählen Sie im Bereich der linken Navigation AWS AppConfig und klicken Sie auf Erste Schritte
- Wenn die AWS AppConfig -Begrüßungsseite angezeigt wird, klicken Sie auf die Anwendung in der linken Navigation.
- Geben Sie für den Namen einen Namen für die Anwendung ein. ( MyContainerApplication ) Sie können eine optionale Beschreibung hinzufügen und der Anwendung Tags anwenden. Wählen Sie die Anwendung erstellen.
- Nachdem die Anwendung erstellt wurde, sind Sie auf eine Seite mit Umgebungen und Konfigurationsprofilen ausgerichtet. Wählen Sie die Umgebung erstellen und geben dann einen Namen ( MyContainerApplicationProduction -Umgebung ) und eine optionale Beschreibung für die Umgebung ein. Sie können auch optional Tags hinzufügen und Amazon CloudWatch -Alarme für diese Umgebung konfigurieren.
- Wählen Sie in der oberen Navigation den Anwendungsnamen und wählen Sie auf der Registerkarte Konfigurationsprofile und Feature -Flags Konfigurationsprofile und Freeform -Konfiguration.
- Geben Sie einen Namen ( MyContainerApplicationConfigurationProfile ) und eine optionale Beschreibung für das Konfigurationsprofil ein.
- Wählen Sie unter Konfigurationsquelle AWS AppConfig Hosted Configuration.under Inhalt, wählen Sie JSON, fügen Sie den folgenden Inhalt ein und wählen Sie dann als nächstes.
{
"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"
}
]
}
- (Optional) Sie können Validatoren hinzufügen, um die Konfiguration zu validieren. Informationen finden Sie in der AWS AppConfig -Dokumentation.
- Wählen Sie das Konfigurationsprofil erstellen.
- Wählen Sie Start -Bereitstellung.
- Wählen Sie die Umgebung, die gehostete Konfigurationsversion, die Bereitstellungsstrategie und eine optionale Beschreibung, um den Bereitstellungsprozess zu starten.
- Um eine benutzerdefinierte Bereitstellungsstrategie zu erstellen, wählen Sie die Bereitstellungsstrategie erstellen. Oder wählen Sie eine der vordefinierten Bereitstellungsstrategien, die von AWS AppConfig bereitgestellt werden. Weitere Informationen finden Sie im Erstellen einer Bereitstellungsstrategie in der AWS AppConfig -Dokumentation. Für die Zwecke dieses Beitrags haben wir die Appconfig.Linear50Percentlevery30 -Sekunden -Bereitstellungsstrategie gewählt.
Hinweis: Abhängig von der von Ihnen ausgewählten Bereitstellungsstrategie kann dieser Vorgang einige Minuten dauern. Die Konfiguration steht der Anwendung zur Verfügung, sobald der Bereitstellungszustand abgeschlossen ist.
** v1 - 2020 **
HINWEIS: Verwenden Sie diese Version nur, wenn Sie die Funktionen von AppConnFig -bezogenen Funktionen ausprobieren möchten.
Überblick
Dies ist eine Demo der AWS AppConfig Java -Anwendung, wie in der Bereitstellung von Workloads der Blog -Postanmeldungskonfiguration für Container -Workloads mit AWS AppConfig erläutert. Diese Demo zeigt, wie eine Java Microservices-Anwendung in den AWS AppConfig-Dienst integriert wird und einen In-Memory-Cache implementiert, um die Anwendungskonfiguration effizient zu verwalten.
AWS AppConfig hilft AWS-Kunden, Anwendungskonfigurationen in Anwendungen, die in EC2-Instanzen, Containern, AWS Lambda, mobilen Apps, IoT-Geräten und On-Premise-Servern auf eine validierte, kontrollierte und überwachte Weise gehostet werden, schnell zu veranlassen.
Dieser Beispielcode erklärt
- So trennen Sie die Anwendungskonfiguration vom Anwendungscode für eine Containeranwendung.
- Verwenden Sie AWS AppConfig, um die Anwendungskonfiguration zu verwalten und bereitzustellen.
- So automatisieren und effizient die Anwendungskonfigurationen in einer Containeranwendung automatisieren und effizient verwalten.
Diese Demo verwendet CloudFormation -Vorlagen, um einen Amazon -Cluster für Containerdienst -Dienstleistungen und eine AWS -Fargate -Aufgabe bereitzustellen. Benutzer klonen dieses Repository, erstellen ein Docker -Image und drücken in die Registrierung von Amazon Elastical Container und interagieren mit dem AWS AppConfig -Dienst.
Diese Anwendung verfügt über eine Caching -Ebene, um die Antworten aus dem AWS AppConfig -Dienst zu zwischenstrahlen. Die nachfolgenden Aufrufe zum Abrufen des Konfigurationswerts prüfen zuerst den Cache und gibt die Antwort aus dem Cache zurück. Wenn der Cache leer ist, ruft er die AWS AppConfig -API auf, um den Wert zu holen. Die Cache -Ablauf basiert auf TTL, die in Eigenschaften eingestellt sind.
Installationsanweisungen
Lokal
- Kompilieren Sie die Anwendung in der lokalen IDE
- Öffnen Sie ein neues Terminal und Typ
java -jar .targetmovie-service-0.1.0.jar - Befolgen Sie den Abschnitt Schritt 1 in AWS unten, um die AppConfig -Konfiguration in Ihrem Standard -AWS -Konto -Profil einzurichten
- Öffnen Sie einen Browser und gehen Sie zu http: // localhost: 8080/filme/getMovies
- Sie sollten in der Lage sein, eine Liste von 5 bezahlten Filmen zu sehen
AWS
Schritt 1: Erstellen Sie Anwendungs-, Umgebungen und Konfigurationsprofile in AWS AppConfig
- Öffnen Sie die AWS Systems Manager -Konsole.
- Wählen Sie im linken Navigationsbereich AWS AppConfig.
- Wenn die AWS AppConfig -Begrüßungsseite angezeigt wird, klicken Sie auf Konfigurationsdaten erstellen. Andernfalls klicken Sie auf Anwendung erstellen.
- Geben Sie für den Namen einen Namen für die Anwendung ein. ( MyContainerApplication ) Sie können eine optionale Beschreibung hinzufügen und der Anwendung Tags anwenden. Wählen Sie die Anwendung erstellen.
- Nachdem die Anwendung erstellt wurde, sind Sie auf eine Seite mit Umgebungen und Konfigurationsprofilen ausgerichtet. Wählen Sie die Umgebung erstellen und geben dann einen Namen ( MyContainerApplicationProduction -Umgebung ) und eine optionale Beschreibung für die Umgebung ein. Sie können auch optional Tags hinzufügen und Amazon CloudWatch -Alarme für diese Umgebung konfigurieren.
- Wählen Sie in der oberen Navigation den Anwendungsnamen und wählen Sie auf der Registerkarte Konfigurationsprofile das Konfigurationsprofil erstellen.
- Geben Sie einen Namen ( MyContainerApplicationConfigurationProfile ) und eine optionale Beschreibung für das Konfigurationsprofil ein.
- Wählen Sie unter Konfigurationsquelle AWS AppConfig Hosted Configuration.under Inhalt, wählen Sie JSON, fügen Sie den folgenden Inhalt ein und wählen Sie dann als nächstes.
{
"boolEnableFeature": true,
"intItemLimit": 5
}
- (Optional) Sie können Validatoren hinzufügen, um die Konfiguration zu validieren. Informationen finden Sie in der AWS AppConfig -Dokumentation.
- Wählen Sie das Konfigurationsprofil erstellen.
- Wählen Sie Start -Bereitstellung.
- Wählen Sie die Umgebung, die gehostete Konfigurationsversion, die Bereitstellungsstrategie und eine optionale Beschreibung, um den Bereitstellungsprozess zu starten.
- Um eine benutzerdefinierte Bereitstellungsstrategie zu erstellen, wählen Sie die Bereitstellungsstrategie erstellen. Oder wählen Sie eine der vordefinierten Bereitstellungsstrategien, die von AWS AppConfig bereitgestellt werden. Weitere Informationen finden Sie im Erstellen einer Bereitstellungsstrategie in der AWS AppConfig -Dokumentation. Für die Zwecke dieses Beitrags haben wir die Appconfig.Linear50Percentlevery30 -Sekunden -Bereitstellungsstrategie gewählt.
Hinweis: Abhängig von der von Ihnen ausgewählten Bereitstellungsstrategie kann dieser Vorgang einige Minuten dauern. Die Konfiguration steht der Anwendung zur Verfügung, sobald der Bereitstellungszustand abgeschlossen ist.
Schritt 2: Richten Sie die Basisanwendung mit Amazon ECS und Amazon ECR und zugehörigen Netzwerkkomponenten mithilfe von AWS CloudFormation ein
- Öffnen Sie die CloudFormation -Konsole und klicken Sie auf "Stack erstellen" und wählen Sie die Option "mit neuen Ressourcen" aus.
- Wählen Sie im nächsten Bildschirm unter dem Abschnitt "Vorlage fest angeben" .
- Klicken Sie auf Weiter, geben Sie dem Stapel einen Namen wie „ecscluster-dev“ an und wählen Sie Dev als Wert für den Umgebungsparameter. Vergessen Sie auf dem letzten Bildschirm nicht, das Kontrollkästchen im Abschnitt "Funktionen" anzukreuzen, und klicken Sie schließlich auf die Schaltfläche "Stapel erstellen".
Schritt 3: Klonen Sie das Code -Repository, erstellen Sie einen Docker -Container und veröffentlichen Sie an Amazon ECR
- Git -Klon dieses Repository
- Navigieren Sie zu Amazon Elastic Container Registry Console, klicken Sie auf das von Ihnen erstellte Repository und klicken Sie auf Ansicht.
- Navigieren Sie in der Eingabeaufforderung zum Code -Repository und führen Sie die Push -Befehle aus, um das Projekt hochzuladen.
- Wenn der Upload abgeschlossen ist, kopieren Sie die URL des Bildes im Repository. Verwenden Sie diese URL als Eingabeparameter (ImageRl) für die im nächsten Abschnitt erwähnte AWS -CloudFormation -Vorlage.
Schritt 4: Erstellen Sie eine Fargate -Aufgabe und stellen Sie die Containeranwendung in Amazon ECS auf AWS Fargate mithilfe der AWS -CloudFormation ein
- Öffnen Sie die CloudFormation -Konsole und klicken Sie auf "Stack erstellen" und wählen Sie die Option "mit neuen Ressourcen" aus.
- Wählen Sie im nächsten Bildschirm unter dem Abschnitt "Vorlage fest angeben" "Vorlagendatei hochladen" und geben Sie die von Ihnen heruntergeladene Datei an .
- Klicken Sie auf Weiter, geben Sie dem Stapel einen Namen wie "Fargate-Task-Dev". Wählen Sie "Dev" als Wert für den Umgebungsparameter.
- Geben Sie die im vorherige Schritt erhaltene Bild -URL für den ImageRl -Parameter an und lassen Sie den Rest der Parameter als Standardeinstellung.
- Klicken Sie auf Weiter und definieren Sie optional Ihre Tags. Klicken Sie erneut auf Weiter. Vergessen Sie auf dem letzten Bildschirm nicht, das Kontrollkästchen im Abschnitt "Funktionen" anzukreuzen, und klicken Sie schließlich auf die Schaltfläche "Stapel erstellen".
Schritt 5: Überprüfen Sie die bereitgestellte Anwendung, aktualisieren Sie die AppConfig -Konfigurationsdaten und stellen Sie die aktualisierte Konfiguration bereit
- Navigieren Sie zur AWS CloudFormation Console und öffnen Sie den von Ihnen erstellten Fargate-Task-Dev-Stapel
- Klicken Sie auf die Ausgänge und kopieren Sie die externalurl für den LoadBalancer
- Überprüfen Sie die Anwendung mit der externen URL für den Lastausgleich. http: // externalurl/movies/getMovies
- Als nächstes ändern wir den Konfigurationswert im AWS AppConfig und sehen, wie er sich in der Containeranwendung widerspiegelt.
- Öffnen Sie die AWS AppConfig -Konsole, klicken Sie auf Ihre Anwendung und wenden Sie sich zur Registerkarte Konfigurationsprofile und klicken Sie auf das von Ihnen erstellte Konfigurationsprofil
- Klicken Sie unter gehosteten Konfigurationsversionen erstellen. Dadurch wird ein neuer Bildschirm geöffnet, auf dem Sie die Konfigurationsdaten bearbeiten können.
- Bearbeiten Sie den Konfigurationswert und klicken Sie auf die Schaltfläche Hosted Configuration Version erstellen.
- Klicken Sie anschließend auf Start Deployment und wählen Sie die Umgebung, die neueste gehostete Konfigurationsversion, die Bereitstellungsstrategie und eine optionale Beschreibung, um den Bereitstellungsprozess zu starten.
- Sobald die Bereitstellung abgeschlossen ist, besuchen Sie die Anwendungs -URL erneut, um die Änderungen sofort zu sehen.
- Beachten Sie, dass bei dieser Änderung nicht die Containeranwendung neu gestartet werden musste, da die Anwendung den aktualisierten Wert im nachfolgenden Aufruf an AWS AppConfig abgerufen hat.
Aufräumarbeiten
Löschen Sie alle in diesem Prozess erstellten Ressourcen und verhindern Sie zusätzliche Kosten.
AppConfig
- Gehostete Konfiguration
- Konfigurationsprofil
- Umfeld
- Anwendung
Basis -Container -Anwendung und Fargate -Aufgabe
- Navigieren Sie zur AWS CloudFormation Console
- Wählen Sie den Fargate-Task-Dev-Stack aus und klicken Sie auf Löschen
- Wählen Sie den ECSCLUSTER-DEV-Stack aus und klicken Sie auf Löschen
Lizenz
Dieser Beispielcode ist unter der MIT-0-Lizenz lizenziert. Siehe die Lizenzdatei.