Checkpoints
Enable the Cloud Scheduler API
/ 10
Create two static IP addresses
/ 20
Create an instance with static IP address created earlier.
/ 20
Deploy cloud function
/ 20
Create App Engine Application
/ 10
Run a cloud schedular job
/ 10
Confirm the deletion of unused IP address
/ 10
ניקוי כתובות IP שאינן בשימוש
GSP646
סקירה כללית
בשיעור ה-Lab הזה תשתמשו ב-Cloud Functions וב-Cloud Scheduler כדי לזהות ולנקות את משאבי הענן שלא נוצלו. ב-Google Cloud, כתובות IP סטטיות הן משאב פנוי כשהן מחוברות למאזן עומסים או למכונה וירטואלית (VM). כשכתובת IP סטטית קבועה-מראש אבל לא נעשה בה שימוש, נצבר עבורה חיוב לפי שעה. באפליקציות שבהן נעשה שימוש רב בכתובות IP סטטיות ובניהול הקצאות דינמי נרחב, אי הניצול יכול להפוך למשמעותי במשך הזמן.
הפעולות שתבצעו
-
יצירת מכונה וירטואלית של Compute Engine עם כתובת IP חיצונית סטטית וכתובת IP חיצונית סטטית נפרדת שאינה בשימוש
-
פריסת פונקציה ב-Cloud Functions כדי לזהות כתובות שאינן בשימוש
-
יצירת משימה של Cloud Scheduler כדי לתזמן את הפעלת הפונקציה באמצעות HTTP שמשמש כטריגר
ארכיטקטורה
בתרשים הבא מתוארת הארכיטקטורה שבה תשתמשו בקטע הראשון של שיעור ה-Lab הזה, כשתתזמנו פונקציה ב-Cloud Functions כדי לזהות ולנקות כתובות IP שאינן בשימוש.
הגדרה ודרישות
בקטע הזה תגדירו את התשתית ואת הזהויות הנדרשות להשלמת שיעור ה-Lab.
לפני שלוחצים על הלחצן Start Lab (התחלת המעבדה)
עליכם לקרוא את ההוראות האלו. המעבדות מוגבלות בזמן ואי אפשר להשהות אותן. הטיימר מתחיל כשלוחצים על Start Lab ומראה את משך הזמן שבו תוכלו להשתמש במשאבים ב-Google Cloud.
במעבדה המעשית הזו של Qwiklabs, תוכלו לבצע את פעילויות המעבדה בעצמכם בסביבת ענן אמיתית, ולא בהדמיה או בסביבה להדגמה. לשם כך, יינתנו לכם פרטי כניסה זמניים שאיתם תיכנסו ותיגשו אל Google Cloud במשך הפעילות של המעבדה.
מה צריך?
כדי להשלים את המעבדה, תצטרכו:
- גישה לדפדפן אינטרנט סטנדרטי (מומלץ להשתמש בדפדפן Chrome).
- זמן להשלמת המעבדה.
הערה: אם כבר יש לכם פרויקט או חשבון Google Cloud אישי משלכם, אין להשתמש בו במעבדה הזו.
הערה: אם משתמשים במכשיר עם Chrome OS, צריך לפתוח חלון אנונימי כדי להריץ את המעבדה הזו.
איך מתחילים שיעור מעשי ונכנסים אל Google Cloud Console
-
לוחצים על הלחצן Start Lab (התחלת השיעור המעשי). אם זה שיעור בתשלום, יקפוץ חלון שבו בוחרים אמצעי תשלום. מימין יש חלונית עם פרטי כניסה זמניים שמולאו מראש. צריך להשתמש בפרטים האלו בשיעור המעשי הזה.
-
מעתיקים את שם המשתמש ואז לוחצים על Open Google Console (פתיחת Google Console). יופעלו משאבים במעבדה, ואז ייפתח הדף Sign in (כניסה) בכרטיסייה נפרדת.
טיפ: כדאי לפתוח את הכרטיסיות בחלונות נפרדים, אחד לצד השני.
-
בדף Sign in (כניסה), מדביקים את שם המשתמש שהעתקתם מהחלונית Connection Details (פרטי התחברות). אחר כך מעתיקים ומדביקים את הסיסמה.
חשוב: צריך להשתמש בפרטי הכניסה מהחלונית Connection Details. אין להשתמש בפרטי הכניסה של Qwiklabs. אם יש לכם חשבון Google Cloud משלכם, אל תשתמשו בו בשיעור המעשי הזה (כך תימנעו מחיוב בתשלום).
-
לוחצים כדי לעבור את הדפים הבאים:
- הסכמה לתנאים ולהגבלות.
- אין להוסיף אפשרויות שחזור או אימות דו-שלבי (כי החשבון הזה זמני).
- אין להירשם לתקופות ניסיון בחינם.
לאחר כמה דקות, Cloud Console ייפתח בכרטיסייה הזו.
הפעלת Cloud Shell
סביבת Cloud Shell היא מכונה וירטואלית שמותקנים בה כלים למפתחים. יש בה ספריית בית בנפח עקבי של 5GB והיא פועלת ב-Google Cloud. ב-Cloud Shell יש גישה לשורת הפקודה למשאבים שלכם ב-Google Cloud.
ב-Cloud Console, בסרגל הכלים שבפינה הימנית העליונה, לוחצים על הלחצן Activate Cloud Shell (הפעלת Cloud Shell).
לוחצים על Continue (המשך).
יחלפו כמה רגעים עד שההקצאה והחיבור לסביבת העבודה יושלמו. עם החיבור יתבצע גם אימות, ואז הפרויקט יוגדר לפי PROJECT_ID. לדוגמה:
gcloud
הוא כלי שורת הפקודה של Google Cloud. הוא מותקן מראש ב-Cloud Shell ותומך בהשלמת פקודות.
תוכלו לרשום את שם החשבון הפעיל באמצעות הפקודה הבאה:
gcloud auth list
(פלט)
Credentialed accounts:
- <myaccount>@<mydomain>.com (active)
(פלט לדוגמה)
Credentialed accounts:
- google1623327_student@qwiklabs.net
תוכלו לרשום את מזהה הפרויקט באמצעות הפקודה הבאה:
gcloud config list project
(פלט)
[core]
project = <project_ID>
(פלט לדוגמה)
[core]
project = qwiklabs-gcp-44776a13dea667a6
הפעלת ממשקי API ומאגר שכפולים
-
ב-Cloud Shell, מפעילים את Cloud Scheduler API:
gcloud services enable cloudscheduler.googleapis.com
הערה: ההפעלה שלCloud Scheduler API עשויה להימשך זמן מה.
כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.
-
שכפול המאגר:
git clone https://github.com/GoogleCloudPlatform/gcf-automated-resource-cleanup.git && cd gcf-automated-resource-cleanup/
-
מגדירים משתני סביבה והופכים את תיקיית המאגר ל-$WORKDIR שבה תריצו את כל הפקודות הקשורות לשיעור ה-Lab הזה:
export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) export region=us-central1 WORKDIR=$(pwd)
יצירת כתובות IP
-
ב-Cloud Shell, נכנסים לספרייה unused-ip:
cd $WORKDIR/unused-ip
-
מייצאים את השמות של כתובות ה-IP כמשתנים:
export USED_IP=used-ip-address export UNUSED_IP=unused-ip-address
-
יוצרים שתי כתובות IP סטטיות:
gcloud compute addresses create $USED_IP --project=$PROJECT_ID --region=us-central1 gcloud compute addresses create $UNUSED_IP --project=$PROJECT_ID --region=us-central1
במעבדה הזו נעשה שימוש באזור us-central1, אבל אתם יכולים לבחור אזור אחר ולהתייחס אליו בעקביות עד לסיום המעבדה.
-
מאשרים שנוצרו שתי כתובות:
gcloud compute addresses list --filter="region:(us-central1)"
בפלט, משמעותו של הסטטוס RESERVED היא שכתובות ה-IP אינן בשימוש:
NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS unused-ip-address 35.232.144.85 EXTERNAL us-central1 RESERVED used-ip-address 104.197.56.87 EXTERNAL us-central1 RESERVED
כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.
-
מגדירים את כתובת ה-IP שמשתמשים בה כמשתנה סביבה:
export USED_IP_ADDRESS=$(gcloud compute addresses describe $USED_IP --region=us-central1 --format=json | jq -r '.address')
יצירת VM
-
ב-Cloud Shell, יוצרים מכונה:
gcloud compute instances create static-ip-instance \ --zone=us-central1-a \ --machine-type=n1-standard-1 \ --subnet=default \ --address=$USED_IP_ADDRESS
כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.
-
מאשרים שאחת מכתובות ה-IP נמצאת עכשיו בשימוש:
gcloud compute addresses list --filter="region:(us-central1)"
הפלט דומה לפלט הבא:
NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS unused-ip-address 35.232.144.85 EXTERNAL us-central1 RESERVED used-ip-address 104.197.56.87 EXTERNAL us-central1 IN_USE
בדיקת הקוד של הפונקציה ב-Cloud Functions
-
ב-Cloud Shell, יוצרים פלט של הקטע הראשי של הקוד:
cat $WORKDIR/unused-ip/function.js | grep "const compute" -A 31
הפלט שיתקבל זהה לפלט הבא:
const compute = new Compute();
compute.getAddresses(function(err, addresses){ // gets all addresses across regions
if(err){
console.log("there was an error: " + err);
}
if (addresses == null) {
console.log("no addresses found");
return;
}
console.log("there are " + addresses.length + " addresses");
// iterate through addresses
for (let item of addresses){
// get metadata for each address
item.getMetadata(function(err, metadata, apiResponse) {
// if the address is not used:
if (metadata.status=='RESERVED'){
// compute age by convering ISO 8601 timestamps to Date
var creationDate = new Date(metadata.creationTimestamp);
var currDate = new Date();
var addressAge = Math.floor((currDate - creationDate)/86400e3);;
// delete address
item.delete(function(err, operation, apiResponse2){
if (err) {
console.log("could not delete address: " + err);
}
})
}
בדוגמת הקוד שצוינה למעלה, אלו הפרטים החשובים:
בקטע compute.getAddresses(function(err, addresses)
נעשה שימוש ב-method מסוג getAddresses כדי לאחזר כתובות IP בכל האזורים בפרויקט.
בקטע item.getMetadata(function(err, metadata, apiResponse)
מתקבלים המטא-נתונים לכל כתובת IP ונבדק שדה ה-STATUS שלה.
בקטעif ((metadata.status=='RESERVED') & (calculateAge(metadata.creationTimestamp) >= ageToDelete)){
נבדק אם כתובת ה-IP נמצאת בשימוש. הגיל שלה מחושב באמצעות פונקציית עזר והוא מושווה לקבוע (המוגדר כ-0 למטרות שיעור ה-Lab).
בקטע item.delete(function(err, operation, apiResponse2){
נמחקת כתובת ה-IP.
פריסת הפונקציה ב-Cloud Functions
-
ב-Cloud Shell, פורסים את הפונקציה ב-Cloud Functions:
gcloud functions deploy unused_ip_function --trigger-http --runtime=nodejs8
אם מופיעה הודעת שגיאה, ממתינים רגע ומנסים שוב. אם מתבקשים לעשות זאת, מזינים Y כדי לאפשר הפעלות לא מאומתות.
פריסה של פונקציה ב-Cloud Functions עשויה להימשך 2-5 דקות, תלוי באזור.
כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.
-
מגדירים את כתובת ה-URL שמשמשת כטריגר כמשתנה סביבה:
export FUNCTION_URL=$(gcloud functions describe unused_ip_function --format=json | jq -r '.httpsTrigger.url')
תזמון ובדיקה של הפונקציה ב-Cloud Functions
-
ב-Cloud Shell, יוצרים משימה של Cloud Scheduler להרצת הפונקציה ב-Cloud Functions בשעה 2:00 מדי לילה:
gcloud scheduler jobs create http unused-ip-job \ --schedule="* 2 * * *" \ --uri=$FUNCTION_URL
כשתוצג הבקשה, מזינים Y כדי ליצור את האפליקציה ב-App Engine בתוך הפרויקט, מזינים את הבחירה המספרית המתאימה לפריסת האפלקיציה ב-
us-central1
, ומקישים על Enter.
כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.
-
כדי לבדוק את המשימה, מפעילים את הטריגר באופן ידני:
gcloud scheduler jobs run unused-ip-job
-
אם תקבלו הודעה הדומה להודעה הבאה:
There is no App Engine app in project [qwiklabs-gcp-00-6384ad453ae0]. Would you like to create one (Y/n)?
מקישים על CTRL+Z, ממתינים רגע ואז מנסים להריץ שוב את הפקודה (לא אמור להתקבל פלט).
כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.
-
מוודאים שכתובת ה-IP שאינה בשימוש נמחקה:
gcloud compute addresses list --filter="region:(us-central1)"
הפלט דומה לפלט הבא:
NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS
used-ip-address 104.197.56.87 EXTERNAL us-central1 IN_USE
כדי לוודא שהמטרה הושגה, לוחצים על Check my progress.
כל הכבוד!
במעבדה הזו השלמתם את המשימות הבאות:
- יצרתם מכונה וירטואלית של Compute Engine עם כתובת IP חיצונית סטטית וכתובת IP חיצונית סטטית נפרדת שאינה בשימוש
- פרסתם פונקציה ב-Cloud Functions כדי לזהות כתובות שאינן בשימוש
- יצרתם משימה של Cloud Scheduler כדי לתזמן את הפעלת הפונקציה באמצעות HTTP שמשמש כטריגר
סיום המשימה
שיעור ה-Lab ללימוד עצמי זה הוא חלק מיחידת הלימוד Optimizing your Google Cloud Costs ב-Qwiklabs. יחידת לימוד היא סדרה של שיעורי Lab קשורים שיוצרים מסלול לימוד. השלמת יחידת הלימוד הזו מזכה אתכם בתג שמופיע למעלה, לציון ההישג שלכם. אתם יכולים להציג את התג או התגים באופן גלוי לכול ולקשר אותם לקורות החיים שלכם באינטרנט או לחשבון במדיה חברתית. רוצים לקבל קרדיט מיידי על ביצוע שיעור ה-Lab הזה? הירשמו ליחידת הלימוד הזו.
לצפייה ביחידות לימוד של Qwiklabs נוספות.
מעבר לשיעור ה-Lab הבא
המשיכו את יחידת הלימוד עם שיעור ה-LabOptimizing Costs with Cloud Storage או עם האפשרויות הבאות:
הדרכה והסמכה של Google Cloud
יעזרו לכם להפיק את המרב מהאמצעים הטכנולוגיים של Google Cloud. השיעורים שלנו מכילים מיומנויות טכניות ושיטות מומלצות כדי שתוכלו להתחיל לעבוד מהר ולהמשיך ללמוד ולהתפתח. נציג את העקרונות הבסיסיים להכשרה ברמה מתקדמת, עם אפשרויות וירטואליות, שידורים חיים או על פי דרישה, בהתאם ללוח הזמנים העמוס שלכם. בעזרת ההסמכות תוכלו לאשר ולאמת את המיומנות והמומחיות שלכם באמצעים הטכנולוגיים של Google Cloud.
עדכון אחרון של המדריך: 26 בינואר 2021.
בדיקה אחרונה של שיעור ה-Lab: 22 בדצמבר 2021.
זכויות יוצרים 2024 Google LLC. כל הזכויות שמורות. Google והלוגו של Google הם סימנים מסחריים רשומים של Google LLC. שמות של חברות ומוצרים אחרים עשויים להיות סימנים מסחריים של החברות, בהתאמה, שאליהן הם משויכים.