הזמנת ציוד ואביזרים

בדף הזה מוסבר איך להזמין חומרה של Google Distributed Cloud במודל מחובר. ‫Google Distributed Cloud במודל מחובר זמין במדינות הבאות:

  • אוסטרליה
  • אוסטריה
  • בלגיה
  • ברזיל
  • קנדה
  • דנמרק
  • פינלנד
  • צרפת
  • גרמניה
  • הונג קונג
  • יפן
  • הודו
  • אינדונזיה
  • איטליה
  • הולנד
  • נורווגיה
  • פולין
  • ערב הסעודית
  • סינגפור
  • קוריאה הדרומית
  • ספרד
  • שוודיה
  • שוויץ
  • בריטניה
  • ארצות הברית

לפני שמזמינים את הציוד, צריך לעמוד בדרישות להתקנה של Distributed Cloud connected.

הזמנת ציוד ל-Distributed Cloud במודל מחובר באמצעות מסוף Google Cloud

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

    לדף ההזמנות

  2. בוחרים את פרויקט היעד Google Cloud .

  3. לוחצים על יצירת הזמנה.

  4. ממלאים את טופס הבקשה ושולחים אותו.

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

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

הזמנת ציוד מחובר ל-Distributed Cloud באמצעות GDC Hardware Management API

‫GDC Hardware Management API מאפשר לכם להזמין באופן פרוגרמטי חומרה של Distributed Cloud. הזמנה מייצגת את הכוונה שלכם לפרוס את Distributed Cloud במודל מחובר. ההזמנה צריכה לכלול את הפרטים הבאים, שמשמשים לאורך כל מחזור החיים של הפריסה המחוברת של Distributed Cloud:

  • איש קשר לניהול הזמנות ולמשלוח
  • כתובת אתר המשלוח וכל מידע שרלוונטי למשלוח
  • הגדרת החומרה
  • הגדרת רשת

כדי להשלים את שאלון פרטי הלקוח (CIQ) ולסכם את ההיקף וההגדרה של הפריסה המחוברת של Distributed Cloud, צריך לעבוד עם נציג המכירות של Google.

המבנה של הזמנה

כדי לבצע הזמנה באמצעות GDC Hardware Management API, צריך ליצור משאב Order, וגם את המשאבים הנלווים Site, Zone ו-Hardware שהמשאב Order מפנה אליהם. אחר כך שולחים את משאב Order ל-Google. המשאבים האלה תומכים בפעולות CRUD רגילות. השם של כל משאב הוא נתיב שכולל את מזהה הפרויקט של היעד Google Cloud ואת האזור Google Cloud .

אלה הפונקציות של המקורות האלה. מידע נוסף על השימוש ב-GDC Hardware Management API מופיע במאמר Google Distributed Cloud CLI and API reference.

  • Order. המשאב הזה מבקש ליצור תחום אחד או יותר של Distributed Cloud. כשיוצרים את המשאב הזה, הוא מקבל שם שאפשר לגשת אליו בשדה create_order_response.name. הפורמט של שם המשאב Order הוא:

    `projects/`PROJECT_ID`/locations/`REGION`/orders/`ORDER_ID

    where:

    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו רוצים לפרוס את האזורים של Distributed Cloud. Google Cloud
    • ORDER_ID: מזהה ייחודי שמזהה את ההזמנה הזו. אם לא מציינים ערך, נוצר ערך באופן אוטומטי. מומלץ לספק ערך ייחודי של מזהה הזמנה שמורכב מאותיות קטנות, מספרים ומקפים. אחרת, קריאות ליצירת הזמנה שנכשלו עלולות ליצור הזמנות כפולות.
  • Site. המשאב הזה מייצג את המיקום הפיזי שבו רוצים לפרוס את חומרת Distributed Cloud. המשאב הזה כולל את פרטי הקשר של גורם אחראי שמתאם את הגישה לצורך מסירה ראשונית ותחזוקה עתידית. יכול להיות שאיש הקשר הזה שונה מאיש הקשר שציינתם בהזמנה.

  • Hardware. המשאב הזה יוצר מופע של מק"ט של Distributed Cloud במודל מחובר ומייצג שרת או מתלה של Distributed Cloud. כל משאב Hardware מפנה למשאבים המשויכים Order,Site ו-Zone. כדי לראות את המק"טים הזמינים, משתמשים בקריאה ל-API‏ ListSkus.

  • Zone. המשאב הזה מציין את הגדרת הרשת של המכונות המחוברות ושל האשכולות המשויכים ב-Distributed Cloud. אזור Distributed Cloud מכסה מתלה אחד או יותר של Distributed Cloud במודל מחובר, או את כל מכונות השרת של Distributed Cloud במודל מחובר שנפרסו במיקום שלכם.

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

מחזור החיים של הזמנה

למשאב Order יכול להיות אחד מהסטטוסים שמפורטים ב-State. הצדדים המעורבים יכולים להוסיף הערות להזמנה, וההערות נשמרות כמשאבי Comment שמוטמעים מתחת למשאב Order המתאים. אפשר לקרוא תגובות ולשלוח תגובות גם דרך GDC Hardware Management API וגם דרך מסוף Google Cloud .

אם ההזמנה מכילה את כל המידע הנדרש ויש לך חוזה חתום עם Google, ההזמנה עוברת את רצף המצבים הבא: ACCEPTED, BUILDING, SHIPPING, INSTALLING ו-COMPLETED.. המצבים של משאבי Zone ו-Hardware המשויכים מתעדכנים באופן סינכרוני עם משאב Order. אם נצטרך מידע נוסף מכם או אם לא חתמתם על חוזה עם Google, ההזמנה תעבור למצב ADDITIONAL_INFO_NEEDED ותמתין לפתרון באמצעות הערות. צריך לבקש שינוי או ביטול של הזמנה באמצעות תגובות.

בוחרים את פרויקט היעד Google Cloud .

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

מומלץ ליצור פרויקט נפרד לכל דומיין אדמיניסטרטיבי, כמו מדינה או מחלקה בחברה, ולכל תרחיש שימוש ברמה גבוהה, כמו קצה לעומת ליבה, ולנהל את הפריסה המחוברת של Distributed Cloud לדומיין דרך הפרויקט הזה. Google Cloud Google Cloud

Google Cloud הפרויקט מאפשר לכם לבצע את משימות הניהול הבאות:

  • להזמין ציוד ל-Distributed Cloud במודל מחובר.
  • מגדירים אשכולות מחוברים של Distributed Cloud ורושמים אותם ב-Fleet.
  • ניהול השקות של תוכנות.
  • ניהול נתונים מחוברים ב-Distributed Cloud ב-Cloud Storage.
  • ניהול פרטי הכניסה של Google Distributed Cloud במודל מחובר ב-Secret Manager.
  • ניהול יומנים ומדדים של Google Distributed Cloud במודל מחובר ב-Cloud Monitoring.

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

חומרה שהוזמנה בפרויקט מסוים ב- Google Cloud תמיד מנוהלת בפרויקט הזה ב- Google Cloud .

בחירת אזור היעד Google Cloud

הבחירה הספציפית של Google Cloud אזורים לפריסת Distributed Cloud מחובר תלויה בדרישות העסקיות ובהשלכות המשפטיות של המיקומים הגיאוגרפיים המטורגטים.

אם אתם משלבים את הפריסה המחוברת של Distributed Cloud עם טביעת רגל קיימת שלGoogle Cloud מספר אזורים, מומלץ למפות כל אזור מחובר של Distributed Cloud לאזור שמארח את התלות של אותו אזור. Google Cloud

אם אתם לא משלבים פריסה מקושרת של Distributed Cloud עם טביעת רגל קיימת, מומלץ לבחור מגוון אזורים כדי לשפר את המהימנות. Google CloudGoogle Cloud לדוגמה:

  • ממפים כל אזור מחובר של Distributed Cloud לאזור הנתמך Google Cloud הקרוב ביותר. כך מצמצמים את ההשפעה של תקלה במישור הניהול לאזור גיאוגרפי אחד.
  • ‫Stripe your Distributed Cloud connected across several Google Cloud regions. ההגבלה הזו מצמצמת את מספר האזורים המחוברים של Distributed Cloud שיכולים להיות מושפעים מתקלה במישור הניהול. עם זאת, האזורים המושפעים פרוסים על פני אזור גיאוגרפי גדול יותר.

    ‫Google Distributed Cloud במודל מחובר תומך באזורים הבאים Google Cloud :

  • אסיה: asia-east1, asia-east2, asia-northeast1, asia-northeast3, asia-south1, asia-south2, asia-southeast1, asia-southeast2

  • אירופה: europe-central2, europe-north1, europe-west1, europe-west2, europe-west3, europe-west4, europe-west6, europe-west8, europe-west9

  • המזרח התיכון: me-central1, me-west1

  • אוקיאניה: australia-southeast1

  • צפון אמריקה: northamerica-northeast1, northamerica-northeast2, us-central1, us-central2, us-east1, us-east4, us-east5, us-east7, us-south1, us-west1, us-west2, us-west3, us-west4, us-west8

  • דרום אמריקה: southamerica-east1, southamerica-west1

מגדירים את הסביבה

לפני שמתחילים, צריך לוודא שהתנאים הבאים מתקיימים:

  1. הגדרת סביבת פיתוח בשפת Python

  2. כדי להתקין את ספריית הלקוח של GDC Hardware Management API, מריצים את הפקודה הבאה:

    python3 -m pip install google-cloud-gdchardwaremanagement
    
  3. מפעילים את GDC Hardware Management API בפרויקט היעד Google Cloud .

יצירה ושליחה של הזמנת חומרה שמחוברת ל-Distributed Cloud באמצעות GDC Hardware Management API

השלבים בקטע הזה הם דוגמאות שממחישות איך ליצור משאב Order ולשלוח אותו ל-Google באמצעות GDC Hardware Management API. כדי לבצע את השלבים בקטע הזה, צריך להיות לכם תפקיד אדמין לניהול חומרה ב-GDC (roles/gdchardwaremanagement.admin) בפרויקט ב- Google Cloud .

  1. יוצרים משאב Order. לדוגמה:

    import datetime
    from google.cloud import gdchardwaremanagement_v1alpha
    from google.protobuf.timestamp_pb2 import Timestamp
    from google.type import postal_address_pb2
    
    client = gdchardwaremanagement_v1alpha.GDCHardwareManagementClient()
    
    contact = gdchardwaremanagement_v1alpha.Contact(
        given_name="John",
        family_name="Customer",
        email="jcustomer@example.com",
        phone="+1 123 456 7890",
    )
    
    organization_contact = gdchardwaremanagement_v1alpha.OrganizationContact(
        address=postal_address_pb2.PostalAddress(
            organization="Example Organization",
            address_lines=["1800 Amphibious Blvd."],
            locality="Mountain View",
            administrative_area="CA",
            postal_code="94045",
            region_code="US",
        ),
        contacts=[contact],
    )
    
    order = gdchardwaremanagement_v1alpha.Order(
        organization_contact=organization_contact,
        customer_motivation="I like Google Distributed Cloud!",
        fulfillment_time=Timestamp(
            seconds=int(datetime.datetime(2024, 11, 22, 9, 0).timestamp()),
        ),
        region_code="US",
    )
    
    create_order_response = client.create_order(
        request=gdchardwaremanagement_v1alpha.CreateOrderRequest(
            parent="projects/myProject/locations/us-east1",
            order_id="myOrderID",
            order=order,
        ),
    ).result()

    ההזמנה שלך נמצאת עכשיו במצב DRAFT והוקצה לה שם משאב שמאוחסן בשדה create_order_response.name. אפשר להשתמש בשם המשאב הזה כדי לשנות את ההזמנה או לעקוב אחרי הסטטוס שלה.

  2. יוצרים משאב Site. לדוגמה:

    site = gdchardwaremanagement_v1alpha.Site(
        organization_contact=organization_contact,
        google_maps_pin_uri="https://maps.app.goo.gl/z7bE8z8fffg6Sri46",
    )
    
    create_site_response = client.create_site(
        request=gdchardwaremanagement_v1alpha.CreateSiteRequest(
            parent="projects/myProject/locations/us-east1",
            site_id="mySite",
            site=site,
        ),
    ).result()
  3. יוצרים משאב Zone. לדוגמה:

    zone = gdchardwaremanagement_v1alpha.Zone(
        contacts=[contact],
        network_config=gdchardwaremanagement_v1alpha.ZoneNetworkConfig(
            management_ipv4_subnet=gdchardwaremanagement_v1alpha.Subnet(
                address_range="192.0.2.0/24",
                default_gateway_ip_address="192.0.2.1",
            ),
            machine_mgmt_ipv4_range="192.0.2.8/29",
            kubernetes_ipv4_subnet=gdchardwaremanagement_v1alpha.Subnet(
                address_range="203.0.113.0/24",
                default_gateway_ip_address="203.0.113.1",
            ),
            kubernetes_node_ipv4_range="203.0.113.8/29",
            kubernetes_control_plane_ipv4_range="203.0.113.16/29",
        ),
    )
    
    create_zone_response = client.create_zone(
        request=gdchardwaremanagement_v1alpha.CreateZoneRequest(
            parent="projects/myProject/locations/us-east1",
            zone_id="myZone",
            zone=zone,
        ),
    ).result()
  4. יוצרים את משאבי Hardware. צריך לציין hardware_idערך ייחודי לכל מכונה בפריסה המחוברת ל-Distributed Cloud. לדוגמה:

    from google.type import date_pb2
    
    hardware = gdchardwaremanagement_v1alpha.Hardware(
        order=create_order_response.name,
        site=create_site_response.name,
        zone=create_zone_response.name,
        config=gdchardwaremanagement_v1alpha.HardwareConfig(
            sku="projects/myProject/locations/us-east1/skus/gdce-server-l",
            power_supply=gdchardwaremanagement_v1alpha.types.PowerSupply.POWER_SUPPLY_AC,
        ),
        physical_info=gdchardwaremanagement_v1alpha.HardwarePhysicalInfo(
            power_receptacle=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.PowerReceptacleType.NEMA_5_15,
            network_uplink=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.NetworkUplinkType.RJ_45,
            voltage=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.Voltage.VOLTAGE_110,
            amperes=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.Amperes.AMPERES_15,
        ),
        installation_info=gdchardwaremanagement_v1alpha.HardwareInstallationInfo(
            rack_location="Floor 2, Room 201, Row 7, Rack 3",
            power_distance_meters=2,
            switch_distance_meters=2,
            rack_unit_dimensions=gdchardwaremanagement_v1alpha.Dimensions(
                width_inches=19,
                height_inches=1.75,
                depth_inches=30,
            ),
            rack_space=gdchardwaremanagement_v1alpha.RackSpace(
                start_rack_unit=12,
                end_rack_unit=12,
            ),
            rack_type=gdchardwaremanagement_v1alpha.types.HardwareInstallationInfo.RackType.FOUR_POST,
        ),
        requested_installation_date=date_pb2.Date(year=2024, month=11, day=22),
    )
    
    create_hardware_response = client.create_hardware(
        request=gdchardwaremanagement_v1alpha.CreateHardwareRequest(
            parent="projects/myProject/locations/us-east1",
            hardware_id="machineHardwareID",
            hardware=hardware,
        ),
    ).result()
  5. שליחת המשאב Order אל Google:

    submit_order_response = client.submit_order(
        request=gdchardwaremanagement_v1alpha.SubmitOrderRequest(
            name=create_order_response.name,
        ),
    ).result()

פתרון בעיות

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

שגיאה: 400 FAILED_PRECONDITION

אם מתקבל קוד השגיאה 400 עם הסטטוס FAILED_PRECONDITION בתגובה לקריאה ל-API, צריך לוודא שהבקשה תקפה לפעולה שמנסים להשלים. דוגמאות לבקשות לא תקינות כוללות שליחה של Order משאב עם שדות או ערכים חסרים, או ניסיון למחוק Hardware משאב שמשויך לOrder משאב שנשלח בעבר.

שגיאה: 400 INVALID_ARGUMENT

אם מקבלים קוד שגיאה 400 עם סטטוס INVALID_ARGUMENT בתגובה לקריאה ל-API, צריך לבדוק אם יש שמות שדות לא נכונים או ערכים שלא תואמים לסוגים הצפויים שלהם, או ערכים חסרים. יכול להיות שתקבלו את השגיאה הזו גם אם תשתמשו ב-updateMask בבקשת PATCH ואחד או יותר מהשדות שצוינו ב-updateMask לא תקינים.

כדי לפתור את הבעיה הזו, צריך לעיין במאמר בנושא GDC Hardware Management API ולוודא שכל שמות השדות והערכים נכונים, כולל הפורמט. אם משתמשים במטען ייעודי (payload) של JSON, צריך לוודא שכל המידע הנדרש כלול במטען הייעודי.

שגיאה: 401 UNAUTHENTICATED

אם מתקבל קוד השגיאה 401 עם הסטטוס UNAUTHENTICATED בתגובה לקריאה ל-API, צריך לבדוק את הגדרות האימות. מידע נוסף זמין במאמר בנושא הגדרה של Application Default Credentials.

שגיאה: 403 PERMISSION_DENIED

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

שגיאה: 404 NOT_FOUND

אם מתקבל קוד השגיאה 404 עם הסטטוס NOT_FOUND בתגובה לקריאה ל-API, צריך לוודא ששמות המשאבים והנתיב שצוינו בקריאה ל-API הם תקינים. כדי לוודא שכתובת ה-URL של הבקשה בנויה בצורה נכונה וכל השדות שכלולים בכתובת ה-URL תקינים, אפשר לעיין במאמר בנושא GDC Hardware Management API.

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