Sesiuni interactive AWS Glue permite inginerilor să construiască, să testeze și să ruleze sarcini de lucru pentru pregătirea datelor și analiză într-un notebook interactiv. Sesiunile interactive oferă medii izolate de dezvoltare, au grijă de clusterul de calcul de bază și permit configurarea pentru a opri resursele inactiv.
Sesiunile interactive Glue oferă configurații recomandate implicite și, de asemenea, le permite utilizatorilor personalizați sesiunea pentru a le satisface nevoile. De exemplu, puteți furniza mai mulți lucrători pentru a experimenta pe un set de date mai mare sau puteți seta intervalul de inactivitate pentru sarcinile de lucru de lungă durată. Având flexibilitatea de a modifica aceste opțiuni în funcție de volumul de lucru, poate fi necesar să vă asigurați că opțiunile sunt modificate în limite specifice și să aplicați un mecanism de control.
În această postare, vă prezentăm procesul de implementare a unui soluție reutilizabilă pentru a aplica limitele de sesiune interactivă AWS Glue pentru trei opțiuni: conexiune, număr de lucrători și timp maxim de inactivitate. Prima opțiune abordează nevoia de a aplica inspecții și controale personalizate asupra traficului, de exemplu, impunând ca o sesiune interactivă să fie rulată numai în interiorul unui VPC. Celelalte două aplică limite privind costurile și utilizarea AWS Adeziv resurse prin aplicarea unei limite superioare a numărului de lucrători și a timpului inactiv pe sesiune. Puteți extinde și mai mult soluția pentru alte proprietăți sau servicii din AWS Glue.
Prezentare generală a soluției
Arhitectura propusă este construită pe componente fără server și rulează ori de câte ori este creată o nouă sesiune interactivă AWS Glue.
Pașii fluxului de lucru sunt următorii:
- Un inginer de date creează o nouă sesiune interactivă AWS Glue fie prin intermediul Consola de administrare AWS sau într-un caiet Jupyter local.
- Sesiunea interactivă produce un nou eveniment pentru AWS CloudTrail pentru
CreateSession
eveniment cu toate informațiile relevante pentru a identifica și inspecta o sesiune de îndată ce sesiunea este inițiată. - An Amazon EventBridge regula filtrează evenimentele CloudTrail și invocă un AWS Lambdas funcția de a inspecta
CreateSession
eveniment. - Funcția Lambda inspectează
CreateSession
eveniment și verificări pentru toate condițiile la limită definite. În prezent, limitele configurabile cu această soluție sunt limitate la numărul maxim de lucrători, timeout inactiv în minute și implementare cu conexiunea impusă. - Dacă oricare dintre condițiile de limită definite nu este îndeplinită, de exemplu sunt prevăzuți prea mulți lucrători pentru sesiune, în funcție de configurația furnizată, funcția încheie imediat sesiunea interactivă și trimite un e-mail prin Serviciul de notificare simplă Amazon (Amazon SNS). Dacă sesiunea nu a început încă, funcția va aștepta să înceapă înainte de a lua orice acțiune.
- Dacă sesiunea a fost oprită, este trimis un e-mail către un subiect SNS. Nu există informații disponibile în caietul interactiv de sesiune cu privire la motivul încheierii sesiunii. Prin urmare, informații de context suplimentare sunt furnizate inginerilor de date prin intermediul subiectului SNS.
- Dacă funcția eșuează, sesiunile sunt conectate a coada de scrisori moarte în interiorul Serviciul de coadă simplă Amazon (Amazon SQS). În plus, coada este monitorizată și, în cazul unui mesaj, va declanșa un Amazon CloudWatch alarma.
Următorii pași vă ghidează prin cum să construiți și să implementați soluția. Codul este disponibil în GitHub repo.
Cerințe preliminare
Pentru această prezentare generală, ar trebui să aveți următoarele condiții prealabile:
Prezentare generală a resurselor implementate
Toate resursele necesare sunt definite într-un Formarea AWS Cloud fișier aflat sub cfn/template.yaml
. Pentru a implementa aceste resurse, folosim Model de aplicație fără server AWS (AWS SAM), care ne permite să construim și să ambalăm în mod convenabil toate dependențele și, de asemenea, gestionează pașii AWS CloudFormation pentru noi.
Stiva CloudFormation implementează următoarele resurse:
- O funcție Lambda cu biblioteca sa, ambele definite în directorul src/functions. Funcția este controlul. Acesta va valida ca sesiunea să fie începută în limitele definite.
- O regulă EventBridge. Acest eveniment ascultă CloudTrail și, în cazul unei noi sesiuni interactive, va declanșa funcția de control Lambda.
- O coadă de mesaje moarte SQS (DLQ) atașată funcției Lambda. Aceasta păstrează o evidență a evenimentelor care au declanșat o defecțiune a funcției Lambda.
- Două alarme CloudWatch care monitorizează defecțiunile funcției Lambda și mesajele din DLQ.
Dacă notificarea prin e-mail este activată, sunt implementate încă două resurse:
În plus, AWS CloudFormation implementează tot ceea ce este necesar Gestionarea identității și accesului AWS (IAM) roluri și politici și an AWS Service Management Service (AWS KMS) pentru a vă asigura că datele schimbate sunt criptate.
Implementați soluția
Pentru a facilita ciclul de viață al implementării, inclusiv configurarea mediului local al utilizatorului, oferim un Makefile care descrie toți pașii necesari. Asigurați-vă că aveți acreditările AWS reînnoite și că aveți acces la contul dvs. Pentru mai multe informații, consultați Configurare și setări ale fișierului de acreditări.
- Explorați Makefile și ajustați regiunea și numele stivei după cum este necesar, modificând valorile variabilelor
AWS_REGION
șiSTACK_NAME
. - set
KILL_SESSION = "True"
dacă doriți să opriți imediat sesiunea interactivă care a fost găsită în afara granițelor. Valorile permise sunt True sau False; implicit este True. - set
NOTIFICATION_EMAIL_ADDRESS = <your.email@provider.com>
înMakefile
dacă doriți să primiți o notificare când o sesiune a fost găsită în afara granițelor. - Setați valori pentru comenzile dvs.:
ENFORCE_VPC_CONNECTION
pentru a opri sesiunile care nu rulează într-un VPC (adevărat sau fals).MAX_WORKERS
pentru a seta numărul maxim de lucrători pentru o sesiune (numeric).MAX_IDLE_TIMEOUT_MINUTES
pentru a defini timpul maxim de inactivitate pentru sesiuni în minute (numerice).
- Instalați toate bibliotecile de cerințe preliminare:
Acestea vor fi instalate într-un mediu virtual Python nou creat în interiorul acestui depozit din director
.venv
. - Implementează noua stivă:
Această comandă va finaliza următoarele sarcini:
- Verificați dacă sunt îndeplinite condițiile preliminare.
- Efectua
pytest unittest
pe fișierele Python. - Validați șablonul CloudFormation.
- Construiți artefactele (funcția Lambda și straturi Lambda).
- Implementați resursele prin AWS SAM.
Testați soluția
A se referi la Vă prezentăm sesiunile interactive AWS Glue pentru Jupyter pentru informații despre rularea unei sesiuni interactive. Dacă urmați instrucțiunile din postare (vezi secțiunea Rulați prima celulă de cod și creați-vă blocnotesul AWS Glue), inițializarea sesiunii interactive ar trebui să eșueze cu o eroare similară cu următoarea.
Exemplu de cod în celulă:
Ieșire primită:
Dacă ați activat funcția de e-mail, ar trebui să primiți și o notificare prin e-mail.
De asemenea, puteți verifica pe consola AWS Glue dacă ID-ul dvs. de sesiune nu este listat.
A curăța
Curățați resursele implementate rulând următoarea comandă:
Rețineți că resursele utilizate în urma postării recomandate, Vă prezentăm sesiunile interactive AWS Glue pentru Jupyter, nu va fi eliminat cu comanda anterioară.
Limitări
Garanția de livrare pentru evenimentele CloudTrail către EventBridge este cel mai bun efort. Aceasta înseamnă că CloudTrail va încerca să livreze toate evenimentele către EventBridge, dar în unele cazuri rare, este posibil ca un eveniment să nu fie livrat. Pentru mai multe informații, consultați Evenimente din serviciile AWS.
Concluzie
Această postare a descris cum să construiți, să implementați și să testați o soluție pentru a aplica condițiile limită în sesiunile interactive AWS Glue pentru a impune constrângeri privind numărul de lucrători, timeout-uri și conexiunea AWS Glue.
Puteți adapta această soluție în funcție de nevoile dvs. și o puteți extinde în continuare pentru a permite controale asupra altor opțiuni.
Pentru a afla mai multe despre cum să utilizați sesiunile interactive AWS Glue, consultați Vă prezentăm sesiunile interactive AWS Glue pentru Jupyter și Creați lucrări AWS Glue cu PyCharm folosind sesiuni interactive AWS Glue.
Despre Autori
Nicolas Jacob Baer este arhitect senior de aplicații cloud, cu un accent puternic pe ingineria datelor și învățarea automată, cu sediul în Elveția. El lucrează îndeaproape cu clienții întreprinderilor pentru a proiecta platforme de date și pentru a construi cazuri de utilizare avansate de analiză/ml.
Luca Mazzaferro este arhitect senior DevOps la Amazon Web Services. Îi place să aibă infrastructura automatizată, reproductibilă și securizată. În timpul liber îi place să gătească, mai ales pizza.
Kemeng Zhang este un arhitect de aplicații cloud cu un accent puternic pe învățarea automată și UX, cu sediul în Elveția. Ea lucrează îndeaproape cu clienții pentru a proiecta experiențe pentru utilizatori și pentru a construi analize avansate/cazuri de utilizare ml.
Mark Walser, un Senior Global Data Architect la Amazon Web Services, colaborează cu clienții pentru a dezvolta soluții inovatoare Big Data care rezolvă problemele de afaceri și accelerează adoptarea serviciilor AWS. În afara serviciului, își găsește plăcere în alergare, înot și toate lucrurile legate de tehnologie.
Gal Heyne este manager de produs pentru AWS Glue, cu un accent puternic pe AI/ML, ingineria datelor și BI, cu sediul în California. Este pasionată de dezvoltarea unei înțelegeri profunde a nevoilor de afaceri ale clienților și de colaborarea cu inginerii pentru a proiecta produse de date ușor de utilizat.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. Automobile/VE-uri, carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- BlockOffsets. Modernizarea proprietății de compensare a mediului. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/big-data/enforce-boundaries-on-aws-glue-interactive-sessions/
- :are
- :este
- :nu
- $UP
- 1
- 10
- 100
- 7
- a
- Despre Noi
- acces
- Cont
- Acțiune
- adapta
- Suplimentar
- adrese
- Adoptare
- avansat
- AI / ML
- alarmă
- TOATE
- permite
- permis
- permite
- de asemenea
- Amazon
- Amazon Web Services
- an
- Google Analytics
- și
- Orice
- aplicație
- Aplică
- Aplicarea
- arhitectură
- SUNT
- argumente
- AS
- At
- autor
- Automata
- disponibil
- AWS
- Formarea AWS Cloud
- AWS Adeziv
- bazat
- BE
- fost
- înainte
- CEL MAI BUN
- Mare
- Datele mari
- Blog
- atât
- limitele
- construi
- construit
- afaceri
- dar
- by
- California
- apel
- CAN
- pasă
- caz
- cazuri
- celulă
- Schimbare
- si-a schimbat hainele;
- verifica
- Verificări
- îndeaproape
- Cloud
- Grup
- cod
- colaborarea
- Completă
- componente
- Calcula
- Condiții
- Configuraţie
- conexiune
- Consoleze
- constrângeri
- context
- Control
- controale
- Cheltuieli
- crea
- a creat
- creează
- CREDENTIALĂ
- scrisori de acreditare
- În prezent
- personalizat
- clienţii care
- de date
- inginer de date
- Pregătirea datelor
- adânc
- Mod implicit
- definit
- livra
- livrate
- livrare
- În funcție
- implementa
- dislocate
- Implementarea
- desfășurarea
- implementează
- descris
- Amenajări
- dezvolta
- în curs de dezvoltare
- Dezvoltare
- DevOps
- uşor
- efort
- oricare
- activat
- permite
- criptate
- se încheie
- aplica
- aplicarea
- inginer
- Inginerie
- inginerii
- asigura
- Afacere
- clienții întreprinderii
- Mediu inconjurator
- medii
- eroare
- mai ales
- Eter (ETH)
- eveniment
- evenimente
- exemplu
- excepție
- schimbate
- Experiențe
- experiment
- extinde
- facilita
- FAIL
- eșuează
- Eșec
- fals
- Caracteristică
- Fișier
- Fişiere
- Filtre
- descoperiri
- First
- Flexibilitate
- Concentra
- urma
- următor
- urmează
- Pentru
- găsit
- Gratuit
- din
- funcţie
- mai mult
- În plus
- FATĂ
- obține
- Caritate
- garanta
- Avea
- he
- lui
- Cum
- Cum Pentru a
- HTML
- http
- HTTPS
- IAM
- ID
- identifica
- Identitate
- Idle
- if
- imediat
- import
- in
- Inclusiv
- informații
- Infrastructură
- iniţiat
- inovatoare
- în interiorul
- instrucțiuni
- interactiv
- în
- invocă
- izolat
- IT
- ESTE
- Loc de munca
- Locuri de munca
- jpg
- Jupiter Notebook
- Cheie
- mai mare
- straturi
- AFLAȚI
- învăţare
- biblioteci
- Bibliotecă
- ciclu de viață
- îi place
- Limitat
- Limitele
- listat
- local
- la nivel local
- situat
- autentificat
- maşină
- masina de învățare
- face
- administrare
- manager
- gestionează
- multe
- maxim
- Mai..
- mijloace
- mecanism
- Întâlni
- mesaj
- mesaje
- cu
- ar putea
- minute
- monitorizate
- Monitorizarea
- mai mult
- nume
- necesar
- Nevoie
- necesar
- nevoilor
- Nou
- recent
- Nu.
- caiet
- notificare
- număr
- a avut loc
- of
- on
- afară
- operaţie
- Opțiune
- Opţiuni
- or
- comandă
- Altele
- afară
- producție
- exterior
- pachet
- pasionat
- pentru
- Pizza
- Platforme
- Plato
- Informații despre date Platon
- PlatoData
- plăcere
- Politicile
- Post
- pregătire
- premise
- prezenta
- precedent
- probleme
- proces
- produce
- Produs
- manager de produs
- Produse
- proprietăţi
- propus
- furniza
- prevăzut
- furnizează
- dispoziţie
- Piton
- RAR
- gata
- motiv
- recomandat
- record
- regiune
- legate de
- îndepărtat
- reînnoit
- depozit
- Resurse
- rolurile
- Regula
- Alerga
- funcţionare
- ruleaza
- Sam
- Secțiune
- securizat
- vedea
- trimite
- senior
- trimis
- serverless
- Servicii
- sesiune
- Sesiunile
- set
- configurarea
- ea
- să
- asemănător
- simplu
- soluţie
- soluţii
- REZOLVAREA
- unele
- Curând
- Scânteie
- specific
- viteză
- stivui
- Începe
- început
- Declarație
- Stare
- paşi
- Stop
- oprit
- puternic
- sigur
- de înot
- Elveția
- Lua
- luare
- sarcini
- Tehnologia
- șablon
- test
- acea
- lor
- Acolo.
- prin urmare
- Acestea
- lucruri
- acest
- aceste
- trei
- Prin
- timp
- la
- de asemenea
- subiect
- trafic
- transformatele
- declanşa
- a declanșat
- adevărat
- Două
- tip
- în
- care stau la baza
- înţelegere
- us
- Folosire
- utilizare
- utilizare-cazuri
- Utilizator
- utilizatorii
- folosind
- ux
- VALIDA
- Valori
- de
- Virtual
- aștepta
- Aşteptare
- walkthrough
- vrea
- a fost
- we
- web
- servicii web
- cand
- oricând
- care
- în timp ce
- voi
- cu
- în
- Apartamente
- lucrător
- muncitorii
- flux de lucru
- fabrică
- încă
- tu
- Ta
- zephyrnet