בדף הזה מוסבר איך משתמשים ב-Cloud Billing Catalog API כדי:
- להציג את רשימת השירותים הציבוריים, כולל המטא-נתונים הרלוונטיים של כל אחד מהשירותים.
- להציג את רשימת המק"טים של כל שירות, כולל:
- תיאור קריא (לבני אדם) של המק"ט.
- התמחור הציבורי של המק"ט.
- האזורים שבהם המק"ט זמין לרכישה.
- נתוני הסיווג של המק"ט.
אם יש לכם מחירים מותאמים אישית שמוסכמים בחוזה, תוכלו להשתמש ב-Pricing APIכדי להציג מחירים שרלוונטיים לחשבון לחיוב ב-Cloud.
לפני שמתחילים
לפני שמשתמשים ב-Cloud Billing Catalog API, צריך להפעיל את Cloud Billing API ולקבל מפתח API.
Enable the Cloud Billing API.
כשמתבקשים לאשר את הפרויקט ב-Google Cloud שבו רוצים להשתמש ב-Cloud Billing Catalog API, מומלץ להשתמש בפרויקט שמוגדר לכלול את כל הצרכים שלכם לניהול החיוב ול-FinOps בחשבון לחיוב ב-Cloud, כולל המיקום שבו מופעל Cloud Billing API.
תוכלו לקרוא מהם יתרונות השימוש בפרויקט שממוקד ב-FinOps לתרחישי שימוש שונים של ניהול החיוב.
קבלת מפתח API
כדי לשלוח קריאה ל-Cloud Billing Catalog API, צריך מפתח API. תוכלו לקרוא עוד פרטים על מפתחות API במאמר שימוש במפתחות API.
הצגה של רשימת שירותים ציבוריים מהקטלוג
בשלב הזה תוצג לכם רשימה של כל השירותים הציבוריים, כולל המטא-נתונים הרלוונטיים של כל אחד מהשירותים.
קטע הקוד הבא מציג רשימה של כל השירותים הציבוריים בקטלוג.
בקשה:
GET https://cloudbilling.googleapis.com/v1/services?key=<var>API_KEY</var>
תשובה:
{
"services": [
{
"name": "[SERVICE_NAME]",
"serviceId": "[SERVICE_ID]",
"displayName": "[DISPLAY_NAME]",
},
[...]
],
"nextPageToken": "[NEXT_PAGE_TOKEN]"
}
כאשר:
-
[SERVICE_NAME]
הוא שם המשאב של השירות. -
[SERVICE_ID]
הוא המזהה של השירות. -
[DISPLAY_NAME]
הוא השם המוצג של השירות הקריא (לבני אדם).
התוצאות מחולקות לדפים, ומוגבלות ל-5,000 מק"טים בדף. התשובה כוללת אסימון nextPageToken
, שניתן להשתמש בו כדי לקבל את 5,000 התוצאות הבאות.
כדי לקבל את המקבץ הבא צריך להגדיר: pageToken=[NEXT_PAGE_TOKEN]
.
כדי לצמצם את מספר המק"טים בדף צריך להגדיר:
pageSize=[CUSTOM_PAGE_SIZE]
.
אחרי ההצגה של כל הפריטים, לא מוחזר אף אסימון.
הצגה של רשימת המק"טים של שירות
קטע הקוד הבא מציג את רשימת המק"טים שמופיעים בקטלוג לשירות שצוין:
בקשה:
GET https://cloudbilling.googleapis.com/v1/services/SERVICE_ID/skus?key=<var>API_KEY</var>
כאשר:
-
SERVICE_ID
הוא המזהה של השירות שמוגדר כהורה.
תשובה:
{
"skus": [
{
"name": "[SKU_NAME]",
"skuId": "[SKU_ID]",
"description": "[SKU_DESCRIPTION]",
"category": {
"serviceDisplayName": "[SVC_DISPLAY_NAME]",
"resourceFamily": "[FAMILY]",
"resourceGroup": "[GROUP]",
"usageType": "[USAGE]",
},
"serviceRegions": [
"[REGION]"
],
"pricingInfo": [
{
"effectiveTime": "[TIME]",
"summary": "[SUMMARY]",
"pricingExpression": {
"usageUnit": "[USAGE_UNIT]",
"usageUnitDescription": "[USAGE_UNIT_DESCRIPTION]",
"baseUnit": "[BASE_UNIT]",
"baseUnitDescription": "[BASE_UNIT_DESCRIPTION]",
"baseUnitConversionFactor": [BASE_CONVERSION_FACTOR],
"displayQuantity": [DISPLAY_QUANTITY],
"tieredRates": [
{
"startUsageAmount": [START_AMOUNT],
"unitPrice": {
"currencyCode": "[CURRENCY_CODE]",
"units": [UNITS],
"nanos": [NANOS],
},
}
],
},
"aggregationInfo": {
"aggregationLevel": enum("[AGGREGATION_LEVEL]"),
"aggregationInterval": enum("[AGGREGATION_INTERVAL]"),
"aggregationCount": [AGGREGATION_COUNT],
},
"currencyConversionRate": [CONVERSION_RATE],
}
],
"serviceProviderName": "[SERVICE_PROVIDER]",
"geoTaxonomy": {
"type": "[TAXONOMY_TYPE]",
"regions": [
"[REGION]"
]
}
}
],
"nextPageToken": "[NEXT_PAGE_TOKEN]"
}
כאשר:
-
[SKU_NAME]
הוא שם המשאב של המק"ט, שמופיע באופן הבא:services/{SERVICE_ID}/skus/{SKU_ID}
. -
[SKU_ID]
הוא המזהה הייחודי של המק"ט. -
[SKU_DESCRIPTION]
הוא התיאור הקריא (לבני אדם) של המק"ט. -
[SVC_DISPLAY_NAME]
הוא השם המוצג של השירות שאליו שייך המק"ט. -
[FAMILY]
הוא סוג המוצר שאליו מתייחס המק"ט. לדוגמה: Compute, Storage, Network וכו'. -
[GROUP]
הוא הסיווג הקבוצתי של מק"טים קשורים. לדוגמה: RAM, GPU, Prediction וכו'. -
[USAGE]
מייצג את אופן השימוש במק"ט. לדוגמה: OnDemand, Preemptible, Commit1Mo, Commit1Yr וכו'. -
[REGION]
הוא רשימה של אזורי השירות שבהם המק"ט מוצע. לדוגמה: "asia-east1". -
[TIME]
היא חותמת זמן שמייצגת את השעה שבה התמחור הזה היה בתוקף, שמופיעה בפורמט הבא:2014-10-02T15:01:23.045123456Z
. -
[SUMMARY]
הוא סיכום קריא (לבני אדם) של נתוני התמחור. -
[USAGE_UNIT]
הוא הקיצור של יחידת השימוש שבה צוין התמחור. לדוגמה: הפירוש שלusageUnit
עם הערך 'GiBy' הוא שהשימוש מצוין ביחידות 'Gibibytes'. -
[USAGE_UNIT_DESCRIPTION]
הוא יחידת השימוש בפורמט קריא (לבני אדם). לדוגמה: 'Gibibyte'. -
[BASE_UNIT]
הוא היחידה הבסיסית של המק"ט, והוא היחידה שמשמשת לייצוא נתוני שימוש. לדוגמה, המשמעות שלbaseUnit
ב-'By' היא שהשימוש מצוין ביחידות 'Bytes'. -
[BASE_UNIT_DESCRIPTION]
הוא היחידה הבסיסית בפורמט קריא (לבני אדם). לדוגמה, 'byte'. -
[BASE_CONVERSION_FACTOR]
הוא הגורם להמרה של מחיר לפי unit_price למחיר לפי base_unit, ולהמרה של כמות start_usage ל-start_usage_amount ב-base_unit. לדוגמה, start_usage_amount * base_unit_conversion_factor = start_usage_amount in base_unit -
[DISPLAY_QUANTITY]
הוא הכמות המומלצת של יחידות להצגת נתוני תמחור. כשמציגים את נתוני התמחור, מומלץ להציג את הנתונים לפי:(unitPrice * displayQuantity) per displayQuantity usageUnit
. השדה הזה לא משפיע על נוסחת התמחור והוא משמש למטרות תצוגה בלבד. לדוגמה: אם הערך שלunitPrice
הוא '0.0001 USD', הערך שלusageUnit
הוא 'GB' והערך שלdisplayQuantity
הוא '1000', הדרך המומלצת להציג את נתוני התמחור היא '0.10 USD per 1000 GB'. -
[START_AMOUNT]
הוא הכמות ההתחלתית, שרק אחרי שצורכים אותה מתמחרים את השימוש לפי התעריף. לדוגמה: אםstartUsageAmount
מכיל את הערך 10, המשמעות היא שהשימוש יתומחר במחיר שיוגדר בהמשך רק אחרי צריכה של 10 היחידות הראשונות שלusage_units
. -
[CURRENCY_CODE]
הוא קוד המטבע בן שלוש אותיות כפי שמוגדר בתקן ISO 4217. -
[UNITS]
הוא מספר היחידות השלמות של הסכום. לדוגמה: אם הערך של קוד המטבע 'currencyCode' הוא 'USD', המשמעות היא ש-1 יחידה = 1 דולר ארה"ב. -
[NANOS]
הוא מספר יחידות הננו (10^-9) של הסכום. הערך חייב להיות בין -999,999,999 ל- +999,999,999, כולל. אם הערך של היחידות השלמות הוא חיובי, מספר יחידות הננו חייב להיות חיובי או אפס. אם מספר היחידות השלמות הוא אפס, מספר יחידות הננו יכול להיות חיובי, אפס או שלילי. אם מספר היחידות השלמות הוא שלילי, הערך של יחידות הננו חייב להיות שלילי או אפס.
העלות של המק"ט היא units + nanos
. לדוגמה, עלות של 1.75$ מיוצגת על ידי units=1
וגם nanos=750,000,000
.
-
[AGGREGATION_LEVEL]
הוא הרמה שבה נצבר השימוש לצורך חישוב העלות. הערכים החוקיים הם ACCOUNT, PROJECT ו-AGGREGATION_LEVEL_UNSPECIFIED. -
[AGGREGATION_INTERVAL]
הוא מרווח הזמן שבו השימוש נצבר לצורך חישוב העלות. הערכים החוקיים הם DAILY, MONTHLY ו-AGGREGATION_INTERVAL_UNSPECIFIED. -
[AGGREGATION_COUNT]
הוא מספר מרווחי הזמן לצבירה. לדוגמה: אם הערך שלaggregationLevel
הוא 'DAILY' והערך שלaggregationCount
הוא 14, הצבירה תתבצע לאורך 14 ימים. -
[CONVERSION_RATE]
הוא שיעור ההמרה של מטבעות, מ-USD למטבע שצוין בבקשה. אם לא צוין מטבע, בשדה יופיע הערך 1.0 כברירת מחדל. -
[SERVICE_PROVIDER]
הוא המזהה של ספק השירות. בשירותים של צד ראשון ב-Google Cloud Platform, בשדה יופיע הערך 'Google'. -
[TAXONOMY_TYPE]
הוא סוג הטקסונומיה הגיאוגרפית של מק"ט:GLOBAL
,REGIONAL
אוMULTI_REGIONAL
. -
[REGION]
הוא רשימת האזורים שמשויכים למק"ט. השדה הזה נשאר ריק למק"טים גלובליים כי הם משויכים לכל אזורי Google Cloud.
התוצאות מחולקות לדפים, ומוגבלות ל-5,000 מק"טים בדף. התשובה כוללת אסימון nextPageToken
, שניתן להשתמש בו כדי לקבל את 5,000 התוצאות הבאות.
כדי לקבל את המקבץ הבא צריך להגדיר: pageToken=[NEXT_PAGE_TOKEN]
.
כדי לצמצם את מספר המק"טים בדף צריך להגדיר:
pageSize=[CUSTOM_PAGE_SIZE]
.
אחרי ההצגה של כל הפריטים, לא מוחזר אף אסימון.
מידע קשור
מידע על תמחור ומק"טים זמין גם בדוח טבלת התמחור ובייצוא מחירי החיוב ב-Cloud ל-BigQuery.