Puncte:0

Cum poate o funcție AWS lambda să apeleze o instanță EC2 prin adresa IP privată?

drapel cz

Cum pot face ca un lambda să apeleze o instanță ec2 prin adresa sa IP privată?

Pe scurt, crearea unui bot Discord pentru colegii mei de server Minecraft pentru a porni și opri instanța AWS și pentru a gestiona oprirea automată dacă nu este nimeni pe server.

Funcția Lambda s-ar ocupa de pornirea, oprirea, obținerea adresei IP publice actuale atribuite automat și confirmarea că serverul rulează prin protocolul de interogare Minecraft (portul UDP 25565)

Încerc să fac acest lucru cât mai eficient din punct de vedere al costurilor posibil și vreau să văd dacă pot face acest lucru fără o adresă IP elastică atribuită. Deoarece voi avea mai mult de un server Minecraft care va trebui lansat. Și există o taxă dacă acel server este offline cu o adresă ip elastică sau dacă utilizați mai mult de 1 ip elastic.

Am testat aceeași funcție când același server folosea o adresă IP elastică și a funcționat așa cum era de așteptat. Acum, vreau să știu dacă pot face același lucru cu adresa IP privată.

Tim avatar
drapel gp
Tim
Ah... cu ce parte ai probleme? Găsiți IP-ul privat non-elastic sau îl apelați? Dacă puteți apela un IP elastic, nu sunt sigur care este diferența pentru a apela un IP privat. Probabil știți acest lucru, dar oprirea instanței se face apelând API-ul EC2 pentru care nu aveți nevoie de adresa IP.
user3346931 avatar
drapel cz
Apelarea adresei IP private odată ce instanța serverului rulează, este ceea ce am nevoie de ajutor. Pornirea și oprirea instanței sunt gestionate de api-ul ec2 pe lambda. Când API-ul își va face acțiunea „statusCheck”, va apela describeInstance și va apela portul UDP 25565 în același timp, apoi le va combina și o va filtra pentru ca botul Discord să le citească.
Tim avatar
drapel gp
Tim
Dacă puteți apela o adresă IP elastică, care este diferența de a apela o adresă IP publică? Nu înțeleg problema pe care o ai. Ai apela la API-ul EC2 pentru a găsi IP-ul oricum, nu-i așa?
Puncte:0
drapel af

Dacă nu ați făcut acest lucru deja, trebuie să conectați Lambda la VPC-ul în care rulează instanța EC2. https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html

În mod implicit, funcțiile Lambda pot comunica numai cu resursele de pe internetul public, deci IP-ul public al instanței EC2, API-urile AWS etc.

De acolo trebuie să vă asigurați că grupul de securitate (SG) alocat instanței EC2 poate primi trafic (inbound) de la SG alocat funcției Lambda. Acesta ar fi portul UDP 25565 sau orice ai nevoie.

De asemenea, trebuie să vă asigurați că SG-ul atribuit funcției Lambda poate face conexiuni de ieșire la SG-ul atribuit instanței EC2, din nou pe portul UDP 2265 sau orice aveți nevoie. Acest lucru este puțin mai ușor, deoarece politica de ieșire este de obicei larg deschisă.

Pentru testare, puteți atribui SG pentru funcția Lambda unei alte instanțe EC2, plasați instanța care joacă rolul funcției Lambda în aceeași subrețea (subrețea) va ajuta la validarea setării în continuare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.