שימוש בדוחות מלאי

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

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

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

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

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

  • כדי ליצור ולנהל הגדרות של דוחות מלאי:

    • roles/storage.admin בקטגוריית המקור ובקטגוריית היעד

    • roles/storageinsights.admin בפרויקט

  • כדי לקרוא ולהוריד דוחות מלאי:

    • roles/storage.objectViewer בקטגוריית היעד

    • roles/storageinsights.viewer בפרויקט

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

ההרשאות הנדרשות

כדי ליצור ולנהל הגדרות של דוחות מלאי:

  • storage.buckets.get בקטגוריית המקור
  • storage.objects.list בקטגוריית המקור
  • storage.buckets.getObjectInsights בקטגוריית המקור
  • storage.buckets.get בקטגוריית היעד
  • storage.objects.create בקטגוריית היעד
  • storageinsights.reportConfigs.delete בפרויקט
  • storageinsights.reportConfigs.get בפרויקט
  • storageinsights.reportConfigs.create בפרויקט
  • storageinsights.reportConfigs.list בפרויקט
  • storageinsights.reportConfigs.update בפרויקט

כדי לקרוא ולהוריד דוחות מלאי:

  • storage.objects.get בקטגוריית היעד
  • storageinsights.reportDetails.get בפרויקט
  • storageinsights.reportDetails.list בפרויקט

יכול להיות שתוכלו לקבל את ההרשאות האלה גם בתפקידים מוגדרים מראש אחרים. במאמר תפקידי IAM ל-Cloud Storage מוסבר אילו הרשאות יש לכל תפקיד.

במאמר שימוש ב-IAM מוסבר איך להשתמש בתפקידים כדי לשלוט בגישה לקטגוריות. במאמר ניהול הגישה מוסבר איך להשתמש בתפקידים כדי לשלוט בגישה לפרויקטים.

הפעלת Storage Insights API

המסוף

Enable the Storage Insights API.

Roles required to enable APIs

To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

Enable the API

שורת הפקודה

Enable the Storage Insights API:

Roles required to enable APIs

To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

gcloud services enable storageinsights.googleapis.com

ממשקי API ל-REST

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. כדי להפעיל את Storage Insights API, משתמשים ב- cURL כדי להפעיל את ה-method‏ services.enable:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      https://serviceusage.googleapis.com/v1/projects/PROJECT_ID/services/storageinsights.googleapis.com:enable
    

    מחליפים את:

    PROJECT_ID עם מזהה הפרויקט שעבורו רוצים להפעיל את ה-API.

יצירת הגדרות לדוחות מלאי

המסוף

כדי ליצור הגדרה לדוחות מלאי, מבצעים את השלבים הבאים:

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שרוצים להשתמש בה כ-source bucket.

  3. בדף Bucket details, לוחצים על הכרטיסייה Inventory reports.

  4. לוחצים על Create report configuration.

  5. בקטע Identify your report configuration, מוסיפים את השם המוצג להגדרת דוח המלאי. השם המוצג יכול להכיל עד 256 תווים.

  6. בקטע Choose metadata fields, בוחרים את שדות המטא-נתונים שרוצים לכלול בדוחות המלאי.

  7. לוחצים על Continue.

  8. בקטע Choose a file format, בוחרים את פורמט הקובץ שאיתו רוצים ליצור דוחות מלאי.

  9. בקטע Choose a destination bucket, בוחרים את הקטגוריה שבה רוצים להשתמש כ-destination bucket.

    בקטע Enter destination path (optional)‎ אפשר לציין את destination path שבו יופקו דוחות המלאי.

  10. בקטע Scheduling options, מציינים את התדירות, תאריך ההתחלה ותאריך הסיום של יצירת הדוחות.

  11. לוחצים על Create.

    הדף Report configuration details מוצג. בדף יופיעו המטא-נתונים של דוחות המלאי שנוצרו.

שורת הפקודה

  1. כדי ליצור הגדרה לדוחות מלאי, מריצים את הפקודה gcloud storage insights inventory-reports create:

    gcloud storage insights inventory-reports create SOURCE_BUCKET_URL \
      --csv-separator=SEPARATOR \
      --csv-delimiter=DELIMITER \
      --[no]-csv-header \
      --parquet \
      --display-name=DISPLAY_NAME \
      --destination=DESTINATION_PATH \
      --metadata-fields=METADATA_FIELD \
      --schedule-starts=START_DATE \
      --schedule-repeats=FREQUENCY \
      --schedule-repeats-until=END_DATE

    מחליפים את:

    • SOURCE_BUCKET_URL בכתובת ה-URL של קטגוריית המקור. לדוגמה, gs://my_example_source_bucket.

    • SEPARATOR בתו שמשמש להפרדת הרשומות בקובץ ה-CSV של דוח המלאי. התו חייב להיות \n או \r\n. ערך ברירת המחדל הוא \n. זה שינוי אופציונלי. אם נעשה שימוש בדגל --csv-separator, אי אפשר להשתמש בדגל --parquet.

    • DELIMITER בתו שמפריד בין השדות בקובץ ה-CSV של דוח המלאי. הערך הזה יכול לכלול רק תו אחד והוא לא יכול להיות זהה לערך של SEPARATOR. ערך ברירת המחדל הוא ,. זה שינוי אופציונלי. אם משתמשים בדגל --csv-delimiter, אי אפשר להשתמש בדגל --parquet.

    • --[no]-csv-header בדגל שמציין אם לכלול כותרות בקובץ ה-CSV של דוח המלאי. כדי לכלול את הכותרות משתמשים בדגל --csv-header, וכדי לא לכלול את הכותרות משתמשים בדגל --no-csv-header. אם משתמשים באחד מהדגלים האלה, אי אפשר להשתמש בדגל --parquet.

    • DISPLAY_NAME בשם שניתן לעריכה של ההגדרה של דוח המלאי. זה שינוי אופציונלי.

    • --parquet בדגל ליציאת דוחות מלאי בפורמט Apache Parquet, במקום בפורמט CSV. אם משתמשים בדגל הזה, אי אפשר להשתמש בדגלים --csv-delimiter, ‫--csv-separator ו---[no-]csv-header.

    • DESTINATION_PATH בקטגוריה או התיקייה שבקטגוריה שבה יופקו דוחות מלאי. לדוגמה, gs://my_example_destination_bucket או gs://my_example_destination_bucket/path/to/inventory/report.

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

    • METADATA_FIELD ברשימה מופרדת בפסיקים של שדות מטא-נתונים שרוצים לכלול בדוח המלאי.

    • START_DATE בתאריך (בפורמט UTC) שבו תרצו להתחיל להפיק דוחות מלאי. לדוגמה, 2022-01-15.

    • FREQUENCY בתדירות שבה רוצים להפיק דוחות מלאי. הערכים האפשריים הם daily או weekly.

    • END_DATE בתאריך (בפורמט UTC) שבו תרצו להפסיק את ההפקה של דוחות מלאי. הערך חייב להיות מאוחר יותר מהערך שבשדה START_DATE. לדוגמה, אם מציינים את התאריך 2022-02-15, המשמעות היא שהחל מ-16 בפברואר 2022 לא יופקו יותר דוחות מלאי.

ספריות לקוח

Java

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.


import com.google.cloud.storageinsights.v1.CSVOptions;
import com.google.cloud.storageinsights.v1.CloudStorageDestinationOptions;
import com.google.cloud.storageinsights.v1.CloudStorageFilters;
import com.google.cloud.storageinsights.v1.CreateReportConfigRequest;
import com.google.cloud.storageinsights.v1.FrequencyOptions;
import com.google.cloud.storageinsights.v1.LocationName;
import com.google.cloud.storageinsights.v1.ObjectMetadataReportOptions;
import com.google.cloud.storageinsights.v1.ReportConfig;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import com.google.common.collect.ImmutableList;
import com.google.type.Date;
import java.io.IOException;

public class CreateInventoryReportConfig {

  public static void createInventoryReportConfig(
      String projectId, String bucketLocation, String sourceBucket, String destinationBucket)
      throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      ReportConfig reportConfig =
          ReportConfig.newBuilder()
              .setDisplayName("Example inventory report configuration")
              .setFrequencyOptions(
                  FrequencyOptions.newBuilder()
                      .setFrequency(FrequencyOptions.Frequency.WEEKLY)
                      .setStartDate(Date.newBuilder().setDay(15).setMonth(8).setYear(3022).build())
                      .setEndDate(Date.newBuilder().setDay(15).setMonth(9).setYear(3022).build())
                      .build())
              .setCsvOptions(
                  CSVOptions.newBuilder()
                      .setDelimiter(",")
                      .setRecordSeparator("\n")
                      .setHeaderRequired(true)
                      .build())
              .setObjectMetadataReportOptions(
                  ObjectMetadataReportOptions.newBuilder()
                      .addAllMetadataFields(ImmutableList.of("project", "name", "bucket"))
                      .setStorageFilters(
                          CloudStorageFilters.newBuilder().setBucket(sourceBucket).build())
                      .setStorageDestinationOptions(
                          CloudStorageDestinationOptions.newBuilder()
                              .setBucket(destinationBucket)
                              .build())
                      .build())
              .build();
      CreateReportConfigRequest request =
          CreateReportConfigRequest.newBuilder()
              .setParent(LocationName.of(projectId, bucketLocation).toString())
              .setReportConfig(reportConfig)
              .build();
      ReportConfig response = storageInsightsClient.createReportConfig(request);
      System.out.println("Created inventory report config with name " + response.getName());
    }
  }
}

ממשקי API ל-REST

‫API ל-JSON

כדי ליצור הגדרה לדוחות מלאי, מבצעים את השלבים הבאים:

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. יוצרים קובץ JSON שמכיל את המידע הבא, שבו כל השדות נדרשים אלא אם צוין אחרת:

    {
      "display_name": "DISPLAY_NAME",
      "frequency_options": {
        "frequency": "FREQUENCY",
        "start_date": "START_DATE",
        "end_date": "END_DATE",
      },
      "csv_options": {
        "record_separator": "RECORD_SEPARATOR",
        "delimiter": "DELIMITER",
        "header_required": HEADER_REQUIRED
      },
      "object_metadata_report_options": {
         "metadata_fields": [
          "METADATA_FIELD",
          ...
        ],
        "storage_filters": {
          "bucket": "SOURCE_BUCKET_NAME"
        },
        "storage_destination_options": {
          "bucket": "DESTINATION_BUCKET_NAME",
          "destination_path": "DESTINATION_PATH"
        }
      }
    }

    מחליפים את:

    לדוגמה, בדוגמת הקוד הבאה יוצרים הגדרת דוח מלאי בשם Example inventory report configuration, שיוצרת דוחות בתדירות שבועית:

    {
      "display_name": "Example inventory report configuration",
      "frequency_options": {
        "frequency": "WEEKLY",
        "start_date": {
          "day": 15,
          "month": 8,
          "year": 2022
        },
        "end_date": {
          "day": 15,
          "month": 9,
          "year": 2022
        },
      },
      "csv_options": {
        "record_separator": "\n",
        "delimiter": ",",
        "header_required": true
      },
      "object_metadata_report_options": {
         "metadata_fields": [
          "project",
          "name",
          "bucket"
        ],
        "storage_filters": {
          "bucket": "example_source_bucket"
        },
        "storage_destination_options": {
          "bucket": "example_destination_bucket"
        }
      }
    }
  3. כדי להחיל את ההגדרה של דוח המלאי, מפעילים את הפקודה cURL כדי לקרוא ל-API ל-JSON עם בקשת ‎ReportConfig Create:

    curl -X POST --data-binary @JSON_FILE_NAME \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    מחליפים את:

    • JSON_FILE_NAME בנתיב לקובץ JSON שיצרתם בשלב הקודם.

    • YOUR_PROJECT בשם הפרויקט שבו נמצאות קטגוריות המקור והיעד.

    • LOCATION במיקום של קטגוריות המקור והיעד. לדוגמה, us-west1.

הקצאת התפקידים הנדרשים לסוכן השירות

סוכן שירות ברמת הפרויקט נוצר באופן אוטומטי בפעם הראשונה שמגדירים תצורה של דוחות מלאי. השם של סוכן השירות פועל לפי הפורמט service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com, והוא מופיע בדף IAM ב Google Cloud מסוף כשמסמנים את התיבה Include Google-provided role grants.

כדי שהשירות Storage Insights יוכל ליצור ולכתוב דוחות מלאי, מבקשים מהאדמין להקצות לסוכן השירות את תפקידי ה-IAM הבאים:

  • roles/storage.insightsCollectorService בקטגוריית המקור. התפקיד הזה כולל את ההרשאות storage.buckets.getObjectInsights ו-storage.buckets.get
  • roles/storage.objectCreator בקטגוריית היעד. התפקיד הזה כולל את ההרשאה storage.objects.create

במאמר שימוש ב-IAM מוסבר איך מקצים תפקידים. אתם יכולים להשתמש במסוף Google Cloud או ב-Google Cloud CLI כדי להקצות את התפקיד roles/storage.insightsCollectorService. לדוגמה:

gcloud storage buckets add-iam-policy-binding SOURCE_BUCKET_URL \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com \
    --role=roles/storage.insightsCollectorService

מהרגע שסוכן השירות מקבל את ההרשאות הנדרשות, ועד שהוא כותב את דוח המלאי הראשון בקטגוריית היעד, יכולות לחלוף עד 24 שעות.

עריכת ההגדרות לדוח מלאי

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

המסוף

כדי לערוך הגדרה של דוח מלאי:

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על השם של קטגוריית המקור שמכילה את ההגדרות של דוח המלאי שרוצים לערוך.

  3. בדף Bucket details של קטגוריית המקור, לוחצים על הכרטיסייה Inventory reports.

  4. לוחצים על שם ההגדרה של דוח המלאי שרוצים לערוך.

  5. בדף Report configuration details שמופיע, לוחצים על ‏ Edit ועורכים את המאפיינים.

שורת הפקודה

כדי לערוך הגדרה של דוח מלאי:

  1. כדי למצוא את שם ההגדרה של דוח המלאי שרוצים לערוך, פותחים את רשימת כל הגדרות המלאי בקטגוריית המקור באמצעות הפקודה gcloud storage insights inventory-reports list:

    gcloud storage insights inventory-reports list \
      --source=SOURCE_BUCKET \
      --filter=EXPRESSION \
      --page-size=SIZE \
      --sort-by=FIELD \
      --format="yaml(name)"

    מחליפים את:

    • SOURCE_BUCKET בכתובת ה-URL של קטגוריית המקור שכוללת את ההגדרה לדוחות מלאי.

    • EXPRESSION במסנן בוליאני שיחול על כל פריט משאב שייכלל בדוח. אם הערך של הביטוי הוא True, הפריט ייכלל. לפרטים נוספים ולדוגמאות לביטויי סינון, מריצים את הפקודה $ gcloud topic filters.

    • SIZE במספר המקסימלי של משאבים לדף. ערך ברירת המחדל הוא 50.

    • FIELD ברשימה מופרדת בפסיקים של שמות מפתחות של שדות משאבים, שלפיהם יתבצע מיון. ברירת המחדל מוגדרת לסדר עולה. כדי לציין סדר יורד, מוסיפים את התו ~ בתחילת השדה.

    1. כדי לערוך את שדות ההגדרה של דוח המלאי שרוצים לעדכן, משתמשים בפקודה gcloud storage insights inventory-reports update. בדוגמה הבאה מעדכנים את ההגדרה של דוח המלאי כך שתיצור דוחות מלאי מדי יום בפורמט Apache Parquet:

      gcloud storage insights inventory-reports update CONFIG_NAME \
      --parquet \
      --schedule-repeats="daily"

ספריות לקוח

Java

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.


import com.google.cloud.storageinsights.v1.ReportConfig;
import com.google.cloud.storageinsights.v1.ReportConfigName;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import com.google.cloud.storageinsights.v1.UpdateReportConfigRequest;
import com.google.protobuf.FieldMask;
import java.io.IOException;

public class EditInventoryReportConfig {


  public static void editInventoryReportConfig(
          String projectId, String location, String inventoryReportConfigUuid) throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      ReportConfigName name = ReportConfigName.of(projectId, location, inventoryReportConfigUuid);
      ReportConfig reportConfig = storageInsightsClient.getReportConfig(name);

      // Set any other fields you want to update here
      ReportConfig updatedReportConfig =
              reportConfig.toBuilder().setDisplayName("Updated Display Name").build();

      storageInsightsClient.updateReportConfig(
              UpdateReportConfigRequest.newBuilder()
                      // Add any fields that you want to update to the update mask, in snake case
                      .setUpdateMask(FieldMask.newBuilder().addPaths("display_name")
                              .build())
                      .setReportConfig(updatedReportConfig).build());

      System.out.println("Edited inventory report config with name " + name);
    }
  }
}

ממשקי API ל-REST

‫API ל-JSON

כדי לערוך הגדרה לדוחות מלאי, מבצעים את השלבים הבאים:

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. כדי לקבל את השם של ההגדרה של דוח המלאי שרוצים לערוך, מפעילים את הפקודה cURL כדי לקרוא ל-API בפורמט JSON עם בקשת ‎ReportConfig Get:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    מחליפים את:

    • YOUR_PROJECT בשם הפרויקט שבו נמצאות קטגוריות המקור והיעד.

    • LOCATION במיקום של קטגוריות המקור והיעד. לדוגמה, us-west1.

    אם רוצים לאחזר את כל ההגדרות של דוחות המלאי בקטגוריית מקור ספציפית, אפשר לצרף לבקשה את פרמטר השאילתה filter:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?filter=objectMetadataReportOptions.storageFilters.bucket=BUCKET_NAME" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    מחליפים את:

    • YOUR_PROJECT בשם הפרויקט שבו נמצאות קטגוריות המקור והיעד.
    • LOCATION במיקום של קטגוריות המקור והיעד. לדוגמה, us-west1.
    • BUCKET_NAME בשם של קטגוריית המקור שמכילה את ההגדרות של דוחות המלאי שרוצים לערוך.
  3. יוצרים קובץ JSON שכולל את השינויים שרוצים לבצע במאפיינים. בדוגמה הבאה מעדכנים את ההגדרה של דוח המלאי כך שתיצור דוחות מלאי מדי יום בפורמט Apache Parquet:

    {
      "ReportConfig": {
        "frequency_options": {
          "frequency": "DAILY"
        },
        "parquet_options": {
        }
      }
  4. כדי להחיל את ההגדרה של דוח המלאי, מפעילים את הפקודה cURL כדי לקרוא ל-API ל-JSON עם בקשת ‎ReportConfig Patch:

    curl --request PATCH \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
      --data-binary "@JSON_FILE_NAME.json" \
    

    מחליפים את:

    • YOUR_PROJECT בשם הפרויקט שבו נמצאות קטגוריות המקור והיעד.

    • LOCATION במיקום של קטגוריות המקור והיעד. לדוגמה, us-west1.

    • REPORT_CONFIG_UUID ב-UUID שנוצר באופן אוטומטי של ההגדרה לדוחות מלאי.

הצגת רשימה של הגדרות לדוחות מלאי

המסוף

כדי לראות רשימה של הגדרות של דוחות מלאי בקטגוריית המקור:

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על השם של קטגוריית המקור שמכילה את הגדרות דוחות המלאי שייכללו בדוח.

  3. בדף Bucket details, לוחצים על הכרטיסייה Inventory reports.

    יופיעו ההגדרות של דוח המלאי בקטגוריית המקור.

שורת הפקודה

תוכלו לראות את כל הגדרות המלאי בקטגוריית המקור באמצעות הפקודה gcloud storage insights inventory-reports list:

gcloud storage insights inventory-reports list \
  --source=SOURCE_BUCKET \
  --filter=EXPRESSION \
  --page-size=SIZE \
  --sort-by=FIELD \
  --format="yaml(name)"
  

מחליפים את:

  • SOURCE_BUCKET בכתובת ה-URL של קטגוריית המקור שכוללת את ההגדרה לדוחות מלאי.

  • EXPRESSION במסנן בוליאני שיחול על כל פריט משאב שייכלל בדוח. אם הערך של הביטוי הוא True, הפריט ייכלל. לפרטים נוספים ולדוגמאות לביטויי סינון, מריצים את הפקודה $ gcloud topic filters.

  • SIZE במספר המקסימלי של משאבים לדף. ערך ברירת המחדל הוא 50.

  • FIELD ברשימה מופרדת בפסיקים של שמות מפתחות של שדות משאבים, שלפיהם יתבצע מיון. ברירת המחדל מוגדרת לסדר עולה. כדי לציין סדר יורד, מוסיפים את התו ~ בתחילת השדה.

ספריות לקוח

Java

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.


import com.google.cloud.storageinsights.v1.LocationName;
import com.google.cloud.storageinsights.v1.ReportConfig;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import java.io.IOException;

public class ListInventoryReportConfigs {


  public static void listInventoryReportConfigs(String projectId, String location)
      throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      System.out.println(
          "Printing inventory report configs in project "
              + projectId
              + " and location "
              + location);
      for (ReportConfig config :
          storageInsightsClient
              .listReportConfigs(LocationName.of(projectId, location))
              .iterateAll()) {
        System.out.println(config.getName());
      }
    }
  }
}

ממשקי API ל-REST

API ל-JSON

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

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

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    מחליפים את:

    • YOUR_PROJECT בשם הפרויקט שבו נמצאות קטגוריות המקור והיעד.

    • LOCATION במיקום של קטגוריות המקור והיעד. לדוגמה, us-west1.

    כדי לראות את רשימת כל ההגדרות של דוחות המלאי בקטגוריית מקור ספציפית, מצרפים לבקשה את פרמטר השאילתה filter:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?filter=objectMetadataReportOptions.storageFilters.bucket=BUCKET_NAME" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    מחליפים את:

    • YOUR_PROJECT בשם הפרויקט שבו נמצאות קטגוריות המקור והיעד.

    • LOCATION במיקום של קטגוריות המקור והיעד. לדוגמה, us-west1.

    • BUCKET_NAME בשם של קטגוריית המקור שמכילה את ההגדרות של דוחות המלאי שייכללו בדוח.

הורדת דוח מלאי

המסוף

הורדת דוחות ספציפיים

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

כדי להוריד דוח מלאי, פועלים לפי השלבים הבאים:

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על השם של קטגוריית היעד שמכילה את דוח המלאי שרוצים להוריד.

  3. בדף Bucket details, מוודאים שהכרטיסייה Objects מסומנת.

  4. לוחצים על הקישור ‎ Download‎ המשויך לדוח המלאי שרוצים להוריד.

לא יודעים מהי קטגוריית היעד? תוכלו גם להוריד את דוח המלאי מההגדרה של דוח המלאי שממנה הוא נוצר:

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על השם של קטגוריית המקור שמכילה את ההגדרה של דוח המלאי שממנה יצרתם את הדוח שאתם רוצים להוריד.

  3. בדף Bucket details, לוחצים על שם ההגדרה של דוח המלאי.

  4. בדף Report configuration details שמופיע, עוברים לקטע Inventory report history ולוחצים על נתיב אובייקט היעד של דוח המלאי שרוצים להוריד.

    הדף Bucket details מופיע לקטגוריית היעד שמכילה את דוח המלאי.

  5. לוחצים על הקישור ‎ Download‎ המשויך לדוח המלאי שרוצים להוריד.

הורדת רסיסי דוחות

כדי להוריד דוח מלאי שפוצל לרסיסים אחד או יותר, פועלים לפי השלבים הבאים:

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על השם של קטגוריית היעד שציינתם כשיצרתם את ההגדרה של דוח המלאי.

  3. בדף Bucket details, בודקים אם יש קובץ מניפסט. קובץ המניפסט מציין שכל חלקי דוח המלאי נוצרו.

    דוגמה לשם קובץ מניפסט היא fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

  4. בקטגוריית היעד, לוחצים על הורדה שמשויך לקובץ המניפסט. רושמים את השמות של קובצי ה-shard שרוצים להוריד מהשדה report_shards_file_names.

  5. בקטגוריית היעד, לוחצים על הורדה שמשויך לקובצי הרסיסים שרוצים להוריד.

שורת הפקודה

הורדת דוחות ספציפיים

כדי להוריד דוח מלאי, פועלים לפי השלבים הבאים:

  1. כדי לראות את הרשימה של כל דוחות המלאי שנוצרו על ידי ההגדרה של דוח המלאי ולאחזר את השדה REPORT_DETAIL_ID של הדוח, מפעילים את הפקודה gcloud storage insights inventory-reports details list:

    gcloud storage insights inventory-reports details list CONFIG_NAME \
      --filter=EXPRESSION \
      --page-size=SIZE \
      --sort-by=FIELD

    מחליפים את:

    • CONFIG_NAME בשם הייחודי של ההגדרה של דוח המלאי, בפורמט projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

    • EXPRESSION במסנן בוליאני שיחול על כל פריט משאב שייכלל בדוח. אם הערך של הביטוי הוא True, הפריט יופיע. לפרטים נוספים ולדוגמאות לביטויי סינון, מריצים את הפקודה $ gcloud topic filters.

    • SIZE במספר המקסימלי של משאבים לדף. ערך ברירת המחדל הוא 50.

    • FIELD ברשימה מופרדת בפסיקים של שמות מפתחות של שדות משאבים, שלפיהם יתבצע מיון. ברירת המחדל מוגדרת לסדר עולה. כדי לציין סדר יורד, מוסיפים את התו ~ בתחילת השדה.

    אם הפקודה מסתיימת בלי שגיאות, היא תחזיר פלט דומה לזה:

    REPORT_DETAIL_ID            SNAPSHOT_TIME
    Report_2023-04-10T00-00     2023-04-10T00:53:03Z
    Report_2023-04-12T00-00     2023-04-12T00:52:54Z
    Report_2023-04-05T00-00     2023-04-05T00:53:01Z
  2. כדי להוריד את דוח המלאי, קודם מאחזרים את המאפיין reportPathPrefix של האובייקט ReportDetail. כדי להציג את המאפיין reportPathPrefix של הדוח, מפעילים את הפקודה gcloud storage insights inventory-reports details describe:

    gcloud storage insights inventory-reports details describe REPORT_DETAIL_NAME

    מחליפים את REPORT_DETAIL_NAME בשם של דוח המלאי בפורמט projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/REPORT_DETAIL_ID.

הורדת רסיסי דוחות

כדי להוריד דוח מלאי שפוצל לרסיסים אחד או יותר, פועלים לפי השלבים הבאים:

  1. מורידים את קובץ המניפסט של דוח המלאי באמצעות הפקודה gcloud storage cp:

    gcloud storage cp gs://BUCKET_NAME/MANIFEST_FILE_NAME DOWNLOAD_PATH

    מחליפים את:

    • BUCKET_NAME בשם של קטגוריית היעד.

    • MANIFEST_FILE_NAME עם השם של קובץ המניפסט בקטגוריית היעד, לפי מוסכמת השמות הבאה:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      כאשר:

      • REPORT_CONFIG_UUID הוא ה-UUID שנוצר באופן אוטומטי של ההגדרה לדוחות מלאי שלפיה הופקו חלקי הדוח שרוצים להוריד.

      • TARGET_DATETIME הוא התאריך והשעה שבהם נוצר דוח המלאי.

      לדוגמה, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

    • DOWNLOAD_PATH בנתיב למערכת הקבצים שבו רוצים לשמור את דוח המלאי. לדוגמה, ./example_report.csv.

  2. כדי להוריד קובץ מפוצל, מפעילים את הפקודה gcloud storage cp:

    gcloud storage cp gs://BUCKET_NAME/SHARD_FILE_NAME DOWNLOAD_PATH

    מחליפים את:

    • BUCKET_NAME בשם של קטגוריית היעד.

    • SHARD_FILE_NAME בשם של קובץ הנתונים המפוצל שרוצים להוריד, בקידוד כתובת ה-URL. לדוגמה, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv.

    • DOWNLOAD_PATH בנתיב למערכת הקבצים שבו רוצים לשמור את דוח המלאי. לדוגמה, ./example_report.csv.

ספריות לקוח

Java

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.


import com.google.cloud.storageinsights.v1.ReportConfig;
import com.google.cloud.storageinsights.v1.ReportConfigName;
import com.google.cloud.storageinsights.v1.ReportDetail;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import java.io.IOException;

public class GetInventoryReportNames {


  public static void getInventoryReportNames(
      String projectId, String location, String reportConfigUuid) throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      ReportConfig config =
          storageInsightsClient.getReportConfig(
              ReportConfigName.of(projectId, location, reportConfigUuid));
      String extension = config.hasCsvOptions() ? "csv" : "parquet";
      System.out.println(
          "You can use the Google Cloud Storage Client "
              + "to download the following objects from Google Cloud Storage:");
      for (ReportDetail reportDetail :
          storageInsightsClient.listReportDetails(config.getName()).iterateAll()) {
        for (long index = reportDetail.getShardsCount() - 1; index >= 0; index--) {
          System.out.println(reportDetail.getReportPathPrefix() + index + "." + extension);
        }
      }
    }
  }
}

ממשקי API ל-REST

API ל-JSON

הורדת דוחות ספציפיים

כדי להוריד דוח מלאי, פועלים לפי השלבים הבאים:

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. כדי לראות רשימה של כל דוחות המלאי שנוצרו מההגדרה של דוח מלאי, משתמשים בפקודה cURL שמפעילה את ה-API בפורמט JSON עם בקשה להצגת פרטים של דוח מלאי:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    מחליפים את:

    • YOUR_PROJECT בשם הפרויקט שבו נמצאות קטגוריות המקור והיעד.

    • LOCATION במיקום של קטגוריות המקור והיעד. לדוגמה, us-west1.

    • REPORT_CONFIG_UUID ב-UUID שנוצר באופן אוטומטי של ההגדרה לדוחות מלאי שלפיה הופק הדוח שרוצים להוריד.

  3. כדי לקבל את הפרטים של דוח ספציפי, משתמשים בפקודת cURL כדי להפעיל את ה-API ל-JSON באמצעות בקשת ‎ReportDetails Get:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/REPORT_DETAIL_ID" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    מחליפים את:

    • YOUR_PROJECT בשם הפרויקט שבו נמצאות קטגוריות המקור והיעד.

    • LOCATION במיקום של קטגוריות המקור והיעד. לדוגמה, us-west1.

    • REPORT_CONFIG_UUID ב-UUID שנוצר באופן אוטומטי של ההגדרה לדוחות מלאי שלפיה הופק הדוח שרוצים להוריד.

    • REPORT_DETAIL_ID בשם של דוח המלאי שרוצים להוריד.

הורדת רסיסי דוחות

כדי להוריד דוח מלאי שפוצל לרסיסים אחד או יותר, פועלים לפי השלבים הבאים:

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. כדי להוריד את קובץ המניפסט של דוח המלאי, משתמשים בפקודה cURL כדי להפעיל את ה-API בפורמט JSON באמצעות בקשת אובייקט GET:

    curl -X GET \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/MANIFEST_FILE_NAME?alt=media"

    מחליפים את:

    • BUCKET_NAME בשם של קטגוריית היעד.

    • MANIFEST_FILE_NAME עם השם של קובץ המניפסט בקטגוריית היעד, לפי מוסכמת השמות הבאה:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      כאשר:

      • REPORT_CONFIG_UUID הוא ה-UUID שנוצר באופן אוטומטי של ההגדרה לדוחות מלאי שלפיה הופקו חלקי הדוח שרוצים להוריד.

      • TARGET_DATETIME הוא התאריך שבו נוצר דוח המלאי.

    לדוגמה, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

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

  3. כדי להוריד את הקבצים המפוצלים של דוח המלאי, משתמשים בפקודה curl שמפעילה את Cloud Storage JSON API באמצעות בקשת ‎Object Get:

    curl -X GET \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      -o "DOWNLOAD_PATH" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/SHARD_FILE_NAME?alt=media"

    מחליפים את:

    • DOWNLOAD_PATH בנתיב למערכת הקבצים המקומית שבו רוצים לשמור את האובייקט. לדוגמה, Desktop/dog.png.

    • BUCKET_NAME בשם של קטגוריית היעד שמכילה את דוח המלאי. לדוגמה, my-bucket.

    • SHARD_FILE_NAME בשם של קובץ הנתונים המפוצלים שרוצים להוריד, בקידוד כתובת URL. לדוגמה, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv.

מחיקת ההגדרות לדוח מלאי

המסוף

כדי למחוק הגדרה של דוח מלאי, מבצעים את השלבים הבאים:

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על השם של קטגוריית המקור שמכילה את ההגדרות של דוח המלאי שרוצים למחוק.

  3. בדף Bucket details של קטגוריית המקור, לוחצים על הכרטיסייה Inventory reports.

  4. לוחצים על שם ההגדרה של דוח המלאי שרוצים למחוק.

  5. בדף Report configuration details שמופיע, לוחצים על ‎ Delete‎.

שורת הפקודה

כדי למחוק הגדרה של דוח מלאי, מפעילים את הפקודה gcloud storage insights inventory-reports delete:

gcloud storage insights inventory-reports delete CONFIG_NAME
  --force

מחליפים את CONFIG_NAME בשם הייחודי של דוח המלאי, בפורמט projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

הדגל --force מוחק את המטא-נתונים של כל דוחות המלאי שנוצרו על ידי ההגדרה הנתונה של דוח המלאי. האובייקטים של דוח המלאי לא יימחקו.

ספריות לקוח

Java

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.


import com.google.cloud.storageinsights.v1.ReportConfigName;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import java.io.IOException;

public class DeleteInventoryReportConfig {


  public static void deleteInventoryReportConfig(
      String projectId, String location, String inventoryReportConfigUuid) throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      ReportConfigName name = ReportConfigName.of(projectId, location, inventoryReportConfigUuid);
      storageInsightsClient.deleteReportConfig(name);

      System.out.println("Deleted inventory report config with name " + name);
    }
  }
}

ממשקי API ל-REST

‫API ל-JSON

כדי למחוק הגדרה של דוח מלאי, מבצעים את השלבים הבאים:

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. כדי למחוק הגדרה של דוח מלאי, משתמשים בפקודה cURL שמפעילה את ה-API בפורמט JSON באמצעות בקשת ‎ReportConfig Delete:

    curl --request DELETE \
    'https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID?force=true' \
      --header 'Authorization: Bearer $(gcloud auth print-access-token)' \
      --header 'Accept: application/json' \
      --header 'Content-Type: application/json' \
    

    מחליפים את:

    • YOUR_PROJECT בשם הפרויקט שבו נמצאות קטגוריות המקור והיעד.

    • LOCATION במיקום של קטגוריות המקור והיעד. לדוגמה, us-west1.

    • REPORT_CONFIG_UUID ב-UUID שנוצר אוטומטית להגדרה של דוח המלאי שרוצים למחוק.

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

מתקדם: יצירת דוחות מלאי בפורמט Hive שמחולק למחיצות

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

כדי לציין נתיב יעד, משתמשים במילות מפתח של placeholder. מילות המפתח בנתיב היעד יוחלפו בערכים התואמים שלהן בזמן יצירת דוח המלאי. לדוגמה, נתיב היעד config={{report-config-id}}/date={{date}} יכול להפוך לנתיב config=1A34-F2E456-12B456-1C3D/date=2022-05-20.

מילות מפתח בנתיב היעד

ניתן לציין את מילות המפתח report-config-id,‏ date או datetime בתוך ‎{{ ו-‎}}, כאשר:

  • report-config-id הוא ה-UUID של ההגדרה של דוח המלאי.

  • date הוא התאריך שבו מופק דוח המלאי, לפי הפורמט ISO 8601.

  • datetime הוא התאריך והשעה שבהם מופק דוח המלאי, לפי הפורמט ISO 8601.

אפשר לציין את מילות המפתח באמצעות כל אחד מהכלים הבאים:

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

  • כשמשתמשים ב-Google Cloud CLI, מציינים את מילות המפתח ל-placeholder באמצעות הדגל --destination.

  • כשמשתמשים ב-API ל-JSON, צריך לציין את מילות המפתח ל-placeholder בשדה storage_destination_options.destination_path של האובייקט ReportConfig.

בקרת גישה ואבטחה

אלה ההמלצות והשיקולים לגבי אבטחה ושימוש בדוחות מלאי ובהגדרות של דוחות מלאי:

  • למשתמשים עם התפקיד roles/storage.admin כדאי לתת גם את ההרשאות storageinsights.reportConfigs.*, כדי שיוכלו לנהל את השימוש בכל המשאבים בקטגוריות שלהם, כמו קריאה של אובייקטים והמטא-נתונים שלהם.

  • מומלץ לתת את ההרשאות storageinsights.reportConfigs.* רק לאנשים חיוניים, כדי להגביל את הגישה למשאבים של דוחות המלאי.

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

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

  • אם נתקלתם בבעיות ביצירת דוחות מלאי, תוכלו להיעזר בפתרון בעיות.