Consulta la documentación de
Apigee Edge.
En este tema, se describe cómo mover recursos de API (proxies de API, flujos compartidos y productos de API) entre espacios de Apigee en una organización de Apigee. Los usuarios pueden mover recursos entre los niveles de organización y de espacio, o bien entre espacios. Para mover, administrar o ver los recursos de la API en una organización o un espacio, el usuario debe tener los permisos adecuados para la organización o el espacio relevantes.
Cómo mover recursos de API de una organización a un espacio
Los recursos de API creados en una organización de Apigee se pueden mover del nivel de la organización a un espacio o viceversa. Un recurso de API que se mueve a un espacio hereda la política de IAM de ese espacio. Para mover el recurso de API del nivel de la organización a un espacio, el usuario debe tener los siguientes permisos:
apigee.RESOURCE_TYPE.move
en el permiso de origen (la organización o el espacio en el que existe el recurso actualmente).Los valores válidos para RESOURCE_TYPE incluyen
proxies
,sharedflows
oapiproducts
, según el tipo de recurso de API que se mueva.apigee.RESOURCE_TYPE.create
en el alcance de destino (la organización o el espacio al que se moverá el recurso).Los valores válidos para RESOURCE_TYPE incluyen
proxies
,sharedflows
oapiproducts
, según el tipo de recurso de API que se mueva.
Para mover un recurso de API a nivel de la organización a un espacio, usa el siguiente comando:
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \ -X POST -H "Authorization: Bearer $TOKEN"
Aquí:
- ORG_NAME es el nombre de tu organización de Apigee.
- RESOURCE_TYPE es el nombre del recurso que deseas incluir en la lista. Estos son algunos de los valores válidos:
apis
sharedflows
apiproducts
- RESOURCE_ID es el nombre del proxy de API, el flujo compartido o el producto de API que deseas mover.
- SPACE_NAME es el nombre del espacio en el que enumeras el recurso.
Por ejemplo, con el siguiente comando, un usuario con el rol de Administrador de la organización de Apigee de la organización acme mueve un proxy de API llamado demo del nivel de la organización al espacio red:
curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=red" \ -X POST -H "Authorization: Bearer $TOKEN"
La respuesta debería ser similar a la siguiente:
{ "basepaths": ["/demo"], "revision": 1, "apiProxyId": "demo", "space_id": "red", "createTime": ..., "updateTime": ... }
Una vez que se mueva el proxy de API de demo al espacio demo, los miembros del espacio demo podrán acceder al proxy, incluso si no tienen permiso para acceder a los recursos a nivel de la organización. Los miembros de otros espacios que no sean del espacio red no pueden ver ni acceder al proxy de demo.
Si intentas acceder al proxy de demo sin los permisos correctos a nivel de la organización o del espacio, se mostrará el siguiente error:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).", "status": "PERMISSION_DENIED" } }
Para mover un recurso de API de un espacio al nivel de la organización, usa el siguiente comando, que omite el parámetro de consulta space
:
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move" \ -X POST -H "Authorization: Bearer $TOKEN"
Aquí:
- ORG_NAME es el nombre de tu organización de Apigee.
- RESOURCE_TYPE es el nombre del recurso que deseas incluir en la lista. Estos son algunos de los valores válidos:
apis
sharedflows
apiproducts
- RESOURCE_ID es el nombre del proxy de API, el flujo compartido o el producto de API que deseas mover.
Cómo mover recursos de API entre espacios
Los recursos de API se pueden mover entre espacios en una organización de Apigee. Un recurso de API que se mueve a un espacio hereda la política de IAM de ese espacio. Para mover el recurso de API entre espacios en una organización de Apigee, el usuario debe tener los siguientes permisos:
apigee.RESOURCE_TYPE.move
para el espacio en el que existe actualmente el recurso de la API.Los valores válidos para RESOURCE_TYPE incluyen
proxies
,sharedflows
oapiproducts
, según el tipo de recurso de API que se mueve.apigee.RESOURCE_TYPE.create
para el espacio al que se moverá el recurso de la API.Los valores válidos para RESOURCE_TYPE incluyen
proxies
,sharedflows
oapiproducts
, según el tipo de recurso de API que se mueve.
Un usuario al que se le asignó el rol apigee.apiAdminV2
para ambos espacios tendrá los permisos necesarios.
Para mover un recurso de API entre espacios en una organización de Apigee, usa el siguiente comando:
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \ -X POST -H "Authorization: Bearer $TOKEN"
Aquí:
- ORG_NAME es el nombre de tu organización de Apigee.
- RESOURCE_TYPE es el nombre del recurso que deseas incluir en la lista. Estos son algunos de los valores válidos:
apis
sharedflows
apiproducts
- RESOURCE_ID es el nombre del proxy de API, el flujo compartido o el producto de API que deseas mover.
- SPACE_NAME es el nombre del espacio nuevo.
Por ejemplo, un usuario con el permiso apigee.proxies.move
para el espacio red y el permiso apigee.proxies.create
para el espacio blue puede usar el siguiente comando para mover el proxy de API demo del espacio red al espacio blue:
curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=blue" \ -X POST -H "Authorization: Bearer $TOKEN"
La respuesta debería ser similar a la siguiente:
{ "basepaths": ["/demo"], "revision": 1, "apiProxyId": "demo", "space_id": "blue", "createTime": ..., "updateTime": ... }
En este ejemplo, el usuario no necesita tener permisos a nivel de la organización, solo los permisos necesarios que establecen las vinculaciones setIamPolicy
de cada espacio.
Si intentas mover el proxy de la API de demo sin los permisos correctos para ambos espacios, se mostrará el siguiente error:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).", "status": "PERMISSION_DENIED" } }