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