העברת משאבי API ב-Apigee Spaces

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

במאמר הזה מוסבר איך להעביר משאבי API (שרתי proxy ל-API, רכיבי זרימה משותפים ומוצרי API) בין מרחבים ב-Apigee בארגון Apigee. משתמשים יכולים להעביר משאבים בין רמות הארגון והמרחב, או להעביר משאבים בין מרחבים. כדי להעביר, לנהל או להציג את משאבי ה-API בארגון או במרחב, למשתמש צריכות להיות ההרשאות המתאימות לארגון או למרחב הרלוונטיים.

העברה של משאבי API מארגון למרחב

אפשר להעביר משאבי API שנוצרו בארגון Apigee מרמת הארגון למרחב או להפך. משאב API שעבר למרחב יורש את מדיניות ה-IAM של המרחב הזה. כדי להעביר את משאב ה-API מרמת הארגון למרחב, למשתמש צריכות להיות ההרשאות הבאות:

  • apigee.RESOURCE_TYPE.move בהיקף המקור (הארגון או המרחב שבו המשאב קיים כרגע).

    הערכים התקינים של RESOURCE_TYPE כוללים apis,‏ sharedflows או apiproducts, בהתאם לסוג משאב ה-API שהועבר.

  • apigee.RESOURCE_TYPE.create בהיקף היעד (הארגון או המרחב שאליו רוצים להעביר את המשאב).

    הערכים התקינים של RESOURCE_TYPE כוללים apis,‏ sharedflows או apiproducts, בהתאם לסוג משאב ה-API שהועבר.

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

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \
  -X POST -H "Authorization: Bearer $TOKEN"

כאשר:

  • ORG_NAME הוא השם של הארגון שלכם ב-Apigee.
  • RESOURCE_TYPE הוא סוג המשאב שאתם מפרסמים. הערכים התקפים כוללים:
    • apis
    • sharedflows
    • apiproducts
  • RESOURCE_ID הוא השם של שרת ה-proxy ל-API, של זרימת הנתונים המשותפת או של מוצר ה-API שרוצים להעביר.
  • SPACE_NAME הוא שם המרחב שאליו מעבירים את המשאב.

לדוגמה, באמצעות הפקודה הבאה, משתמש עם התפקיד Apigee Organization Admin בארגון acme מעביר את ה-proxy ל-API בשם demo מרמת הארגון למרחב red:

curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=red" \
  -X POST -H "Authorization: Bearer $TOKEN"

התגובה אמורה להיראות כך:

{
  "metaData": {
    "createdAt": "1739489725993",
    "lastModifiedAt": "1741724822852",
    "subType": "Proxy"
  },
  "name": "demo",
  "revision": [
    "1",
    "2"
  ],
  "apiProxyType": "PROGRAMMABLE",
  "space": "red"
}

אחרי שהעברתם את proxy ל-API של ההדגמה למרחב האדום, גורמים במרחב האדום יכולים לגשת לפרוקסי, גם אם אין להם הרשאה לגשת למשאבים ברמת הארגון. גורמים במרחבים אחרים שלא חברים במרחב האדום לא יכולים לראות את proxy ל-API של ההדגמה או לגשת אליו.

ניסיון לגשת לשרת ה-proxy של הדמו בלי ההרשאות הנכונות ברמת הארגון או המרחב יגרום לשגיאה הבאה:

  {
    "error": {
      "code": 403,
      "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).",
      "status": "PERMISSION_DENIED"
    }
  }

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

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move" \
  -X POST -H "Authorization: Bearer $TOKEN"

כאשר:

  • ORG_NAME הוא השם של הארגון שלכם ב-Apigee.
  • RESOURCE_TYPE הוא סוג המשאב שאתם מפרסמים. הערכים התקפים כוללים:
    • apis
    • sharedflows
    • apiproducts
  • RESOURCE_ID הוא השם של שרת ה-proxy ל-API, של זרימת הנתונים המשותפת או של מוצר ה-API שרוצים להעביר.

העברת משאבי API בין מרחבים

אפשר להעביר משאבי API בין סביבות עבודה בארגון Apigee. משאב API שעבר למרחב יורש את מדיניות ה-IAM של המרחב הזה. כדי להעביר את משאב ה-API בין מרחבים בארגון Apigee, למשתמש צריכות להיות ההרשאות הבאות:

  • apigee.RESOURCE_TYPE.move עבור המרחב שבו משאב ה-API נמצא כרגע.

    הערכים התקינים של RESOURCE_TYPE כוללים apis,‏ sharedflows או apiproducts, בהתאם לסוג משאב ה-API שמועבר.

  • apigee.RESOURCE_TYPE.create למרחב שבו רוצים להעביר את משאב ה-API.

    הערכים התקינים של RESOURCE_TYPE כוללים apis,‏ sharedflows או apiproducts, בהתאם לסוג משאב ה-API שמועבר.

למשתמש שהוקצה לו התפקיד apigee.spaceContentEditor בשני המרחבים יהיו ההרשאות הנדרשות.

כדי להעביר משאב API בין מרחבים בארגון Apigee, משתמשים בפקודה הבאה:

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \
  -X POST -H "Authorization: Bearer $TOKEN"

כאשר:

  • ORG_NAME הוא השם של הארגון שלכם ב-Apigee.
  • RESOURCE_TYPE הוא סוג המשאב שאתם מפרסמים. הערכים התקפים כוללים:
    • apis
    • sharedflows
    • apiproducts
  • RESOURCE_ID הוא השם של שרת ה-proxy ל-API, של זרימת הנתונים המשותפת או של מוצר ה-API שרוצים להעביר.
  • SPACE_NAME הוא השם של המרחב החדש.

לדוגמה, משתמש עם הרשאה apigee.proxies.move במרחב red והרשאה apigee.proxies.create במרחב blue יכול להשתמש בפקודה הבאה כדי להעביר את proxy ל-API‏ demo מהמרחב red למרחב blue:

curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=blue" \
  -X POST -H "Authorization: Bearer $TOKEN"

התגובה אמורה להיראות כך:

{
  "basepaths": ["/demo"],
  "revision": 1,
  "apiProxyId": "demo",
  "space_id": "blue",
  "createTime": ...,
  "updateTime": ...
}

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

ניסיון להעביר את proxy ל-API של ההדגמה בלי ההרשאות הנכונות לשני המרחבים יגרום לשגיאה הבאה:

  {
    "error": {
      "code": 403,
      "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).",
      "status": "PERMISSION_DENIED"
    }
  }