本頁內容適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
本主題說明如何在 Apigee 機構中,將 API 資源 (API Proxy、共用流程和 API 產品) 從一個 Apigee Space 移至另一個 Space。使用者可以在機構和空間層級之間移動資源,或在空間之間移動資源。如要在機構或 Space 中移動、管理或查看 API 資源,使用者必須擁有相關機構或 Space 的適當權限。
將 API 資源從機構移至 Space
在 Apigee 機構中建立的 API 資源可以從機構層級移至空間,反之亦然。 API 資源移至空間後,會沿用該空間的 IAM 政策。如要將 API 資源從機構層級移至空間,使用者必須具備下列權限:
- 來源範圍 (資源目前所在的機構或空間) 的
apigee.RESOURCE_TYPE.move
權限。RESOURCE_TYPE 的有效值包括
apis
、sharedflows
或apiproducts
,視移動的 API 資源類型而定。 - 目標範圍 (資源要移往的機構或空間) 的
apigee.RESOURCE_TYPE.create
權限。RESOURCE_TYPE 的有效值包括
apis
、sharedflows
或apiproducts
,視移動的 API 資源類型而定。
如要將機構層級的 API 資源移至 Space,請使用下列指令:
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 是您要移動的 API Proxy、共用流程或 API 產品名稱。
- SPACE_NAME 是要將資源移往的空間名稱。
舉例來說,如果使用者在 acme 機構中具有 Apigee 機構管理員角色,則可使用下列指令,將名為 demo 的 API Proxy 從機構層級移至 red Space:
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" }
將示範 API 代理伺服器移至「red」空間後,即使成員沒有存取機構層級資源的權限,也能存取該代理伺服器。其他聊天室的成員 (非「red」聊天室成員) 無法查看或存取「demo」 Proxy。
如果沒有正確的機構或空間層級權限,嘗試存取示範 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 是您要移動的 API Proxy、共用流程或 API 產品名稱。
在工作空間之間移動 API 資源
API 資源可在 Apigee 機構的空間之間移動。API 資源移至空間後,會沿用該空間的 IAM 政策。如要在 Apigee 機構的空間之間移動 API 資源,使用者必須具備下列權限:
apigee.RESOURCE_TYPE.move
,其中包含目前 API 資源所在的 Space。RESOURCE_TYPE 的有效值包括
apis
、sharedflows
或apiproducts
,視要移動的 API 資源類型而定。apigee.RESOURCE_TYPE.create
,這是要將 API 資源移至的 Space。RESOURCE_TYPE 的有效值包括
apis
、sharedflows
或apiproducts
,視要移動的 API 資源類型而定。
如果使用者在兩個 Space 中都獲派 apigee.spaceContentEditor
角色,就會擁有必要權限。
如要在 Apigee 機構的 Space 之間移動 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 是您要移動的 API Proxy、共用流程或 API 產品名稱。
- SPACE_NAME 是新 Space 的名稱。
舉例來說,如果使用者擁有「red」空間的 apigee.proxies.move
權限,以及「blue」空間的 apigee.proxies.create
權限,可以使用下列指令將「demo」 API 代理從「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": ... }
在本例中,使用者不需要具備機構層級的權限,只要擁有各個 Space setIamPolicy
繫結設定的必要權限即可。
如果沒有兩個空間的正確權限,嘗試移動 demo API 代理項目會導致下列錯誤:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).", "status": "PERMISSION_DENIED" } }