AWS AppConfig Java樣本
V2-2024
概述
該項目是用於代碼轉換的Amazon Q開發人員代理的演示。這是一個基於Java 1.8的微服務應用程序,它根據使用AWS SDK中存儲在AWS AppConfig服務中的配置顯示了本月的免費電影列表。該應用程序首先是在2020年開放的,並使用了諸如Spring Boot 2.X,Log4J 2.13.x,Mockito 1.X,Javax和Junit 4等庫的遺留版本。
代碼轉換的Amazon Q開發人員代理可以升級文件的代碼語言版本。您可以在Jetbrains和Visual Studio代碼中的項目或整個工作區中轉換一個模塊。 Amazon Q首先在源語言版本中構建您的代碼,並驗證它具有轉換代碼所需的信息。在Amazon Q成功地轉換您的代碼之後,您將驗證並接受集成開發環境(IDE)的更改。有關更多信息,請參閱代碼轉換的Amazon Q開發人員如何工作。目前,Amazon Q可以將Java 8和Java 11代碼升級為Java 17代碼。
請參閱“入門指南”和3種Amazon Q Developer用於代碼轉換的方式如何加速您的Java升級。
安裝說明
當地的
- 在本地IDE中編譯應用程序
- 打開一個新的終端和類型
java -jar .targetmovie-service-0.1.0.jar - 請按照下面的AWS部分中的步驟1進行操作,以在默認AWS帳戶配置文件中設置AppConfig配置
- 打開瀏覽器,然後訪問http:// localhost:8080/movie/getMovies
- 您應該可以看到付費電影的列表
AWS
步驟1:在AWS AppConfig中創建應用程序,環境和配置配置文件
- 打開AWS系統管理器控制台。
- 在左導航窗格中,選擇AWS AppConfig,然後單擊“開始”
- 如果出現AWS AppConfig歡迎頁面,請單擊左導航上的創建應用程序。
- 為了姓名,請輸入應用程序的名稱。 ( MyContainerApplication )您可以添加可選描述並將標籤應用於應用程序。選擇創建應用程序。
- 創建應用程序後,您將被指向帶有環境和配置配置文件的頁面,然後選擇“創建環境”,然後輸入一個名稱( MyContainerApplicationProductionEnvironments )和對環境的可選描述。您還可以選擇添加標籤並為此環境配置Amazon CloudWatch警報。
- 在頂部導航中,選擇應用程序名稱,然後在“配置配置文件”和“特徵標誌”選項卡上,選擇“創建配置配置文件”和“自由形式配置”。
- 輸入一個名稱( MyContainerApplicationConfigurationProfile )和配置配置文件的可選描述。
- 在配置源下,選擇AWS AppConfig託管configuration.under content,選擇JSON,粘貼以下內容,然後選擇下一個。
{
"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"
}
]
}
- (可選)您可以添加驗證器來驗證配置。有關信息,請檢查有關AWS AppConfig文檔中驗證器的信息。
- 選擇創建配置配置文件。
- 選擇“開始部署”。
- 選擇環境,託管配置版本,部署策略和可選描述以開始部署過程。
- 要創建自定義部署策略,請選擇創建部署策略。或選擇AWS AppConfig提供的預定義部署策略之一。有關更多信息,請在AWS AppConfig文檔中檢查創建部署策略。出於本文的目的,我們選擇了AppConfig.linear50percentevery 30秒的部署策略。
注意:根據您選擇的部署策略,此操作可能需要幾分鐘才能完成。部署狀態完成後,該配置將立即用於應用程序。
** V1- 2020 **
注意:僅當您想嘗試AppConnfig相關的功能時,才使用此版本。
概述
這是AWS AppConfig Java應用程序的演示,如使用AWS AppConfig的Blog Post應用程序配置部署到容器工作負載中所述。該演示顯示瞭如何將Java Microservices應用程序與AWS AppConfig服務集成在一起,以及實現內存緩存以有效管理應用程序配置。
AWS AppConfig可幫助AWS客戶以EC2實例,容器,AWS Lambda,移動應用程序,IoT設備和本地服務器的應用程序快速推出應用程序配置。
此示例代碼說明了
- 如何將應用程序配置與容器化應用程序的應用程序代碼分開。
- 使用AWS AppConfig來管理和部署應用程序配置。
- 如何在容器化應用程序中自動化並有效地管理應用程序配置。
該演示使用雲形式模板來部署Amazon彈性容器服務群集和AWS Fargate任務。用戶將克隆此存儲庫,構建Docker映像並將其推向Amazon彈性容器註冊表,並與AWS AppConfig服務進行交互。
該應用程序內置了一個緩存層,以緩存AWS AppConfig服務的響應。獲取配置值的後續調用首先檢查緩存,並返回緩存中的響應。如果緩存為空,則可以調用AWS AppConfig API獲取值。緩存到期基於屬性中的TTL設置。
安裝說明
當地的
- 在本地IDE中編譯應用程序
- 打開一個新的終端和類型
java -jar .targetmovie-service-0.1.0.jar - 請按照下面的AWS部分中的步驟1進行操作,以在默認AWS帳戶配置文件中設置AppConfig配置
- 打開瀏覽器,然後訪問http:// localhost:8080/movie/getMovies
- 您應該能夠看到5部付費電影的列表
AWS
步驟1:在AWS AppConfig中創建應用程序,環境和配置配置文件
- 打開AWS系統管理器控制台。
- 在左導航窗格中,選擇AWS AppConfig。
- 如果出現AWS AppConfig歡迎頁面,請單擊“創建配置數據”。否則,單擊創建應用程序。
- 為了姓名,請輸入應用程序的名稱。 ( MyContainerApplication )您可以添加可選描述並將標籤應用於應用程序。選擇創建應用程序。
- 創建應用程序後,您將被指向帶有環境和配置配置文件的頁面,然後選擇“創建環境”,然後輸入一個名稱( MyContainerApplicationProductionEnvironments )和對環境的可選描述。您還可以選擇添加標籤並為此環境配置Amazon CloudWatch警報。
- 在頂部導航中,選擇應用程序名稱,然後在“配置配置文件”選項卡上,選擇“創建配置配置文件”。
- 輸入一個名稱( MyContainerApplicationConfigurationProfile )和配置配置文件的可選描述。
- 在配置源下,選擇AWS AppConfig託管configuration.under content,選擇JSON,粘貼以下內容,然後選擇下一個。
{
"boolEnableFeature": true,
"intItemLimit": 5
}
- (可選)您可以添加驗證器來驗證配置。有關信息,請檢查有關AWS AppConfig文檔中驗證器的信息。
- 選擇創建配置配置文件。
- 選擇“開始部署”。
- 選擇環境,託管配置版本,部署策略和可選描述以開始部署過程。
- 要創建自定義部署策略,請選擇創建部署策略。或選擇AWS AppConfig提供的預定義部署策略之一。有關更多信息,請在AWS AppConfig文檔中檢查創建部署策略。出於本文的目的,我們選擇了AppConfig.linear50percentevery 30秒的部署策略。
注意:根據您選擇的部署策略,此操作可能需要幾分鐘才能完成。部署狀態完成後,該配置將立即用於應用程序。
步驟2:使用AMAZON ECS和Amazon ECR設置基本應用程序以及使用AWS CloudFormation
- 打開雲形式控制台,然後單擊“創建堆棧”,選擇“使用新資源”選項。
- 在下一個屏幕中,在“指定模板”部分下,選擇“上傳模板文件”,然後提供您從repo /templates/ecs-cluster.yml下載的文件。
- 單擊下一步,給堆棧一個名稱,例如“ ecscluster-dev”,然後選擇dev作為環境參數的值。clicknext,可選地定義您的標籤,然後再次單擊下一個。在最後一個屏幕上,不要忘記在“功能”部分中打勾複選框,最後單擊“創建堆棧”按鈕。
步驟3:克隆代碼存儲庫,創建Docker容器並發佈到Amazon ECR
- git克隆這個存儲庫
- 導航到Amazon彈性容器註冊表,單擊您創建的存儲庫,然後單擊“視圖”推送命令。
- 導航到命令提示符中的代碼存儲庫,並執行推送命令以上上傳項目。
- 上傳完成後,請在存儲庫中復製圖像的URL。將此URL用作輸入參數(ImageUrl),以與下一節中提到的AWS雲形式模板。
步驟4:使用AWS CloudFormation創建Fargate任務並將容器應用程序部署到AWS Fargate上的Amazon ECS
- 打開雲形式控制台,然後單擊“創建堆棧”,選擇“使用新資源”選項。
- 在下一個屏幕中,在“指定模板”部分下,選擇“上傳模板文件”,然後提供您從repo /templates/fargate-task.yml下載的文件。
- 單擊“下一步”,為“ Fargate-Task-dev”之類的堆棧命名。選擇“開發”作為環境參數的值。
- 提供圖像URL在上一個步驟中為ImageUrl參數獲得,並將其餘參數留為默認情況。
- 單擊“下一步”,然後選擇定義您的標籤。再次單擊下一個。在最後一個屏幕上,不要忘記在“功能”部分中打勾複選框,最後單擊“創建堆棧”按鈕。
步驟5:驗證已部署的應用程序,更新AppConfig配置數據並部署更新的配置
- 導航到AWS CloudFormation Console並打開您創建的Fargate-Task-Dev堆棧
- 單擊輸出並複制LoadBalancer的externalurl
- 通過將外部URL用於負載平衡器來驗證應用程序。 http:// externalurl/tovers/getMovies
- 接下來,我們將更改AWS AppConfig中的配置值,並查看如何在容器應用程序中反映其。
- 打開AWS AppConfig控制台,單擊您的應用程序,然後轉到配置配置文件選項卡,然後單擊您創建的配置配置文件
- 單擊在託管配置版本下創建的創建,這將打開一個新屏幕,您可以在其中編輯配置數據。
- 編輯配置值,然後單擊創建託管的配置版本按鈕。
- 接下來,單擊“開始部署”,然後選擇環境,最新的託管配置版本,部署策略和可選描述以開始部署過程。
- 部署完成後,再次訪問應用程序URL,以立即查看更改。
- 請注意,此更改不需要重新啟動容器應用程序,因為該應用程序在隨後的撥打AWS AppConfig中檢索了更新的值。
清理
在整個過程中刪除在此過程中創建的所有資源,並防止額外的成本。
AppConfig
- 託管配置
- 配置配置文件
- 環境
- 應用
基本容器應用程序和Fargate任務
- 導航到AWS CloudFormation Console
- 選擇fargate-task-dev堆棧,然後單擊刪除
- 選擇EcsCluster-DEV堆棧,然後單擊DELETE
執照
該示例代碼已根據MIT-0許可證獲得許可。請參閱許可證文件。