ייבוא וייצוא בכמות גדולה של משאבים קיימים Google Cloud

בדף הזה מוסבר על הפקודה config-connector bulk-export ואיך משתמשים בה כדי Google Cloud לייצא Google Cloud משאבים לקובצי YAML של Config Connector, שאפשר לייבא אותם ל-Config Connector בהמשך.

config-connector bulk-export משתמש במאגר משאבי ענן כדי לגלות משאבים קיימים באמצעות הפונקציה Export. Google Cloud אתם יכולים לספק ייצוא של Cloud Asset Inventory או config-connector לבצע את הייצוא בשמכם.

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

מגבלות

לא כל המשאבים תומכים בפקודה bulk-export. כדי לראות רשימה של משאבים נתמכים, מריצים את הפקודה config-connector print-resources.

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

  1. התקנת config-connector tool

  2. אם רוצים להשתמש בכלי config-connector כדי לייצא ישירות ממאגר משאבי הענן, צריך להפעיל את Cloud Asset Inventory API בפרויקט של הזהות Google Cloudבאמצעות gcloud.

    gcloud services enable cloudasset.googleapis.com
    

דוגמה לייצוא בכמות גדולה

בדוגמה הזו, יוצרים PubSubTopic באמצעות Google Cloud CLI ואז מייבאים אותו ל-Config Connector.

  1. יוצרים נושא בשם sample-topic באמצעות Google Cloud CLI:

    gcloud pubsub topics create sample-topic
    

    תקבלו אישור שהנושא נוצר.

    Created topic [projects/PROJECT_ID/topics/sample-topic].
    

    בפלט, PROJECT_ID מוחלף בGoogle Cloud הפרויקט.

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

    TOPIC_RESOURCE_NAME=$(gcloud pubsub topics describe sample-topic --format "value(name)")
    
  3. כדי לזהות אובייקטים, הכלי config-connector משתמש במבני JSON של מאגר משאבי ענן. שומרים את מבנה ה-JSON של נכס הנושא במשתנה סביבה:

    TOPIC_ASSET='{"name":"//pubsub.googleapis.com/'"${TOPIC_RESOURCE_NAME}"'","asset_type":"pubsub.googleapis.com/Topic"}'
    
  4. מעבירים את הנכס אל config-connector bulk-export על ידי הרצת הפקודה הבאה:

    echo ${TOPIC_ASSET} | config-connector bulk-export
    

    הפלט הוא משאב Config Connector בפורמט YAML.

    ---
    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubTopic
    metadata:
      annotations:
        cnrm.cloud.google.com/project-id: PROJECT_ID
      name: sample-topic
    ...
    

    בפלט, PROJECT_ID מוחלף בGoogle Cloud הפרויקט.

  5. אפשר להעביר את המשאב הזה אל Config Connector באמצעות kubectl apply -f -. כדי להעביר את המשאב ישירות, מריצים את הפקודה הבאה:

    echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl apply -f -  --namespace CC_NAMESPACE
    

    מחליפים את CC_NAMESPACE במרחב השמות שממנו Config Connector מנהל את המשאבים.

    ‫Config Connector מקבל את המשאב.

  6. מוודאים ש-Config Connector מנהל את המשאב באמצעות kubectl describe:

    kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
    

    מחליפים את CC_NAMESPACE במרחב השמות שממנו Config Connector מנהל את המשאבים.

סידור וארגון

אפשר למחוק את PubSubTopic באמצעות config-connector bulk-export ו-kubectl delete.

echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl delete -f - --namespace CC_NAMESPACE

מחליפים את CC_NAMESPACE במרחב השמות שממנו Config Connector מנהל את המשאבים.

חיפוש משאבים לייבוא

כשמייבאים משאבים, אפשר לבצע ייצוא של מאגר משאבי ענן ולספק את התוצאות ל-config-connector bulk-export, או לבקש מ-config-connector bulk-export לבצע את הייצוא בשמכם.

ייבוא מייצוא ממאגר משאבי הענן

כדי לספק ייצוא של מלאי נכסים, צריך לספק נתיב לקובץ מקומי שמכיל את הייצוא או להעביר את התוצאות של הייצוא ל-config-connector ב-STDIN.

ייבוא מקובץ מקומי

אפשר לספק ל-config-connector bulk-export ייצוא של מלאי נכסים באמצעות קובץ מקומי עם הפרמטר --input.

config-connector bulk-export --input ASSET_INVENTORY_EXPORT

מחליפים את ASSET_INVENTORY_EXPORT בשם הקובץ של הייצוא ממאגר משאבי ענן.

ייבוא מ-STDIN

כדי לספק ייצוא של מלאי נכסים ב-STDIN, מעבירים את התוצאות של הייצוא ל-config-connector bulk-export. לדוגמה, אם הייצוא נמצא בקובץ מקומי בשם export.json, מעבירים את תוכן הקובץ ל-config-connector bulk-export בלי לציין אף אחד מפרמטרי הייצוא.

cat export.json | config-connector bulk-export

סינון של ייצוא מלאי נכסים ב-STDIN

כדי לסנן ייצוא של מלאי נכסים, אפשר להשתמש בכלי jq ולהעביר את התוצאות ל-config-connector bulk-export. לדוגמה, אם רוצים לייבא רק נכסי PubSubTopic מהקובץ EXPORT_FILE, מריצים את הפקודה הבאה:

cat EXPORT_FILE | jq '. | select( .asset_type == "pubsub.googleapis.com/Topic" )' | config-connector bulk-export

ייצוא מלאי באמצעות Config Connector

הכלי config-connector bulk-export יכול לייצא משאבים מconfig-connector bulk-export היררכיית משאבים. Google Cloud

ייצוא הפרויקט

כדי לייצא את כל המשאבים מהפרויקט, משתמשים בפרמטר --project.

config-connector bulk-export --project PROJECT_ID

מחליפים את PROJECT_ID בפרויקט ב- Google Cloud .

ייצוא התיקייה

כדי לייצא את כל המשאבים מתיקייה, משתמשים בפרמטר --folder.

config-connector bulk-export --folder FOLDER_NUMBER

מחליפים את FOLDER_NUMBER במספר התיקייה Google Cloud .

ייצוא הארגון

כדי לייצא את כל המשאבים מהארגון, משתמשים בפרמטר --organization.

config-connector bulk-export --organization ORGANIZATION_ID

מחליפים את ORGANIZATION_ID במזהה הארגון ב- Google Cloud .

מיקום ב-Cloud Storage

מיקום הפלט של ייצוא מלאי הנכסים הוא URI של Cloud Storage. כש-config-connector bulk-export מבצע ייצוא, הוא משתמש בקטגוריה של Cloud Storage. כברירת מחדל, config-connector bulk-export יוצר קטגוריה זמנית. אפשר גם לציין את שם הקטגוריה.

קטגוריה זמנית של Cloud Storage

אם לא תספקו את הפרמטר --storage-key, הפקודה config-connector bulk-export תיצור בשמכם קטגוריה של Cloud Storage זמנית. הקטגוריה נוצרת במיקום ברירת המחדל של קטגוריות אחסון: US multi-region. הקטגוריה נמחקת כשהייצוא מסתיים.

ציון קטגוריה זמנית

כדי לציין קטגוריה, משתמשים ב-URI של Cloud Storage עם הפרמטר storage-key. אם ה-URI הוא רק שם הקטגוריה, המערכת תיצור שם לאובייקט של אחסון הייצוא. אם ה-URI הוא נתיב מלא לאובייקט אחסון, הנתיב המלא ישמש.

config-connector bulk-export --storage-key gs://BUCKET_NAME

תשובה

הפלט מהפקודה config-connector bulk-export הוא משאבי Config Connector בפורמט YAML. קובץ ה-YAML נכתב ל-STDOUT כברירת מחדל. אפשר להפנות את הפלט של משאבים לקבצים באמצעות האפשרות output.

פלט לקובץ יחיד

כשמגדירים את הפרמטר --output, הפונקציה config-connector bulk-export כותבת את התוצאות שלה לקובץ יחיד אם מתקיים אחד מהתנאים הבאים:

  • הקובץ שצוין על ידי output קיים והוא קובץ regular.
  • הקובץ שצוין על ידי output לא קיים, אבל ספריית ההורה שמיוצגת על ידי output כן קיימת.

פלט לספרייה

config-connector כותב את התוצאות שלו למספר קבצים כשהפרמטר --output הוא ספרייה שמסתיימת ב-/. ‫config-connector bulk-export יוצר קובץ אחד לכל משאב, ושמות הקבצים תואמים לשמות המשאבים שלהם.

config-connector bulk-export --project PROJECT_ID --on-error continue --output OUTPUT_DIRECTORY/

מחליפים את PROJECT_ID בפרויקט ב- Google Cloud .

לדוגמה, כדי להוציא נכסים מהפרויקט my-project לספרייה sample, מריצים את הפקודה הבאה:

config-connector bulk-export --project my-project --on-error continue --output sample/

אפשרויות של שורת הפקודה

לפקודה config-connector bulk-export יש את האפשרויות הבאות:

config-connector bulk-export
    --input FILENAME \
    --output FILENAME \
    --storage-key gs://BUCKET_NAME \
    --project PROJECT_ID \
    --folder FOLDER_NUMBER \
    --organization ORGANIZATION_ID \
    --oauth2-token TOKEN \
    --on-error [halt | continue | ignore] \
    --iam-format [policy | policymember | none] \
    --filter-deleted-iam-members [true | false] \
    --verbose
  • --input: קובץ קלט של מאגר משאבי הענן.
  • --output: נתיב אופציונלי לקובץ פלט שמשבית את הפלט הרגיל. אם מציינים קובץ, התוצאה מכילה את כל פלט הפקודה. אם מציינים ספרייה, הספרייה תכיל קובץ חדש לכל משאב בפלט.
  • --storage-key: קטגוריית Cloud Storage זמנית ליעד הייצוא.
  • --project: Google Cloud מזהה הפרויקט לייצוא
  • --folder: Google Cloud מזהה התיקייה לייצוא
  • --organization: Google Cloud מזהה הארגון לייצוא.
  • --oauth2-token: טוקן OAUTH2 כזהות. כברירת מחדל, config-connector משתמש בפרטי הכניסה של Google Cloud CLI. Google Cloud
  • --on-error: שליטה בהתנהגות המערכת כשמתרחשת שגיאה שניתן לתקן. האפשרויות הן 'continue' (המשך), 'halt' (עצירה) או 'ignore' (התעלמות).
    • halt: עצירת ההרצה בכל שגיאה (ברירת מחדל)
    • continue: המשך עיבוד המשאבים, הדפסת השגיאה ל-STDERR
    • ignore: המשך עיבוד המשאבים ולא להדפיס את השגיאה
  • --iam-format: מציין את סוג משאבי ה-IAM שייכללו בפלט של הייצוא. האפשרויות הן policy (ברירת מחדל), policymember או none.
  • --filter-deleted-iam-members: מציין אם לסנן חשבונות משתמשים ב-IAM שנמחקו. האפשרויות הן true או false. ערך ברירת המחדל הוא false.
  • --verbose: הפעלת רישום מפורט (verbose) ביומן.

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