PracticU

הגדרת קובץ env
פרויקט NodeJS

בלי כתוביותעם כתוביות
PracticU › קורס Terraform - DevOps - Azure & AWS › הגדרת קובץ env פרויקט NodeJS
מילון מושגים:
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
ענן - אספקת משאבי מחשוב כשירות דרך האינטרנט, כמו שרתים, אחסון ותוכנות, במקום להחזיק אותם מקומית.
npm - מנהל החבילות של Node.js, המשמש להתקנה ולניהול ספריות JavaScript בפרויקט.
MySQL - מערכת ניהול מסדי נתונים יחסיים בקוד פתוח, נפוצה מאוד באתרים וביישומי אינטרנט.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.
חבילה - אוסף ארוז של קוד, ספריות או קבצים המופץ כיחידה אחת ומותקן בעזרת מנהל חבילות.
JSON - פורמט טקסט קריא לייצוג נתונים מובְנים כזוגות מפתח-ערך, נפוץ להחלפת מידע בין שרת ללקוח.
שם משתמש - מזהה ייחודי שמשתמש מזין כדי להזדהות במערכת, לרוב יחד עם סיסמה.

הגדרת קובץ env פרויקט NodeJS
באתר שעל המכונה בענן, npm start נכשל כי הוא מחפש MySQL מקומי בפורט 3306, והמסד נמצא ב-RDS. ההרצאה מגדירה את משתני הסביבה בקובץ .env על המכונה הלינוקסית, ביד, כדי לדעת מה לשים אחר כך בסקריפט האוטומטי.
השלבים העיקריים
1. איך npm יודע מה להריץ: npm start קורא את package.json. שם מוגדר שהפקודה היא node server.js, ושם מופיעות גם ה-dependencies.
2. מה הקוד צריך: cat server.js מראה את הספריות (כולל MySQL) ואת טעינת .env. הקוד משתמש במשתנים DB_HOST, DB_USER, DB_PASS, DB_NAME ו-TABLE_NAME, ובפורט (אחרת 3000). המשתנים מחברים בין הקוד הכללי למקרה הספציפי.
3. משתנה זמני: export DB_HOST=<endpoint> (אותיות קטנות ב-export). echo מאשר שהוא נתפס, אבל אחרי restart הוא נעלם.
4. משתנים קבועים בקובץ: echo עם הפניית פלט > יוצר או דורס את הקובץ .env, ו->> מוסיף שורה בסופו. מוסיפים כך DB_HOST, DB_USERNAME (admin), הסיסמה, DB_NAME (Practicu), TABLE_NAME (users) ופורט 80. cat .env בודק כל שורה.
5. בדיקה: npm start רץ בלי שגיאה בפורט 80, וגלישה לכתובת ה-IP של המכונה מציגה את הנתונים מ-MySQL.
למה עושים את זה ידנית
הפקודות נבדקות קודם על מכונה חיה. כשהן עובדות, מכניסים אותן לסקריפט שיוצר את המכונה, כדי שהקובץ ייווצר אוטומטית. זה נעשה בהרצאה הבאה.
שימו לב
- export תקף רק עד האתחול, ו-.env נטען בכל הפעלה.
- בלינוקס אותיות גדולות וקטנות חשובות.
אחרי ההרצאה אפשר לחבר את האתר ל-RDS דרך קובץ .env ולהריץ אותו.
השיעור הבא בקורס: קובץ env ב-Terraform פרויקט NodeJS

פרקי ההרצאה: הגדרת קובץ env פרויקט NodeJS

  1. 00:00

    שגיאת חיבור ל-MySQL

  2. 00:39

    תפקיד הקובץ package.json

  3. 01:16

    זיהוי הכשל בחיבור לדאטה בייס

  4. 01:50

    טעינת משתני סביבה מקובץ env

תמלול ההרצאה: הגדרת קובץ env פרויקט NodeJS

הטקסט המלא של הדקות הראשונות בהרצאה «הגדרת קובץ env פרויקט NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם. בסרטון זה אנחנו נחבר את האתר שלנו לדאטה בייס, ל-MySQL, כי כרגע יש לנו הודעת שגיאה כשאנחנו מנסים להפעיל את האתר. פקודת NPM Start נותנת לי פה Error, שאי אפשר להתחבר לפורט שלוש שלוש אפס שש כי הוא מחפש אותו מקומית והדאטה בייס שלנו בכלל נמצא בענן, במכונה נפרדת ב-RDS.

  2. 00:28

    אפשר לראות שפקודת NPM Start מריצה את השרת Node.js עם קובץ server.js. דרך אגב, איך פקודת NPM Start ידעה איזה שם של קובץ להריץ מתוך התיקייה? איך היא ידעה דווקא את ה-server.js להריץ ולא איזשהו קובץ אחר?

  3. 00:46

    הרי בתיקייה יכולים להיות הרבה קבצים. איך NPM Start יודעת מה להריץ? כי היא מסתכלת בקובץ package.json. אז NPM כברירת מחדל מסתכל ב-package.json, ואם נעשה cat על package.json, כאן אפשר לראות שכנרשום NPM Start הוא יריץ את הפקודה node רווח server.js.

  4. 01:08

    מפה הוא לקח את הפקודה. אז קובץ package.json, בתוכו מסתכל ה-NPM. כאן הוא רואה את ה-dependencies, את מה להתקין. כאן הוא רואה איך לעשות את הסטארט של האפליקציה, אבל זה לא פותר לנו את הבעיה.

  5. 01:23

    NPM Start מריץ לנו את הפקודה node server.js ועף בשורה מספר ארבעים כי הוא לא מצליח להתחבר ל-MySQL. אם אנחנו נסתכל מה קורה בתוך server.js, cat server.js פה למעלה, אפשר לראות את כל ה-requires, את כל ספריות העזר שהוא מטעין, כולל ספריית חיבור ל-MySQL.

  6. 01:45

    פה הפקודה שטוענת משתני הסביבה מתוך קובץ env. זאת אומרת בנוסף למשתני הסביבה הקיימים בתוך מערכת ההפעלה, יש משתני סביבה נוספים שנטענים רק עבורנו מתוך קובץ נקודה env.

  7. 02:01

    זאת הפקודה הזאת. פה למטה אנחנו משתמשים בהם.

לקורס המלא: קורס Terraform אונליין ל‑DevOps

ההרצאה הקודמת: סקריפט שמתקין npm - פרויקט NodeJS

ההרצאה הבאה: קובץ env ב-Terraform - פרויקט NodeJS

הרצאות קשורות מקורסים אחרים

  • קובץ הגדרות כללי ב-NodeJS
  • קובץ Manifest
  • הגדרת Frame-Relay - פרויקט גמר
  • קובץ YAML - Kubernetes

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell
  • קורס Git ו-GitHub עם Visual Studio