קריאת נתונים בדוח

אחרי ש-App Optimize API יוצר דוח, מאחזרים את נתוני העלות והשימוש של הדוח. בפעולה הזו המידע הזה יורד כעמודות ושורות, במבנה שנקבע לפי המאפיינים והמדדים שציינתם כשביקשתם את הדוח.

בקשת ה-API הזו שונה מבקשה לקבלת המטא-נתונים של דוח, שמחזירה רק את הגדרות התצורה של הדוח.

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

gcloud

במסוף Google Cloud , מפעילים את Cloud Shell.

הפעלת Cloud Shell

בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

למידע נוסף על הגדרת אימות בסביבת ייצור, ראו את המאמר בנושא הגדרת Application Default Credentials לקוד שפועל ב- Google Cloud במאמרי העזרה בנושא אימות ב- Google Cloud .

Python

  1. מתקינים את ספריית הלקוח של Python עבור App Optimize API.
  2. כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    3. אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

      אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .

    למידע נוסף על הגדרת אימות בסביבת ייצור, ראו את המאמר בנושא הגדרת Application Default Credentials לקוד שפועל ב- Google Cloud במאמרי העזרה בנושא אימות ב- Google Cloud .

REST

כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

    התקינו את ה-CLI של Google Cloud.

    אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

למידע נוסף על הגדרת אימות בסביבת ייצור, ראו את המאמר בנושא הגדרת Application Default Credentials לקוד שפועל ב- Google Cloud במאמרי העזרה בנושא אימות ב- Google Cloud .

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

כדי לקבל את ההרשאות שנדרשות לקריאת נתונים בדוח, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ App Optimize Viewer (roles/appoptimize.viewer) בפרויקט שכולל את משאב הדוח. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

קריאת נתוני דוחות

כדי לקרוא נתונים מדוח שהושלם, פועלים לפי ההוראות לשיטה המועדפת:

gcloud

משתמשים בפקודה gcloud beta app-optimize reports read כדי לאחזר את הנתונים של דוח.

gcloud beta app-optimize reports read REPORT_ID \
  --project=PROJECT_ID \
  --location=global

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: המזהה של Google Cloud הפרויקט שכולל את משאב הדוח שרוצים לקרוא.
  • REPORT_ID: המזהה של הדוח לקריאה. המזהה הזה צוין כשנוצר הדוח, ואפשר לקבל אותו על ידי הצגת רשימת הדוחות.

הפקודה gcloud מטפלת אוטומטית בהחלפה בין דפים, ומחזירה את כל המשאבים המבוקשים.

כדי להבין את הערכים בשדה cost, אפשר לעיין במאמר בנושא הסבר על מדדי עלות. מידע נוסף על הנתונים והסבר על המגבלות שלהם זמינים במאמר הסבר על הנתונים.

Python

קוד Python הבא משתמש ב-AppOptimizeClient.read_report() כדי לקרוא את נתוני הדוח.

from google.cloud import appoptimize_v1beta

project_id = "PROJECT_ID"
report_id = "REPORT_ID"

# Create the App Optimize client and read a report's data
client = appoptimize_v1beta.AppOptimizeClient()
request = appoptimize_v1beta.ReadReportRequest(
    name=f"projects/{project_id}/locations/global/reports/{report_id}"
)
result = client.read_report(request=request)

# Display the report data
print(result)

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: המזהה של Google Cloud הפרויקט שכולל את משאב הדוח שרוצים לקרוא.
  • REPORT_ID: המזהה של הדוח לקריאה. המזהה הזה צוין כשנוצר הדוח, ואפשר לקבל אותו על ידי הצגת רשימת הדוחות.

ספריית הלקוח מטפלת בחלוקה לדפים באופן אוטומטי, ומחזירה תוצאות מהאיטרטור.

כדי להבין את הערכים בשדה cost, אפשר לעיין במאמר בנושא הסבר על מדדי עלות. מידע נוסף על הנתונים והסבר על המגבלות שלהם זמינים במאמר הסבר על הנתונים.

REST

שליחת בקשת HTTP POST לשיטה המותאמת אישית של REST API :read.

  1. כדי לשלוח את הבקשה הזו לקריאת הדף הראשון של נתוני הדוח, משתמשים בפקודה curl הבאה:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{"pageSize": PAGE_SIZE}' \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה של Google Cloud הפרויקט שכולל את משאב הדוח שרוצים לקרוא.
    • REPORT_ID: המזהה של הדוח לקריאה. המזהה הזה צוין כשנוצר הדוח, ואפשר לקבל אותו על ידי הצגת רשימת הדוחות.
    • PAGE_SIZE: המספר המקסימלי של השורות שיוחזרו בכל דף. השרת מחזיר עד 1,000 שורות לכל דף, גם אם מציינים ערך גדול יותר. גם גודל התשובות מוגבל ל-10MB, ולכן יכול להיות שיוחזרו פחות שורות כדי לא לחרוג מהמגבלה הזו. אם לא מציינים את pageSize, המערכת משתמשת בגודל ברירת המחדל.
  2. אם הבקשה מצליחה, ה-API מחזיר תגובה בפורמט JSON שמכילה את הסכימה והשורות של הדוח. זוהי דוגמה לתשובה מוצלחת:

    {
      "rows": [
        [
          "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-1",
          {
            "currency_code": "USD",
            "units": "106",
            "nanos": 321590000
          }
        ],
        [
          "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-2",
          {
            "currency_code": "USD",
            "units": "797",
            "nanos": 641691000
          }
        ]
      ],
      "columns": [
        {
          "name": "application",
          "type": "STRING"
        },
        {
          "name": "cost",
          "type": "RECORD",
          "columns": [
            {
              "name": "currency_code",
              "type": "STRING"
            },
            {
              "name": "units",
              "type": "INT64"
            },
            {
              "name": "nanos",
              "type": "INT64"
            }
          ]
        }
      ],
      "nextPageToken": "AABBCCddeeffGGHHiiJJkkLL"
    }
    

    כדי להבין את הערכים בשדה cost, אפשר לעיין במאמר בנושא הסבר על מדדי עלות. מידע נוסף על הנתונים והסבר על המגבלות שלהם זמינים במאמר הסבר על הנתונים.

  3. אם התשובה כוללת את השדה nextPageToken, הדוח מכיל שורות נוספות. כדי לאחזר את דף התוצאות הבא, שולחים בקשת POST נוספת שכוללת את האסימון הזה בשדה pageToken של תוכן ה-JSON:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{"pageToken": "NEXT_PAGE_TOKEN", "pageSize": PAGE_SIZE}' \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • NEXT_PAGE_TOKEN: הערך של nextPageToken שהתקבל בתגובה הקודמת.
    • PAGE_SIZE: המספר המקסימלי של השורות שיוחזרו בכל דף. אפשר לשנות את הערך הזה בין בקשות לדפים, אבל המגבלות בצד השרת עדיין חלות.

    חוזרים על התהליך הזה עד שהתשובה לא מכילה יותר את nextPageToken, מה שמצביע על כך שאחזרתם את כל נתוני הדוח.

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