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

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

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

במאמר הזה מוסבר איך להעביר משאבי API (שרתי proxy ל-API, רכיבי Shared Flow ומוצרי API) בין Apigee Spaces בארגון 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, של ה-shared flow או של מוצר ה-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, גם אם אין להם הרשאה לגשת למשאבים ברמת הארגון. משתמשים שהם חברים במרחבים אחרים, אבל לא במרחב red, לא יכולים לראות את ה-proxy של demo או לגשת אליו.

ניסיון לגשת לשרת ה-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, של ה-shared flow או של מוצר ה-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, של ה-shared flow או של מוצר ה-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 ההרשאות של כל מרחב.

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

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