Consultez la documentation d'Apigee Edge.
Cet article explique comment déplacer des ressources d'API (proxys d'API, flux partagés et produits d'API) entre les espaces Apigee d'une organisation Apigee. Les utilisateurs peuvent déplacer des ressources entre les niveaux d'organisation et d'espace, ou entre les espaces. Pour déplacer, gérer ou afficher les ressources d'API dans une organisation ou un espace, l'utilisateur doit disposer des autorisations appropriées pour l'organisation ou l'espace concerné.
Déplacer des ressources d'API d'une organisation vers un espace
Les ressources d'API créées dans une organisation Apigee peuvent être déplacées du niveau de l'organisation vers un espace ou inversement. Une ressource API déplacée vers un Espace hérite de la stratégie IAM de cet Espace. Pour déplacer la ressource d'API du niveau de l'organisation vers un espace, l'utilisateur doit disposer des autorisations suivantes :
apigee.RESOURCE_TYPE.move
sur le champ d'application source (l'organisation ou l'espace dans lesquels la ressource existe actuellement).Les valeurs valides pour RESOURCE_TYPE incluent
proxies
,sharedflows
ouapiproducts
, selon le type de ressource d'API déplacé.apigee.RESOURCE_TYPE.create
sur le champ d'application cible (organisation ou espace vers lequel la ressource doit être déplacée).Les valeurs valides pour RESOURCE_TYPE incluent
proxies
,sharedflows
ouapiproducts
, selon le type de ressource d'API déplacé.
Pour déplacer une ressource d'API au niveau de l'organisation vers un espace, utilisez la commande suivante :
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \ -X POST -H "Authorization: Bearer $TOKEN"
Où :
- ORG_NAME est le nom de votre organisation Apigee.
- RESOURCE_TYPE est le type de la ressource que vous listez. Les valeurs valides sont les suivantes :
apis
sharedflows
apiproducts
- RESOURCE_ID est le nom du proxy d'API, du flux partagé ou du produit d'API que vous souhaitez déplacer.
- SPACE_NAME est le nom de l'espace dans lequel vous déplacez la ressource.
Par exemple, à l'aide de la commande suivante, un utilisateur disposant du rôle Administrateur de l'organisation Apigee pour l'organisation acme déplace un proxy d'API nommé demo du niveau de l'organisation à l'espace red :
curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=red" \ -X POST -H "Authorization: Bearer $TOKEN"
La réponse devrait ressembler à ceci :
{ "basepaths": ["/demo"], "revision": 1, "apiProxyId": "demo", "space_id": "red", "createTime": ..., "updateTime": ... }
Une fois le proxy d'API demo déplacé vers l'espace red, les membres de l'espace red peuvent y accéder, même s'ils ne sont pas autorisés à accéder aux ressources au niveau de l'organisation. Les membres d'autres espaces qui ne sont pas membres de l'espace red ne peuvent pas consulter ni accéder au proxy demo.
Si vous tentez d'accéder au proxy demo sans disposer des autorisations appropriées au niveau de l'organisation ou de l'espace, l'erreur suivante s'affiche :
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).", "status": "PERMISSION_DENIED" } }
Pour déplacer une ressource d'API d'un espace au niveau de l'organisation, exécutez la commande suivante, qui omet le paramètre de requête space
:
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move" \ -X POST -H "Authorization: Bearer $TOKEN"
Où :
- ORG_NAME est le nom de votre organisation Apigee.
- RESOURCE_TYPE est le type de la ressource que vous listez. Les valeurs valides sont les suivantes :
apis
sharedflows
apiproducts
- RESOURCE_ID est le nom du proxy d'API, du flux partagé ou du produit d'API que vous souhaitez déplacer.
Déplacer des ressources d'API entre des espaces
Les ressources d'API peuvent être déplacées d'un espace à un autre au sein d'une organisation Apigee. Une ressource API déplacée vers un Espace hérite de la stratégie IAM de cet Espace. Pour déplacer la ressource API entre des espaces dans une organisation Apigee, l'utilisateur doit disposer des autorisations suivantes :
apigee.RESOURCE_TYPE.move
pour l'espace dans lequel la ressource d'API existe actuellement.Les valeurs valides pour RESOURCE_TYPE incluent
proxies
,sharedflows
ouapiproducts
, en fonction du type de ressource d'API déplacée.apigee.RESOURCE_TYPE.create
pour l'espace dans lequel la ressource d'API doit être déplacée.Les valeurs valides pour RESOURCE_TYPE incluent
proxies
,sharedflows
ouapiproducts
, selon le type de ressource d'API à déplacer.
Un utilisateur auquel le rôle apigee.apiAdminV2
est attribué pour les deux espaces dispose des autorisations requises.
Pour déplacer une ressource d'API entre des espaces d'une organisation Apigee, exécutez la commande suivante :
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \ -X POST -H "Authorization: Bearer $TOKEN"
Où :
- ORG_NAME est le nom de votre organisation Apigee.
- RESOURCE_TYPE est le type de la ressource que vous listez. Les valeurs valides sont les suivantes :
apis
sharedflows
apiproducts
- RESOURCE_ID est le nom du proxy d'API, du flux partagé ou du produit d'API que vous souhaitez déplacer.
- SPACE_NAME est le nom du nouvel espace.
Par exemple, un utilisateur disposant de l'autorisation apigee.proxies.move
pour l'espace red et de l'autorisation apigee.proxies.create
pour l'espace blue peut utiliser la commande suivante pour déplacer le proxy d'API demo de l'espace red vers l'espace blue :
curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=blue" \ -X POST -H "Authorization: Bearer $TOKEN"
La réponse devrait ressembler à ceci :
{ "basepaths": ["/demo"], "revision": 1, "apiProxyId": "demo", "space_id": "blue", "createTime": ..., "updateTime": ... }
Dans cet exemple, l'utilisateur n'a pas besoin d'autorisations au niveau de l'organisation, mais uniquement des autorisations requises définies par les liaisons setIamPolicy
de chaque espace.
Toute tentative de déplacement du proxy d'API demo sans les autorisations appropriées pour les deux espaces entraîne l'erreur suivante :
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).", "status": "PERMISSION_DENIED" } }