โมดูลที่ 3: แบ็คเอนด์บริการแบบไร้เซิร์ฟเวอร์

คุณจะต้องใช้งาน AWS Lambda และ Amazon DynamoDB เพื่อสร้างกระบวนการแบ็คเอนด์สำหรับการจัดการคำขอสำหรับเว็บแอปพลิเคชันของคุณ

ภาพรวม

ในโมดูลนี้คุณจะต้องใช้งาน AWS Lambda และ Amazon DynamoDB เพื่อสร้างกระบวนการแบ็คเอนด์สำหรับการจัดการคำขอสำหรับเว็บแอปพลิเคชันของคุณ แอปพลิเคชันเบราว์เซอร์ซึ่งคุณปรับใช้ในโมดูลที่หนึ่งทำให้ผู้ใช้สามารถขอให้ส่งยูนิคอร์นไปยังตำแหน่งอุปกรณ์ของคุณ เพื่อดำเนินการตามคำขอเหล่านั้น JavaScript ที่ทำงานอยู่ในเบราว์เซอร์จำเป็นต้องเรียกใช้บริการที่ทำงานในระบบคลาวด์

ภาพรวมของสถาปัตยกรรม

ภาพรวมของสถาปัตยกรรม

คุณจะต้องนำฟังก์ชัน Lambda ซึ่งจะถูกเรียกใช้ในแต่ละครั้งที่ผู้ใช้งานขอยูนิคอร์นมาใช้งาน ฟังก์ชันจะเลือกยูนิคอร์นจากฟลีต บันทึกคำขอในตาราง DynamoDB และตอบสนองต่อแอปพลิเคชันเบื้องหน้าด้วยรายละเอียดเกี่ยวกับยูนิคอร์นที่ส่งมา

ฟังก์ชันจะถูกเรียกใช้งานจากเบราว์เซอร์โดยใช้ Amazon API Gateway คุณจะต้องนำการเชื่อมต่อนั้นมาใช้งานในโมดูลถัดไป สำหรับโมดูลนี้ คุณจะทำการทดสอบฟังก์ชันแบบแยกส่วนเท่านั้น

 เวลาดำเนินการ

30 นาที

 บริการที่ใช้

การใช้งาน

  • สร้างตาราง Amazon DynamoDB

    ใช้คอนโซล Amazon DynamoDB เพื่อสร้างตาราง DynamoDB ใหม่ เรียกใช้ Rides ในตารางของคุณและใส่คีย์พาร์ติชันที่มีชื่อว่า RideId ด้วยประเภทสตริง ชื่อตารางและคีย์พาร์ติชันต้องตรงตามตัวพิมพ์ โปรดตรวจสอบให้แน่ใจว่าใช้รหัสที่ถูกต้องตามที่ให้ไว้ ใช้ค่าเริ่มต้นสำหรับการตั้งค่าทั้งหมด

    หลังจากที่คุณสร้างตารางแล้ว ให้บันทึก ARN ไว้สำหรับการใช้งานในขั้นตอนถัดไป

    ก. จาก AWS Management Console ให้เลือกบริการ แล้วเลือก DynamoDB ใต้ฐานข้อมูล
    ข. เลือกสร้างตาราง
    ค. ป้อน Rides สำหรับชื่อตาราง ช่องนี้ต้องตรงตามตัวพิมพ์
    ง. ป้อน RideId สำหรับคีย์พาร์ติชัน และเลือกสตริงสำหรับประเภทคีย์ ช่องนี้ต้องตรงตามตัวพิมพ์
    จ. ทำเครื่องหมายในช่องใช้การตั้งค่าเริ่มต้น แล้วเลือกสร้าง
    ฉ. เลื่อนลงไปที่ส่วนภาพรวมของตารางใหม่แล้วบันทึก ARN คุณจะต้องใช้ในส่วนถัดไป

  • การสร้างบทบาท IAM สำหรับฟังก์ชัน Lambda ของคุณ

    ทุกฟังก์ชัน Lambda จะมีบทบาท IAM ที่เกี่ยวข้องกัน โดยบทบาทนี้จะกำหนดบริการของ AWS อื่นๆ ที่ฟังก์ชันอนุญาตให้ทำงานด้วย สำหรับวัตถุประสงค์ของเวิร์กช็อปนี้ คุณจะต้องสร้างบทบาท IAM ซึ่งอนุญาตให้ฟังก์ชัน Lambda ของคุณเขียนบันทึกไปยัง Amazon CloudWatch Logs และเข้าถึงการเขียนรายการในตาราง DynamoDB ของคุณ

    ใช้ IAM Console เพื่อสร้างบทบาทใหม่ ตั้งชื่อว่า WildRydesLambda และเลือก AWS Lambda สำหรับประเภทของบทบาท คุณจำเป็นต้องแนบนโยบายซึ่งให้สิทธิ์อนุญาตแก่ฟังก์ชันของคุณเพื่อเขียน Amazon CloudWatch Logs และบันทึกรายการลงในตาราง DynamoDB ของคุณ

    แนบนโยบายที่ชื่อว่า AWSLambdaBasicExecutionRole ให้กับบทบาทนี้เพื่อให้สิทธิ์อนุญาตที่จำเป็นสำหรับ CloudWatch Logs นอกจากนี้ ให้สร้างนโยบายอินไลน์แบบกำหนดเองสำหรับบทบาทของคุณซึ่งอนุญาตให้การดำเนินการ ddb:PutItem สำหรับตารางที่คุณสร้างไว้ในส่วนก่อนหน้า

    ก. จาก AWS Management Console ให้คลิกที่บริการ แล้วเลือก IAM ในส่วนของการรักษาความปลอดภัย ข้อมูลประจำตัว และการปฏิบัติตามข้อกำหนด

    ข. เลือกบทบาทในแถบการนำทางด้านซ้ายแล้วเลือกสร้างบทบาทใหม่

    ค. เลือก Lambda สำหรับประเภทบทบาทจากกลุ่มบริการของ AWS แล้วคลิกถัดไป: สิทธิ์การใช้งาน

    หมายเหตุ: การเลือกประเภทบทบาทโดยอัตโนมัติจะสร้างนโยบายความน่าเชื่อถือสำหรับบทบาทของคุณซึ่งอนุญาตให้บริการของ AWS รับบทบาทนี้แทนคุณ หากคุณสร้างบทบาทนี้โดยใช้ CLI, AWS CloudFormation หรือกลไกอื่นๆ คุณจะต้องระบุนโยบายความน่าเชื่อถือโดยตรง

    ง. เริ่มพิมพ์ AWSLambdaBasicExecutionRole ในกล่องข้อความตัวกรอง และทำเครื่องหมายในช่องถัดจากบทบาทนั้น

    จ. เลือกขั้นตอนถัดไป

    ฉ. ป้อน WildRydesLambda สำหรับชื่อบทบาท

    ช. เลือกสร้างบทบาท

    ซ. พิมพ์ WildRydesLambda ลงในกล่องข้อความตัวกรองในหน้าบทบาท และเลือกบทบาทที่คุณสร้างขึ้น

    ฌ. ในแท็บสิทธิ์การใช้งาน ให้เลือกลิงก์เพิ่มนโยบายอินไลน์ที่มุมขวาด้านล่างเพื่อสร้างนโยบายความน่าเชื่อถือใหม่

    ญ. เลือก เลือกบริการ

    ฎ. เริ่มพิมพ์ DynamoDB ลงในกล่องค้นหาที่มีข้อความกำกับว่าค้นหาบริการ แล้วเลือก DynamoDB ที่ปรากฏขึ้น

    ฏ. เลือกเลือกการดำเนินการ

    ฐ. เริ่มพิมพ์ PutItem ลงในกล่องค้นหาที่มีข้อความกำกับว่าการดำเนินการของตัวกรอง และทำเครื่องหมายในช่องถัดจาก PutItem ที่ปรากฏขึ้น

    ฑ. เลือกส่วนทรัพยากร

    ฒ. เมื่อเลือกตัวเลือกเฉพาะแล้ว ให้เลือกเพิ่มลิงก์ ARN ในส่วนตาราง

    ณ. วาง ARN ของตารางที่คุณสร้างขึ้นในส่วนก่อนหน้าในช่องระบุ ARN สำหรับตาราง และเลือกเพิ่ม

    ด. เลือกตรวจสอบนโยบาย

    ต. ป้อน DynamoDBWriteAccess สำหรับชื่อนโยบาย แล้วเลือกสร้างนโยบาย

  • สร้างฟังก์ชัน Lambda สำหรับจัดการกับคำขอ

    AWS Lambda จะเรียกใช้งานโค้ดของคุณสอดคล้องกับเหตุการณ์เช่น การขอ HTTP ในขั้นตอนนี้ คุณจะต้องสร้างฟังก์ชันหลักซึ่งจะประมวลผลคำขอ API จากเว็บแอปพลิเคชันเพื่อส่งยูนิคอร์น ในโมดูลถัดไป คุณจะต้องใช้ Amazon API Gateway เพื่อสร้าง RESTful API ซึ่งจะเปิดเผยตำแหน่งข้อมูล HTTP ซึ่งสามารถเรียกใช้ได้จากเบราวเซอร์ของผู้ใช้งานของคุณ จากนั้นคุณจะต้องเชื่อมต่อฟังก์ชัน Lambda ที่คุณสร้างในขั้นตอนนี้กับ API นั้นเพื่อสร้างแบ็คเอนด์ที่ใช้งานได้อย่างสมบูรณ์สำหรับเว็บแอปพลิเคชันของคุณ

    ใช้ AWS Lambda Console เพื่อสร้างฟังก์ชัน Lambda ใหม่ที่เรียกว่า RequestUnicorn ซึ่งจะประมวลผลคำขอ API ใช้ตัวอย่างการนำไปใช้งาน requestUnicorn.js สำหรับโค้ดฟังก์ชันของคุณ เพียงคัดลอกและวางจากไฟล์นั้นลงในเครื่องมือแก้ไขของ AWS Lambda Console

    ตรวจสอบให้แน่ใจว่าได้กำหนดค่าฟังก์ชันของคุณเพื่อใช้บทบาท IAM ของ WildRydesLambda ที่สร้างขึ้นในส่วนก่อนหน้านี้

    ก. เลือกบริการ แล้วเลือก Lambda ในส่วนการประมวลผล
    ข. คลิกสร้างฟังก์ชัน
    ค. เลือกการ์ดเขียนใหม่เริ่มต้นไว้อย่างเดิม
    ง. ป้อน RequestUnicorn ลงในช่องชื่อ
    จ. เลือก Node.js 6.10 สำหรับรันไทม์
    ฉ. ตรวจสอบว่าได้เลือกเลือกบทบาทที่มีอยู่จากรายการดรอปดาวน์บทบาทไว้แล้ว
    ช. เลือก WildRydesLambda จากรายการดรอปดาวน์บทบาทที่มีอยู่
    ซ. คลิกที่สร้างฟังก์ชัน
    ฌ. เลื่อนลงไปที่ส่วนโค้ดฟังก์ชัน แล้วแทนที่โค้ดเดิมที่มีอยู่ในเครื่องมือแก้ไขโค้ด index.js ด้วยเนื้อหาจาก requestUnicorn.js
    ญ. คลิก "บันทึก" ที่มุมขวาบนของหน้า

  • ตรวจสอบความถูกต้องของการนำไปใช้งานของคุณ

    สำหรับโมดูลนี้ คุณจะต้องตรวจสอบฟังก์ชันที่คุณสร้างขึ้นโดยใช้คอนโซล AWS Lambda ในโมดูลถัดไป คุณจะต้องเพิ่ม REST API ด้วย API Gateway เพื่อให้คุณสามารถเรียกใช้ฟังก์ชันของคุณได้จากแอปพลิเคชันที่มีพื้นฐานจากเบราว์เซอร์ซึ่งคุณได้ปรับใช้ในโมดูลแรก

    ก. จากหน้าจอการแก้ไขหลักสำหรับฟังก์ชันของคุณ ให้เลือกกำหนดค่าเหตุการณ์ทดสอบจากเมนูดรอปดาวน์เลือกเหตุการณ์ทดสอบ...
    ข. ให้เลือกสร้างเหตุการณ์การทดสอบใหม่ไว้อย่างเดิม
    ค. ป้อน TestRequestEvent ลงในช่องชื่อเหตุการณ์
    ง. คัดลอกและวางเหตุการณ์การทดสอบดังต่อไปนี้ลงในเครื่องมือแก้ไข:

    {
        "path": "/ride",
        "httpMethod": "POST",
        "headers": {
            "Accept": "*/*",
            "Authorization": "eyJraWQiOiJLTzRVMWZs",
            "content-type": "application/json; charset=UTF-8"
        },
        "queryStringParameters": null,
        "pathParameters": null,
        "requestContext": {
            "authorizer": {
                "claims": {
                    "cognito:username": "the_username"
                }
            }
        },
        "body": "{\"PickupLocation\":{\"Latitude\":47.6174755835663,\"Longitude\":-122.28837066650185}}"
    }

    จ. คลิกสร้าง
    ฉ. ในหน้าจอการแก้ไขฟังก์ชันหลัก ให้คลิกทดสอบด้วย TestRequestEvent ที่เลือกไว้ในรายการดรอปดาวน์
    ช. เลื่อนไปยังด้านบนสุดของหน้าและขยายส่วนรายละเอียดของส่วนผลการดำเนินการ
    ซ. ยืนยันว่าการดำเนินการประสบความสำเร็จและผลของฟังก์ชันนี้เป็นดังต่อไปนี้:

    {
        "statusCode": 201,
        "body": "{\"RideId\":\"SvLnijIAtg6inAFUBRT+Fg==\",\"Unicorn\":{\"Name\":\"Rocinante\",\"Color\":\"Yellow\",\"Gender\":\"Female\"},\"Eta\":\"30 seconds\"}",
        "headers": {
            "Access-Control-Allow-Origin": "*"
        }
    }

โมดูลนี้เป็นประโยชน์หรือไม่

ขอบคุณ
โปรดบอกเราว่าคุณชอบอะไร
Close
ขออภัยที่ทำให้คุณผิดหวัง
มีเนื้อหาที่ไม่อัปเดต คลุมเครือ หรือไม่ถูกต้องหรือไม่ โปรดช่วยเราในการปรับปรุงบทช่วยสอนนี้โดยการให้คำติชม
Close

ปรับใช้ RESTful API