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

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

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

במאמר הזה מוסבר איך להעביר משאבי API (שרתי proxy ל-API, רכיבי Shared Flow ומוצרי 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, גם אם אין להם הרשאה לגשת למשאבים ברמת הארגון. משתתפים במרחבים אחרים שלא משתתפים במרחב 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, של הרכיב המשותף או של מוצר ה-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"
    }
  }