= วิธีใช้ AWS Amplify เพื่อปรับใช้แอปพลิเคชัน React = == คำแนะนำในการปรับใช้ React Applications ด้วย AWS Amplify == ![ ](httpsmiro.medium.com/max/1400/1*pKiBeVwoxaHc_QlhIpVgSA.gif) ตั้งแต่ฉันเริ่มให้คำปรึกษาในฐานะวิศวกรซอฟต์แวร์ ฉันต้องการที่จะรวบรวมเว็บไซต์พอร์ตโฟลิโอที่แสดงผลงาน โครงการส่วนบุคคลและมืออาชีพที่ฉันทำอยู่ วันหยุดฤดูหนาวนี้ ฉันใช้เวลาไปกับการออกแบบ พัฒนา และปรับใช้ไซต์พอร์ตโฟลิโอของฉัน และในบทความนี้ ฉันจะแนะนำคุณเกี่ยวกับวิธีการปรับใช้กับ AWS Amplify คุณสามารถดูเว็บไซต์ได้ที่ dan-murphy.com และโค้ดบน GitHub = ความเป็นมาโดยย่อ = งานระดับมืออาชีพส่วนใหญ่ของฉันเกี่ยวข้องกับการสร้างแอปพลิเคชันที่ขับเคลื่อนด้วยข้อมูลและการปรับปรุงดาต้าไปป์ไลน์ เพื่อให้งานเหล่านี้สำเร็จ ฉันใช้ Python และ Ruby เป็นประจำและรวม JavaScript สำหรับงานส่วนหน้า ในความพยายามที่จะคุ้นเคยกับ React มากขึ้น ฉันตัดสินใจใช้เฟรมเวิร์กเพื่อสร้างเว็บไซต์พอร์ตโฟลิโอของฉัน = การตั้งค่าแอปพลิเคชัน = ขั้นตอนแรกที่ฉันทำคือตัดสินใจว่าจะจัดโครงสร้างแอปพลิเคชันอย่างไร ฉันใช้ create-react-app เป็นเทมเพลตพื้นฐานสำหรับไดเร็กทอรีของฉัน จากนั้นจัดโครงสร้างแอปพลิเคชันใหม่ด้วยโฟลเดอร์เพิ่มเติมสองสามโฟลเดอร์ การตั้งค่าขั้นสุดท้ายมีลักษณะดังนี้: src ส่วนประกอบ âÃÂÃÂเอกสารสำคัญ âÃÂÃÂพิเศษ âÃÂÃÂข้อมูล âÃÂÃÂimgs หน้า âÃÂÃÂเนื้อหา âÃÂÃÂข้อมูล สไตล์ การทดสอบ ติดตั้ง การเปลี่ยนแปลงที่โดดเด่นบางประการคือ **ส่วนประกอบ** , และ **หน้า** ไดเรกทอรี **สไตล์** , : นี่คือที่ที่ฉันเก็บส่วนประกอบทั้งหมดสำหรับแอปพลิเคชัน การจัดเก็บส่วนประกอบไว้ในโฟลเดอร์ส่วนกลางช่วยให้นำกลับมาใช้ใหม่และปรับโครงสร้างโค้ดได้ง่ายขึ้น และยังช่วยให้ผู้อื่นเข้าใจได้ง่ายขึ้นด้วย ส่วนประกอบบางอย่างที่ประกอบกันเป็นเว็บไซต์ผลงานของฉันคือ ส่วนประกอบ หัวข้อ, ส่วนท้ายและ แถบด้านข้างโครงการ : ที่นี่ฉันสร้างหน้าเฉพาะสำหรับแอปพลิเคชัน ฉันนำเข้าส่วนประกอบที่จำเป็นจากไฟล์ หน้า โฟลเดอร์แล้วรวมเข้าด้วยกันเพื่อออกแบบเพจ นี่คือตัวอย่างของวิธีที่ฉันทำสิ่งนี้ให้กับ หน้าแรกของส่วนประกอบ: : นี่คือที่ที่ฉันกำหนดสไตล์ CSS ส่วนกลางสำหรับแอปพลิเคชัน ฉันรักที่จะใช้ สไตล์ styled-components สำหรับแต่ละคอมโพเนนต์ แต่ฉันก็พบว่าการสร้างสไตล์ส่วนกลางที่พร้อมใช้งานสำหรับแต่ละหน้านั้นมีประโยชน์เช่นกัน สุดท้าย เราใช้ ปฏิกิริยา-เราเตอร์-dom. เส้นทางถูกกำหนดไว้ใน ไฟล์ App.js ดังที่แสดงด้านล่าง: นี่จะเป็นแผนที่ หน้าแรก, /projects ขอให้ หน้าโครงการ, / เกี่ยวกับคำขอถึง เกี่ยวกับเพจและ /ชั้นหนังสือร้องขอให้ หน้าหนังสือ เมื่อการพัฒนาแอปพลิเคชันเสร็จสมบูรณ์แล้ว เราจำเป็นต้องปรับใช้เพื่อให้ผู้อื่นสามารถใช้งานได้! /ขอให้ = การปรับใช้ด้วย AWS Amplify = == ภาพรวม == มีหลายวิธีในการปรับใช้เว็บไซต์ React แต่ฉันพบว่าหนึ่งในวิธีที่ง่ายที่สุดคือการใช้ **AWS Amplify Amplify ได้รับการอธิบายว่าเป็น âÃÂàวิธีที่เร็วและง่ายที่สุดในการสร้างแอปมือถือและเว็บที่ปรับขนาดได้ âÃÂàเพื่อให้บรรลุผลสำเร็จ AWS ประเมินความยุ่งยากทั้งหมดของการตั้งค่าเซิร์ฟเวอร์ การติดตั้งการพึ่งพา และการสร้างรุ่นที่ใช้งานจริงสำหรับเว็บไซต์ของคุณ ช่วยให้คุณมุ่งเน้นเฉพาะการสร้าง UX ที่ใช้งานง่าย หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับข้อเสนอของ AWS Amplify สำหรับแอปพลิเคชันที่ขับเคลื่อนด้วยข้อมูล (โดยเฉพาะ เว็บไซต์ที่มี **ส่วนหน้า** และ **ส่วนหลัง โปรดดูเอกสารประกอบ == การเชื่อมต่อพื้นที่เก็บข้อมูลของคุณ == ในการโฮสต์เว็บแอปของคุณบน AWS Amplify คุณต้องเชื่อมต่อพื้นที่เก็บข้อมูลที่มีซอร์สโค้ดของคุณก่อน ในการทำเช่นนี้ คุณสามารถไปที่ *AWS Amplify* *เริ่มต้นใช้งาน* **โฮสต์ My Web App แล้วคลิก **เชื่อมต่อ repo แอป *page, scroll to*page, scroll to ![ ](httpsmiro.medium.com/max/1400/1*2OLIf9dDvf2ZDqjhXUXuGw.png ) จากนั้น คุณจะถูกนำไปยังหน้าที่แยกต่างหากซึ่งคุณสามารถเชื่อมต่อที่เก็บที่มีซอร์สโค้ดของคุณได้ สำหรับตัวอย่างนี้ ฉันจะเลือก GitHub แต่ AWS Amplify ยังรองรับ BitBucket, GitLab, AWS CodeCommit และแม้กระทั่งการปรับใช้โดยไม่มีผู้ให้บริการ Git ![ ](httpsmiro.medium.com/max/1400/1*Dq8nN8mntiNegYIXarbtAw.png) หลังจากการอนุญาตสำเร็จ คุณสามารถเลือกพื้นที่เก็บข้อมูลที่คุณต้องการปรับใช้และเลือก AWS Amplify สาขาที่ควรใช้สำหรับการสร้างการผลิต ![ ](httpsmiro.medium.com/max/1400/1*OOlYA6q2eCplw4hW2IQP8Q.png) หลังจากนั้นคลิก **ถัดไป** และ AWS จะขอให้คุณกำหนดการตั้งค่า *build* และ *test* เทมเพลตพื้นฐานที่ AWS มีให้แสดงอยู่ด้านล่าง รุ่น: 1 ส่วนหน้า: ขั้นตอน: สร้างล่วงหน้า: คำสั่ง: - สร้างการติดตั้ง npm: คำสั่ง: - npm รันบิลด์ สิ่งประดิษฐ์: ไดเรกทอรีฐาน: สร้าง ไฟล์: - แคช: เส้นทาง: - node_modules นอกจากนี้ภายใต้ สวิตช์ **การตั้งค่าขั้นสูง** คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมและคอนเทนเนอร์บิลด์แบบกำหนดเองได้ สุดท้าย หลังจากตรวจสอบการตั้งค่าสำหรับแอปพลิเคชันของคุณแล้ว ให้คลิก **บันทึกและปรับใช้ **และ **AWS จะเริ่มกำหนดค่าและปรับใช้แอปพลิเคชันของคุณ เมื่อปรับใช้ AWS เสร็จแล้ว คุณสามารถไปที่หน้าแรกของ Amplify และดูว่าแอปพลิเคชันที่เพิ่งปรับใช้ใหม่ของคุณAWS จะเริ่มกำหนดค่าและปรับใช้แอปพลิเคชันของคุณ เมื่อปรับใช้ AWS เสร็จแล้ว คุณสามารถไปที่หน้าแรกของ Amplify และดูแอปพลิเคชันที่เพิ่งปรับใช้ได้ ตอนนี้ มาปรับแต่ง URL โดยใช้ **การจัดการโดเมน AWS Amplify == การเพิ่มโดเมนที่กำหนดเอง == ในการเริ่มต้นเพิ่มโดเมนแบบกำหนดเอง ให้ไปที่แถบด้านข้างซ้ายแล้วเลือก **การจัดการโดเมน ![ ](httpsmiro.medium.com/max/1400/1*fo8ZsKK7c3QvAwpjzMXcWg.png) **การจัดการโดเมน**การตั้งค่า จากนั้นเลือก **เพิ่มโดเมน **กำหนดค่าโดเมน **ป้อนชื่อโดเมนของคุณ (ตามที่แสดงด้านล่าง) แล้วคลิก**ป้อนชื่อโดเมนของคุณ (ตามที่แสดงด้านล่าง) แล้วคลิก ![ ](httpsmiro.medium.com/max/1400/ 1*e57WryLPTPC7Ro-_d5XAgQ.png) หลังจากนี้ คุณสามารถตั้งค่าการเปลี่ยนเส้นทางที่จำเป็นสำหรับโดเมนของคุณ ตัวอย่างเช่น ในตัวอย่างต่อไปนี้ ฉันสร้างการเปลี่ยนเส้นทางจาก httpsdan-murphy.com ไปยัง httpswww.dan-murphy.com ![ ](httpsmiro.medium.com/max/1400/1*yvEwLJmVK41H7ZPqDLB9Tg.png) สุดท้าย หลังจากกำหนดค่าโดเมนแบบกำหนดเองของคุณอย่างถูกต้องแล้ว AWS จะให้ a **ใบรับรองการตรวจสอบ คุณยังสามารถดูใบรับรองนี้ได้ในคอนโซล AWS Certificate Manager == การเพิ่มระเบียน CNAME == ขั้นตอนสุดท้ายในการกำหนดค่าโดเมนที่กำหนดเองคือการเพิ่มระเบียน CNAME ในตัวอย่างต่อไปนี้ ฉันใช้ Google Domains แต่แนวคิดพื้นฐานยังคงเหมือนกันในผู้รับจดทะเบียนโดเมนต่างๆ ก่อนอื่นให้เลื่อนลงไปที่ **ระเบียนทรัพยากรที่กำหนดเอง** ใน Google Domains สร้างระเบียน *CNAME *ที่ชี้โดเมนย่อยทั้งหมดไปยังโดเมน AWS Amplify: ชื่อ: ป้อนชื่อโดเมนย่อย หากโดเมนย่อยคือ www.domain.com ให้ป้อน หากเป็น www app.domain.com ให้ป้อน app ข้อมูล: ในหน้าการจัดการโดเมน ให้คลิก Actions แล้วเลือก View DNS Records จากนั้น ป้อนโดเมน AWS Amplify ที่อยู่ภายใต้การกำหนดค่าผู้ให้บริการ DNS ![ ](httpsmiro.medium.com/max/1400/1*SSRoAAkYjf5dT2rD-kmEQw.png) หน้า **Domains Management** เลือก **Actions **View DNS Records** โดยรวมแล้ว ระเบียนทรัพยากรที่กำหนดเองจะมีลักษณะดังนี้: ![ ](httpsmiro.medium.com/max/1400/1*bZh8t77JswwonKCFyp7tog.png) ถัดไปเพิ่มอีกหนึ่ง บันทึก *CNAME* ที่ชี้ไปยังเซิร์ฟเวอร์การตรวจสอบความถูกต้องของ AWS Certificate Manager AWS Certificate Manager ที่ผ่านการตรวจสอบจะจัดการ TLS สำหรับแอปพลิเคชันของคุณ: ชื่อ: ป้อนโดเมนย่อยของเซิร์ฟเวอร์การตรวจสอบความถูกต้อง หากระเบียน DNS สำหรับยืนยันความเป็นเจ้าของโดเมนของคุณคือ _1234.example.com ให้ป้อนเฉพาะ _1234 ข้อมูล: ป้อนใบรับรองการตรวจสอบ ACM หากเซิร์ฟเวอร์การตรวจสอบคือ _1234.abcdefg.acm-validations.aws. ให้ป้อน _1234.abcdefg.acm-validations.aws พบข้อมูลทั้งหมดสำหรับใบรับรองการตรวจสอบของคุณในคอนโซล AWS Certificate Manager หลังจากวินาที เพิ่ม *CNAME* แล้ว ระเบียนที่กำหนดเองของคุณควรมีลักษณะดังนี้: ![ ](httpsmiro.medium.com/max/1400/1*79yex2fObLiK0Q0f0X4zeA.png) สุดท้าย ขอเพิ่ม a **Synthetic Record** เพื่อตั้งค่าการส่งต่อโดเมนย่อย: โดเมนย่อย: ป้อน URL ของโดเมน: www. ![ ](httpsmiro.medium.com/max/1400/1*xi6ivE7Vsfz9AheFAHxPZQ.png) = สรุป = โดยรวมแล้ว ในบทความนี้ เราได้เรียนรู้วิธีจัดโครงสร้างแอปพลิเคชัน React และปรับใช้กับ AWS Amplify ขั้นแรก เราได้กล่าวถึงวิธีทำให้แอปพลิเคชันตอบสนองเป็นโมดูล *ส่วนประกอบ* *หน้า* โฟลเดอร์ จากนั้น เราได้เรียนรู้เกี่ยวกับ **AWS Amplify** และวิธีการปรับใช้แอปพลิเคชันแบบสแตติกและที่ขับเคลื่อนด้วยข้อมูลด้วย สุดท้าย เราได้เรียนรู้เกี่ยวกับการใช้ **AWS Amplify Domain Management** และ **Google Domains **เพื่อปรับแต่งโดเมนของแอปพลิเคชันของเรา **และ**และ หากคุณมีคำถาม ข้อกังวล หรือคำติชมเกี่ยวกับบทความนี้หรือไซต์ผลงานของฉัน โปรดอย่าลังเลที่จะแสดงความคิดเห็นหรือส่งอีเมลถึงฉันที่ *[email protected]*. ขอบคุณที่อ่าน!