ตัวอย่าง AWS AppConfig Java
V2-2024
ภาพรวม
โครงการนี้เป็นตัวอย่างของตัวแทนนักพัฒนาซอฟต์แวร์ Amazon Q สำหรับการแปลงรหัส นี่คือแอปพลิเคชัน Microservice ที่ใช้ Java 1.8 ซึ่งแสดงรายการภาพยนตร์ฟรีสำหรับเดือนตามการกำหนดค่าที่เก็บไว้ในบริการ AWS AppConfig โดยใช้ AWS SDK แอปพลิเคชั่นนี้เปิดตัวครั้งแรกในปี 2020 และใช้ไลบรารีเวอร์ชันดั้งเดิมเช่น Spring Boot 2.x, Log4j 2.13.x, Mockito 1.x, Javax และ Junit 4
ตัวแทนผู้พัฒนา Amazon Q สำหรับการแปลงรหัสสามารถอัพเกรดเวอร์ชันภาษารหัสของไฟล์ของคุณได้ คุณสามารถแปลงโมดูลใน Jetbrains และโครงการหรือพื้นที่ทำงานทั้งหมดใน Visual Studio Code Amazon Q แรกสร้างรหัสของคุณในเวอร์ชันภาษาต้นฉบับและตรวจสอบว่ามีข้อมูลที่จำเป็นในการแปลงรหัสของคุณ หลังจาก Amazon Q แปลงรหัสของคุณสำเร็จคุณจะตรวจสอบและยอมรับการเปลี่ยนแปลงในสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) สำหรับข้อมูลเพิ่มเติมโปรดดูว่าตัวแทนผู้พัฒนา Amazon Q สำหรับงานแปลงรหัสทำงานอย่างไร Amazon Q สามารถอัพเกรด Java 8 และ Java 11 Code เป็นรหัส Java 17 ได้
อ้างถึงคู่มือเริ่มต้นใช้งานและ 3 วิธีที่ตัวแทนของผู้พัฒนา Amazon Q สำหรับการแปลงรหัสเร่งการอัพเกรด Java ของคุณ
คำแนะนำการติดตั้ง
ท้องถิ่น
- รวบรวมแอปพลิเคชันใน IDE ท้องถิ่น
- เปิดเทอร์มินัลใหม่และพิมพ์
java -jar .targetmovie-service-0.1.0.jar - ทำตามขั้นตอนที่ 1 ในส่วน AWS ด้านล่างเพื่อตั้งค่าการกำหนดค่า AppConfig ในโปรไฟล์บัญชี AWS เริ่มต้นของคุณ
- เปิดเบราว์เซอร์และไปที่ http: // localhost: 8080/ภาพยนตร์/getMovies
- คุณควรจะเห็นรายการภาพยนตร์ที่ชำระเงิน
aws
ขั้นตอนที่ 1: สร้างแอปพลิเคชันสภาพแวดล้อมและโปรไฟล์การกำหนดค่าใน AWS AppConfig
- เปิดคอนโซล AWS Systems Manager
- ในบานหน้าต่างการนำทางด้านซ้ายเลือก AWS AppConfig และคลิกเริ่มต้นใช้งาน
- หากหน้ายินดีต้อนรับ AWS AppConfig ปรากฏขึ้นให้คลิกสร้างแอปพลิเคชันบนการนำทางด้านซ้าย
- สำหรับชื่อให้ป้อนชื่อสำหรับแอปพลิเคชัน ( MyContainerApplication ) คุณสามารถเพิ่มคำอธิบายเพิ่มเติมและใช้แท็กกับแอปพลิเคชัน เลือกสร้างแอปพลิเคชัน
- หลังจากแอปพลิเคชันถูกสร้างขึ้นคุณจะถูกนำไปยังหน้าเว็บที่มีสภาพแวดล้อมและโปรไฟล์การกำหนดค่าเลือกสร้างสภาพแวดล้อมจากนั้นป้อนชื่อ ( MyContainerApplicationProductionEnvironment ) และคำอธิบายเสริมสำหรับสภาพแวดล้อม นอกจากนี้คุณยังสามารถเลือกเพิ่มแท็กและกำหนดค่าการเตือนภัย Amazon CloudWatch สำหรับสภาพแวดล้อมนี้
- ในการนำทางด้านบนเลือกชื่อแอปพลิเคชันและบนแท็บการกำหนดค่าและแท็บ Feature Flags เลือกสร้างโปรไฟล์การกำหนดค่าและการกำหนดค่า freeform
- ป้อนชื่อ ( MyContainerApplicationConfigurationProfile ) และคำอธิบายเสริมสำหรับโปรไฟล์การกำหนดค่า
- ภายใต้แหล่งที่มาการกำหนดค่าเลือก AWS AppConfig Hosted Configuration เนื้อหาอันเดอร์, เลือก 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.Linear50 PRENCENTESTESTERCY30 วินาทีกลยุทธ์การปรับใช้
หมายเหตุ: ขึ้นอยู่กับกลยุทธ์การปรับใช้ที่คุณเลือกการดำเนินการนี้อาจใช้เวลาไม่กี่นาที การกำหนดค่าสามารถใช้ได้กับแอปพลิเคชันทันทีที่สถานะการปรับใช้เสร็จสมบูรณ์
** v1 - 2020 **
หมายเหตุ: ใช้เวอร์ชันนี้เฉพาะในกรณีที่คุณต้องการลองใช้คุณสมบัติที่เกี่ยวข้องกับ AppConnfig
ภาพรวม
นี่คือการสาธิตแอปพลิเคชัน AWS AppConfig Java ตามที่อธิบายไว้ในบล็อกการกำหนดค่าการกำหนดค่าแอปพลิเคชันโพสต์กับเวิร์กโหลดคอนเทนเนอร์โดยใช้ AWS AppConfig การสาธิตนี้แสดงวิธีการรวมแอปพลิเคชัน Java Microservices กับบริการ AWS AppConfig พร้อมกับการใช้แคชในหน่วยความจำเพื่อจัดการการกำหนดค่าแอปพลิเคชันอย่างมีประสิทธิภาพ
AWS AppConfig ช่วยให้ลูกค้า AWS เปิดตัวการกำหนดค่าแอปพลิเคชันอย่างรวดเร็วในแอปพลิเคชันที่โฮสต์บนอินสแตนซ์ EC2 คอนเทนเนอร์ AWS Lambda แอพมือถืออุปกรณ์ IoT และเซิร์ฟเวอร์ในสถานที่ในวิธีการตรวจสอบและตรวจสอบ
รหัสตัวอย่างนี้อธิบาย
- วิธีแยกการกำหนดค่าแอปพลิเคชันออกจากรหัสแอปพลิเคชันสำหรับแอปพลิเคชันคอนเทนเนอร์
- ใช้ AWS AppConfig เพื่อจัดการและปรับใช้การกำหนดค่าแอปพลิเคชัน
- วิธีการจัดการการกำหนดค่าแอปพลิเคชันโดยอัตโนมัติและมีประสิทธิภาพในแอปพลิเคชันคอนเทนเนอร์
การสาธิตนี้ใช้เทมเพลต CloudFormation เพื่อปรับใช้คลัสเตอร์บริการคอนเทนเนอร์ที่ยืดหยุ่นของ Amazon และงาน AWS Fargate ผู้ใช้จะโคลนที่เก็บนี้สร้างอิมเมจนักเทียบท่าและผลักดันไปยังรีจิสทรีคอนเทนเนอร์ที่มีความยืดหยุ่นของ Amazon และโต้ตอบกับบริการ AWS AppConfig
แอปพลิเคชันนี้มีเลเยอร์แคชที่สร้างขึ้นเพื่อแคชคำตอบจากบริการ AWS AppConfig การโทรที่ตามมาเพื่อดึงค่าการกำหนดค่าตรวจสอบแคชก่อนและส่งคืนการตอบกลับจากแคช หากแคชว่างเปล่าก็จะโทรไปยัง AWS AppConfig API เพื่อดึงค่า การหมดอายุแคชจะขึ้นอยู่กับชุด TTL ในคุณสมบัติ
คำแนะนำการติดตั้ง
ท้องถิ่น
- รวบรวมแอปพลิเคชันใน IDE ท้องถิ่น
- เปิดเทอร์มินัลใหม่และพิมพ์
java -jar .targetmovie-service-0.1.0.jar - ทำตามขั้นตอนที่ 1 ในส่วน AWS ด้านล่างเพื่อตั้งค่าการกำหนดค่า AppConfig ในโปรไฟล์บัญชี AWS เริ่มต้นของคุณ
- เปิดเบราว์เซอร์และไปที่ http: // localhost: 8080/ภาพยนตร์/getMovies
- คุณควรจะเห็นรายการภาพยนตร์ที่ชำระเงิน 5 รายการ
aws
ขั้นตอนที่ 1: สร้างแอปพลิเคชันสภาพแวดล้อมและโปรไฟล์การกำหนดค่าใน AWS AppConfig
- เปิดคอนโซล AWS Systems Manager
- ในบานหน้าต่างการนำทางด้านซ้ายเลือก AWS AppConfig
- หากหน้ายินดีต้อนรับ AWS AppConfig ปรากฏขึ้นให้คลิกสร้างข้อมูลการกำหนดค่า มิฉะนั้นคลิกสร้างแอปพลิเคชัน
- สำหรับชื่อให้ป้อนชื่อสำหรับแอปพลิเคชัน ( MyContainerApplication ) คุณสามารถเพิ่มคำอธิบายเพิ่มเติมและใช้แท็กกับแอปพลิเคชัน เลือกสร้างแอปพลิเคชัน
- หลังจากแอปพลิเคชันถูกสร้างขึ้นคุณจะถูกนำไปยังหน้าเว็บที่มีสภาพแวดล้อมและโปรไฟล์การกำหนดค่าเลือกสร้างสภาพแวดล้อมจากนั้นป้อนชื่อ ( MyContainerApplicationProductionEnvironment ) และคำอธิบายเสริมสำหรับสภาพแวดล้อม นอกจากนี้คุณยังสามารถเลือกเพิ่มแท็กและกำหนดค่าการเตือนภัย Amazon CloudWatch สำหรับสภาพแวดล้อมนี้
- ในการนำทางด้านบนให้เลือกชื่อแอปพลิเคชันและบนแท็บโปรไฟล์การกำหนดค่าให้เลือกสร้างโปรไฟล์การกำหนดค่า
- ป้อนชื่อ ( MyContainerApplicationConfigurationProfile ) และคำอธิบายเสริมสำหรับโปรไฟล์การกำหนดค่า
- ภายใต้แหล่งที่มาการกำหนดค่าเลือก AWS AppConfig Hosted Configuration เนื้อหาอันเดอร์, เลือก JSON, วางเนื้อหาต่อไปนี้แล้วเลือกถัดไป
{
"boolEnableFeature": true,
"intItemLimit": 5
}
- (ไม่บังคับ) คุณสามารถเพิ่มตัวตรวจสอบเพื่อตรวจสอบการกำหนดค่า สำหรับข้อมูลตรวจสอบเกี่ยวกับตัวตรวจสอบในเอกสาร AWS AppConfig
- เลือกสร้างโปรไฟล์การกำหนดค่า
- เลือกเริ่มการปรับใช้
- เลือกสภาพแวดล้อมเวอร์ชันการกำหนดค่าที่โฮสต์กลยุทธ์การปรับใช้และคำอธิบายเพิ่มเติมเพื่อเริ่มกระบวนการปรับใช้
- ในการสร้างกลยุทธ์การปรับใช้ที่กำหนดเองให้เลือกสร้างกลยุทธ์การปรับใช้ หรือเลือกหนึ่งในกลยุทธ์การปรับใช้ที่กำหนดไว้ล่วงหน้าโดย AWS AppConfig สำหรับข้อมูลเพิ่มเติมตรวจสอบการสร้างกลยุทธ์การปรับใช้ในเอกสาร AWS AppConfig สำหรับวัตถุประสงค์ของโพสต์นี้เราเลือก AppConfig.Linear50 PRENCENTESTESTERCY30 วินาทีกลยุทธ์การปรับใช้
หมายเหตุ: ขึ้นอยู่กับกลยุทธ์การปรับใช้ที่คุณเลือกการดำเนินการนี้อาจใช้เวลาไม่กี่นาที การกำหนดค่าสามารถใช้ได้กับแอปพลิเคชันทันทีที่สถานะการปรับใช้เสร็จสมบูรณ์
ขั้นตอนที่ 2: ตั้งค่าแอปพลิเคชันพื้นฐานด้วย Amazon ECS และ Amazon ECR และส่วนประกอบเครือข่ายที่เกี่ยวข้องโดยใช้ AWS CloudFormation
- เปิดคอนโซล CloudFormation และคลิกที่“ สร้างสแต็ก” เลือกตัวเลือก“ ด้วยทรัพยากรใหม่”
- ในหน้าจอถัดไปภายใต้ส่วน“ ระบุเทมเพลต” เลือก“ อัปโหลดไฟล์เทมเพลต” และระบุไฟล์ที่คุณดาวน์โหลดจาก repo /templates/ecs-cluster.yml
- คลิกถัดไปให้ชื่อสแต็คเช่น“ ECSCLUSTER-DEV” และเลือก dev เป็นค่าสำหรับพารามิเตอร์สภาพแวดล้อมคลิกถัดไปกำหนดแท็กของคุณและคลิกถัดไปอีกครั้ง ในหน้าจอสุดท้ายอย่าลืมทำเครื่องหมายในส่วนของช่องทำเครื่องหมายในส่วน "ความสามารถ" และในที่สุดก็คลิกที่ปุ่ม "สร้างสแต็ก"
ขั้นตอนที่ 3: โคลนที่เก็บรหัสสร้างคอนเทนเนอร์ Docker และเผยแพร่ไปยัง Amazon ECR
- git โคลนที่เก็บนี้
- นำทางไปยังคอนโซลรีจิสทรีคอนเทนเนอร์คอนเทนเนอร์ Elastic Elastic คลิกที่ที่เก็บที่คุณสร้างและคลิกดูคำสั่ง Push
- นำทางไปยังที่เก็บรหัสในพรอมต์คำสั่งและดำเนินการคำสั่งพุชเพื่ออัปโหลดโครงการ
- เมื่อการอัปโหลดเสร็จสมบูรณ์ให้คัดลอก URL ของภาพในที่เก็บ ใช้ URL นี้เป็นพารามิเตอร์อินพุต (ImageURL) ไปยังเทมเพลต AWS CloudFormation ที่กล่าวถึงในส่วนถัดไป
ขั้นตอนที่ 4: สร้างงาน fargate และปรับใช้แอปพลิเคชันคอนเทนเนอร์ลงใน Amazon ECS บน AWS Fargate โดยใช้ AWS CloudFormation
- เปิดคอนโซล CloudFormation และคลิกที่“ สร้างสแต็ก” เลือกตัวเลือก“ ด้วยทรัพยากรใหม่”
- ในหน้าจอถัดไปภายใต้ส่วน“ ระบุเทมเพลต” เลือก“ อัปโหลดไฟล์เทมเพลต” และระบุไฟล์ที่คุณดาวน์โหลดจาก repo /templates/fargate-task.yml
- คลิกถัดไปให้ชื่อกับสแต็คเช่น“ Fargate-Task-Dev” เลือก“ dev” เป็นค่าสำหรับพารามิเตอร์สภาพแวดล้อม
- ระบุ URL รูปภาพที่ได้รับในขั้นตอนก่อนหน้าสำหรับพารามิเตอร์ ImageUrl และปล่อยให้ส่วนที่เหลือของพารามิเตอร์เป็นค่าเริ่มต้น
- คลิกถัดไปและกำหนดแท็กของคุณ คลิกถัดไปอีกครั้ง ในหน้าจอสุดท้ายอย่าลืมทำเครื่องหมายในส่วนของช่องทำเครื่องหมายในส่วน "ความสามารถ" และในที่สุดก็คลิกที่ปุ่ม "สร้างสแต็ก"
ขั้นตอนที่ 5: ตรวจสอบแอปพลิเคชันที่ปรับใช้อัปเดตข้อมูลการกำหนดค่า AppConfig และปรับใช้การกำหนดค่าที่อัปเดต
- นำทางไปยังคอนโซล AWS CloudFormation และเปิดสแต็ค Fargate-Task-Dev ที่คุณสร้างขึ้น
- คลิกที่เอาต์พุตและคัดลอก externalurl สำหรับ loadbalancer
- ตรวจสอบแอปพลิเคชันโดยใช้ URL ภายนอกสำหรับตัวโหลดบาลานซ์ http: // externalurl/ภาพยนตร์/getMovies
- ต่อไปเราจะเปลี่ยนค่าการกำหนดค่าใน AWS AppConfig และดูว่าจะสะท้อนให้เห็นอย่างไรในแอปพลิเคชันคอนเทนเนอร์
- เปิดคอนโซล AWS AppConfig คลิกที่แอปพลิเคชันของคุณและไปที่แท็บโปรไฟล์การกำหนดค่าและคลิกที่โปรไฟล์การกำหนดค่าที่คุณสร้างขึ้น
- คลิกที่สร้างภายใต้เวอร์ชันการกำหนดค่าที่โฮสต์ซึ่งจะเปิดหน้าจอใหม่ที่คุณสามารถแก้ไขข้อมูลการกำหนดค่าได้
- แก้ไขค่าการกำหนดค่าและคลิกสร้างปุ่มเวอร์ชันการกำหนดค่าโฮสต์
- ถัดไปคลิกเริ่มการปรับใช้และเลือกสภาพแวดล้อมเวอร์ชันการกำหนดค่าโฮสต์ล่าสุดกลยุทธ์การปรับใช้และคำอธิบายเพิ่มเติมเพื่อเริ่มกระบวนการปรับใช้
- เมื่อการปรับใช้เสร็จสมบูรณ์ให้ไปที่ URL ของแอปพลิเคชันอีกครั้งเพื่อดูการเปลี่ยนแปลงที่สะท้อนทันที
- โปรดทราบว่าการเปลี่ยนแปลงนี้ไม่จำเป็นต้องมีแอปพลิเคชันคอนเทนเนอร์รีสตาร์ทเนื่องจากแอปพลิเคชันดึงค่าที่อัปเดตในการโทรไปยัง AWS AppConfig ที่ตามมา
การทำความสะอาด
ลบทรัพยากรทั้งหมดที่สร้างขึ้นตลอดกระบวนการนี้และป้องกันค่าใช้จ่ายเพิ่มเติม
AppConfig
- การกำหนดค่าโฮสต์
- โปรไฟล์การกำหนดค่า
- สิ่งแวดล้อม
- แอปพลิเคชัน
แอปพลิเคชันฐานคอนเทนเนอร์และงาน fargate
- นำทางไปยังคอนโซล AWS CloudFormation
- เลือกสแต็ก Fargate-Task-Dev และคลิกลบ
- เลือกสแต็ก ECSCLUSTER-DEV และคลิกลบ
ใบอนุญาต
รหัสตัวอย่างนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT-0 ดูไฟล์ใบอนุญาต