Un script simple pour migrer du contenu d’ArcGIS Enterprise
Avez-vous déjà voulu migrer vos applications ou cartes web, ainsi que vos services d’entités hébergés à partir de vos serveurs d’essai, de développement et de production? Ou avez-vous déjà souhaité migrer du contenu d’ArcGIS Online vers ArcGIS Enterprise? Bien que vous puissiez utiliser l’assistant ArcGIS Online pour migrer tout votre contenu, vous devrez quand même modifier les URL et les ID d’éléments, ce qui peut devenir un vrai casse-tête. L’interface API d’ArcGIS pour Python vous permet de faire une copie complète de tout ce contenu, sans devoir recréer votre travail ni modifier les URL de renvoi.
Un script de pro!
Ne vous gênez pas pour voler ce script – même pas besoin d’installer un bloc-notes Jupyter! Saviez-vous qu’ArcGIS Pro 2.5 prend en charge les blocs-notes Jupyter?
Pour en savoir plus, cliquez ici.
- Dans un bloc-notes Jupyter ou Pro 2.5, insérez le code ci-dessous :
from arcgis.gis import GIS
gis_source = GIS('portal1_URL', 'username', 'password', verify_cert=False)
gis_destination = GIS('portal2_URL', 'username_1', 'password_1', verify_cert=False)
print("RUNNING CLONING")
print("---------------")
item = gis_source.content.get('<web_application_item_id>')
cloned_items = gis_destination.content.clone_items(items=[item], copy_data=True)
print("\n FINISHED CLONING")
- Modifiez les données d’entrée pour ‘portal1_URL’, ‘username’ et ‘password’ à l’aide des renseignements de votre portail d’origine.
- Modifiez les données d’entrée pour ‘portal2_URL’, ‘username’ et ‘password’ à l’aide des renseignements de votre portail de destination.
- Modifiez ‘<web_application_item_id>’ en mettant l’élément Web AppBuilder du portail d’origine ou un modèle d’application web configurable.
- Exécutez le script.
- Cette fonction permet de cloner tous les éléments dans le SIG et de rediriger les chemins d’accès dans la carte et l’application web vers les nouvelles couches. En clonant un élément, on crée une copie de celui-ci et, pour certains types d’éléments, on copie aussi ses dépendances.
- Vérifiez que le contenu a été copié dans le second portail.
- Assurez-vous que l’application web (y compris les gadgets), la carte web et la ou les couches d’entités hébergées ont bien été copiées et que les URL de renvoi des couches d’entités hébergées dans l’application ont été mises à jour.
À titre de référence, voici quelques remarques tirées de la documentation associée à ContentManager.clone_items.
Remarques
- Cela fonctionnera pour les applications web hébergées (qui ont été conçues à l’aide de modèles d’application configurables ou de Web AppBuilder).
- Une seule application web hébergée sera exécutée à la fois avec cet exemple de code.
- Cela ne permettra PAS de cloner des services cartographiques, des couches de tuiles et des couches de scènes.
- Si les éléments ci-dessus sont référencés dans la carte web, cette dernière sera clonée, mais les éléments seront encore liés au service d’origine.
- Si vous mettez à jour les éléments de votre portail source et exécutez à nouveau le script, les éléments du portail de destination ne seront pas mis à jour.
Copie complète du portail
Si vous voulez copier entièrement un portail vers un autre portail, veuillez consulter ce document.
Le script dans le document propose des exemples de code pour cloner des groupes, des utilisateurs et leur contenu. Veuillez toutefois noter que ce bloc-notes ne copie pas les services qui sont liés aux éléments de service. Ceux-ci continueront de pointer vers les mêmes URL que dans le portail source. Tant que ces URL demeureront accessibles, les cartes web et les éléments de couche seront utilisables.
Cette vidéo explique comment procéder, étape par étape.
Pour voir les étapes décrites dans cet article en format vidéo, cliquez ici pour accéder à mon tutoriel sur YouTube.
Ce billet a été écrit en anglais par Amanda De Medeiros et peut être consulté ici.