יצירת אפליקציית ‎ .NET בסביבה הגמישה ב-App Engine

מזהה אזור

הערך REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, המחרוזת REGION_ID.r כלולה בכתובות URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.

מידע נוסף על מזהי אזורים

במדריך למתחילים הזה נסביר איך ליצור ולפרוס אפליקציה שמציגה הודעה קצרה. כדי להשתמש באפליקציית הדוגמה שבמדריך הזה עם כל גרסה נתמכת של ‎ .NET, צריך לציין את גרסת זמן הריצה ואת מערכת ההפעלה בקובץ app.yaml. כברירת מחדל, App Engine משתמש בגרסת ה-LTS העדכנית ביותר של ‎ .NET אם לא מציינים גרסת זמן ריצה בקובץ app.yaml.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

דרישות מוקדמות נוספות

  1. מאתחלים את אפליקציית App Engine עם הפרויקט ובוחרים את האזור שלה:

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    כשמופיעה בקשה, בוחרים את האזור שבו רוצים למקם את אפליקציית App Engine.

  2. מתקינים את הכלים הבאים במחשב המקומי:

    • מתקינים את גרסת ה-LTS של ‎.NET Core SDK.

    • אם אתם משתמשים ב-Visual Studio, אתם צריכים להשתמש בגרסה 2015 ואילך. התמונות זמינות לאפליקציות ASP.NET Core שנכתבו ל-‎ .NET Core 1.0, ‏ 1.1, ‏ 2.0 ו-2.1.

המיקומים של App Engine

‫App Engine הוא אזורי, כלומר התשתית שמריצה את האפליקציות שלכם נמצאת באזור ספציפי, ו-Google מנהלת אותה כך שהיא זמינה באופן יתיר בכל התחומים באותו אזור.

הגורמים העיקריים לבחירת האזור שבו האפליקציות שלכם יפעלו הם עמידה בדרישות של זמן אחזור, זמינות או עמידות. בדרך כלל אפשר לבחור את האזור הקרוב ביותר למשתמשים של האפליקציה, אבל כדאי גם לבדוק איפה App Engine זמין וגם את המיקומים שלGoogle Cloud המוצרים והשירותים האחרים שהאפליקציה משתמשת בהם. שימוש בשירותים בכמה מיקומים יכול להשפיע על זמן האחזור של האפליקציה וגם על התמחור שלה.

אחרי שמגדירים את האזור של האפליקציה, אי אפשר לשנות אותו.

אם כבר יצרתם אפליקציית App Engine, תוכלו לראות את האזור שלה באחת מהדרכים הבאות:

במדריך הזה אנחנו מניחים שאתם יודעים איך לפתח אפליקציות אינטרנט באמצעות C#‎.

הורדה של אפליקציית Hello World

יצרנו אפליקציית Hello World ל-App Engine כדי שתוכלו להבין במהירות איך פורסים אפליקציה ב- Google Cloud. אפליקציית Hello World דומה לאפליקציה שנוצרת על ידי Visual Studio כשיוצרים אפליקציית ASP.NET Core ריקה. אפליקציית הדוגמה מוסיפה קובץ app.yaml. הקובץ app.yaml הוא קובץ תצורה של App Engine שמציין את סביבת זמן הריצה והגדרות אחרות של App Engine.

  1. משכפלים את מאגר אפליקציית הדוגמה Hello World למחשב המקומי.

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
    

    אפשרות נוספת היא להוריד את הקובץ לדוגמה כקובץ ZIP ולחלץ אותו.

  2. עוברים לספרייה שמכילה את הקוד לדוגמה.

       cd dotnet-docs-samples/appengine/flexible/HelloWorld
    

הפעלת Hello World במחשב המקומי

  1. מריצים את הפקודות הבאות מהספרייה dotnet-docs-samples/appengine/flexible/HelloWorld/HelloWorld.Sample:

    dotnet restore
    dotnet run
    
  2. בדפדפן האינטרנט, נכנסים לכתובת http://localhost:5000. ההודעה "Hello World" מאפליקציית הדוגמה מוצגת בדף. בחלון הטרמינל, מקישים על Ctrl+C כדי לצאת משרת האינטרנט.

פריסה והפעלה של Hello World ב-App Engine

  1. מריצים את הפקודה gcloud app deploy משורת הפקודה.
  2. מפעילים את הדפדפן וצופים באפליקציה בכתובת https://PROJECT_ID.REGION_ID.r.appspot.com gcloud app browse

הפעם, הדף שמציג את ההודעה Hello World מועבר על ידי שרת אינטרנט שפועל במופע של App Engine.

כל הכבוד! פרסתם את האפליקציה הראשונה שלכם ב-App Engine בסביבה הגמישה ב-App Engine!

אם נתקלתם בשגיאות כלשהן במהלך פריסת האפליקציה, כדאי לעיין בטיפים לפתרון בעיות.

בקטעים הבאים מוסבר איך לנקות את המשאבים, ויש קישורים לפעולות נוספות שאפשר לבצע.

הסרת המשאבים

כדי להימנע מצבירת חיובים, אתם יכולים למחוק את הפרויקט ב- Google Cloud כדי להפסיק את החיוב על כל המשאבים שבהם השתמשתם בפרויקט.

  1. נכנסים לדף Manage resources במסוף Google Cloud .

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

המאמרים הבאים

לומדים את כל הפלטפורמה

עכשיו, אחרי שראיתם איך מפתחים ומפעילים אפליקציות App Engine, אתם יכולים לעיין בשאר המאמרים בנושא Google Cloud. כבר מותקן אצלכם Google Cloud CLI, שכולל את הכלים שמאפשרים לכם ליצור אינטראקציה עם מוצרים כמו Cloud SQL, ‏ Cloud Storage,‏ Firestore ועוד.

מידע על סביבה גמישה ב-App Engine

הנה כמה נושאים שיעזרו לכם להמשיך ללמוד על App Engine:

סקר קוד של Hello World

‫Hello World היא האפליקציה הכי פשוטה של App Engine, כי היא מכילה רק שירות אחד, יש לה רק גרסה אחת וכל הקוד נמצא בתיקיית השורש של האפליקציה. בקטע הזה מוסבר על כל אחד מקובצי האפליקציה.

Program.cs

אפליקציית Hello World היא אפליקציית ASP.NET פשוטה:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => builder.Configuration["My:Greeting"]);

app.Run();

app.yaml

בקובץ app.yaml מפורטת התצורה הבאה של האפליקציה:

  • הערך env: flex מציין שהאפליקציה משתמשת בסביבה גמישה ב-App Engine.
  • מציינת את סביבת זמן הריצה שבה האפליקציה משתמשת.

    runtime: aspnetcore
    env: flex
    
    runtime_config:
      operating_system: ubuntu22
    
    # This sample incurs costs to run on the App Engine flexible environment. 
    # The settings below are to reduce costs during testing and are not appropriate
    # for production use. For more information, see:
    # https://cloud.google.com/appengine/docs/flexible/dotnet/configuring-your-app-with-app-yaml
    manual_scaling:
      instances: 1
    resources:
      cpu: 1
      memory_gb: 0.5
      disk_size_gb: 10
    
    env_variables:
      # The __ in My__Greeting will be translated to a : by ASP.NET.
      My__Greeting: Hello AppEngine!