Score:0

ฟังก์ชันแลมบ์ดาของ AWS สามารถเรียกอินสแตนซ์ EC2 ผ่านที่อยู่ IP ส่วนตัวได้อย่างไร

ธง cz

ฉันจะให้แลมบ์ดาโทรหาอินสแตนซ์ ec2 ผ่านที่อยู่ IP ส่วนตัวได้อย่างไร

พูดสั้นๆ คือสร้างบอทที่ไม่ลงรอยกันสำหรับเพื่อนร่วมเซิร์ฟเวอร์ minecraft เพื่อเริ่มต้นและหยุดอินสแตนซ์ AWS และจัดการการปิดระบบอัตโนมัติหากไม่มีใครอยู่บนเซิร์ฟเวอร์

ฟังก์ชันแลมบ์ดาจะจัดการกับการเริ่มต้น การหยุด การรับที่อยู่ IP สาธารณะที่กำหนดโดยอัตโนมัติในปัจจุบัน และการยืนยันว่าเซิร์ฟเวอร์กำลังทำงานผ่านโปรโตคอลการค้นหาของ Minecraft (พอร์ต UDP 25565)

ฉันกำลังพยายามทำสิ่งนี้ให้คุ้มค่าที่สุดเท่าที่จะเป็นไปได้ และต้องการดูว่าฉันสามารถทำได้โดยไม่ต้องกำหนดที่อยู่ IP แบบยืดหยุ่นหรือไม่ เนื่องจากฉันจะมีเซิร์ฟเวอร์ minecraft มากกว่าหนึ่งเซิร์ฟเวอร์ที่จะต้องเปิดตัว และมีค่าธรรมเนียมหากเซิร์ฟเวอร์นั้นออฟไลน์ด้วยที่อยู่ IP แบบยืดหยุ่น หรือคุณใช้ Elastic IP มากกว่า 1 รายการ

ฉันได้ทดสอบฟังก์ชันเดียวกันเมื่อเซิร์ฟเวอร์เดียวกันใช้ที่อยู่ IP แบบยืดหยุ่น และทำงานได้ตามที่คาดไว้ ตอนนี้ฉันต้องการทราบว่าฉันสามารถทำเช่นเดียวกันกับที่อยู่ IP ส่วนตัวได้หรือไม่

Tim avatar
gp flag
Tim
อา... คุณมีปัญหากับส่วนไหนกันแน่? กำลังค้นหา IP ที่ไม่ยืดหยุ่นส่วนตัวหรือเรียกมันว่า? หากคุณสามารถเรียก IP แบบยืดหยุ่นได้ ฉันไม่แน่ใจว่าการเรียก IP ส่วนตัวนั้นแตกต่างกันอย่างไร คุณอาจรู้เรื่องนี้ แต่การหยุดอินสแตนซ์ทำได้โดยการเรียก EC2 API ซึ่งคุณไม่จำเป็นต้องใช้ที่อยู่ IP
user3346931 avatar
cz flag
การเรียกที่อยู่ IP ส่วนตัวเมื่ออินสแตนซ์ของเซิร์ฟเวอร์กำลังทำงาน เป็นสิ่งที่ฉันต้องการความช่วยเหลือ การเริ่มต้นและการหยุดอินสแตนซ์นั้นจัดการโดย ec2 api บนแลมบ์ดา เมื่อ API ดำเนินการ "ตรวจสอบสถานะ" ก็จะเรียก DescriptionInstance และเรียกพอร์ต UDP 25565 พร้อมกัน จากนั้นรวมเข้าด้วยกันและกรองเพื่อให้บอทที่ไม่ลงรอยกันอ่าน
Tim avatar
gp flag
Tim
หากคุณสามารถเรียกที่อยู่ IP แบบยืดหยุ่นได้ การเรียกที่อยู่ IP สาธารณะจะแตกต่างกันอย่างไร ฉันไม่เข้าใจปัญหาที่คุณมี คุณเพียงแค่เรียก EC2 API เพื่อค้นหา IP ด้วยวิธีใดวิธีหนึ่งใช่ไหม
Score:0
ธง af

หากคุณยังไม่ได้ดำเนินการ คุณต้องเชื่อมต่อ Lambda กับ VPC ที่อินสแตนซ์ EC2 ทำงานอยู่ https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html

ตามค่าเริ่มต้น ฟังก์ชัน Lambda สามารถสื่อสารกับทรัพยากรบนอินเทอร์เน็ตสาธารณะเท่านั้น ดังนั้น IP สาธารณะของอินสแตนซ์ EC2, AWS API เป็นต้น

จากนั้น คุณต้องตรวจสอบให้แน่ใจว่ากลุ่มความปลอดภัย (SG) ที่กำหนดให้กับอินสแตนซ์ EC2 สามารถรับทราฟฟิก (ขาเข้า) จาก SG ที่กำหนดให้กับฟังก์ชัน Lambda ได้ นี่จะเป็นพอร์ต UDP 25565 หรืออะไรก็ตามที่คุณต้องการ

คุณต้องตรวจสอบให้แน่ใจว่า SG ที่กำหนดให้กับฟังก์ชัน Lambda สามารถสร้างการเชื่อมต่อขาออกไปยัง SG ที่กำหนดให้กับ EC2 instace อีกครั้งบนพอร์ต UDP 2265 หรืออะไรก็ตามที่คุณต้องการ ซึ่งง่ายกว่าเล็กน้อยเนื่องจากนโยบายขาออกมักจะเปิดกว้าง

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

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา