Résumé
Permet d'organiser une définition de service. Un fichier de définition de service organisée (.sd) contient toutes les informations nécessaires pour publier un service SIG, y compris les données qui doivent être copiées sur le serveur, car elles n'apparaissent pas dans le magasin de données du serveur.
Utilisation
Cet outil convertit un brouillon de définition de service (.sddraft) en une définition de service qui peut alors être insérée dans l'outil Télécharger la définition du service en vue de télécharger et de publier le service SIG sur un serveur. Il est impossible d'utiliser des définitions de service de brouillon pour publier directement un service SIG.
Lorsque vous partagez un service à l'aide d'ArcGIS Desktop, l'outil Service d'étape est exécuté. Un résultat s'affiche alors dans la fenêtre de géotraitement Résultats.
Vous pouvez créer des brouillons de définitions de services en utilisant ArcGIS Desktop ou les fonctions ArcPy CreateMapSDDraft (dans arcpy.mapping), CreateImageSDDraft ou CreateGPSDDraft.
Une fois organisé, le brouillon de définition de service en entré est supprimé.
Syntaxe
arcpy.server.StageService(in_service_definition_draft, out_service_definition)
Paramètre | Explication | Type de données |
in_service_definition_draft | La définition de service de brouillon en entrée Vous pouvez créer des brouillons de définition de service à l'aide d'ArcGIS Desktop . Pour plus d'informations, reportez-vous à la rubrique A propos des services de brouillon. Vous pouvez également utiliser la fonction arcpy.mapping CreateMapSDDraft pour créer des brouillons de définition de service. Une fois organisée, la définition de service de brouillon en entrée est supprimée. | File |
out_service_definition | La définition de service résultante. Par défaut, il convient d'écrire la définition de service dans le même répertoire que la définition de service de brouillon. | File |
Exemple de code
Exemple 1 d'utilisation de l'outil StageService (fenêtre Python)
Permet d'organiser une définition de service.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.StageService_server("myMapService.sddraft", "myMapService.sd")
Exemple 2 de workflow de publication (script autonome)
Le script suivant illustre un workflow de publication faisant appel aux options Organiser le service et Télécharger la définition du service.
# Name: StageService_UploadServiceDefinition_example2.py
# Description: Use a service definition draft to create a service definition
# and then upload and publish that service definition.
# Requirements: Connection to an ArcGIS Server or My Hosted Services
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inServiceDefinitionDraft = "myMapService.sddraft"
outServiceDefinition = "myMapService.sd"
# Execute StageService
arcpy.StageService_server(inServiceDefinitionDraft, outServiceDefinition)
# Set local variables
inSdFile = outServiceDefinition
inServer = "GIS Servers/myServerConnection"
# Execute UploadServiceDefinition
arcpy.UploadServiceDefinition_server(inSdFile, inServer)
Exemple 3 de remplacement de services (script autonome)
Le script suivant crée et télécharge une définition de service qui permet de remplacer un service.
# Name: StageService_example3_UploadServiceDefinition_example4.py
# Description: Creates a service definition that can be used to overwrite an
# existing service. When this service definition is published it
# will overwrite the existing service.
# Requirements: Connection to an ArcGIS Server, Spatial Data Server,
# or My Hosted Services
# Import system modules
import arcpy
import xml.dom.minidom as DOM
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
inServiceDefinitionDraft = "myMapService.sddraft"
outServiceDefinition = "myMapService.sd"
newType = 'esriServiceDefinitionType_Replacement'
xml = os.path.join(arcpy.env.workspace, inServiceDefinitionDraft)
doc = DOM.parse(xml)
descriptions = doc.getElementsByTagName('Type')
for desc in descriptions:
if desc.parentNode.tagName == 'SVCManifest':
if desc.hasChildNodes():
desc.firstChild.data = newType
outXml = xml
f = open(outXml, 'w')
doc.writexml( f )
f.close()
# Execute StageService
arcpy.StageService_server(inServiceDefinitionDraft, outServiceDefinition)
# Set local variables
inSdFile = outServiceDefinition
inServer = "GIS Servers/myServerConnection"
# Execute UploadServiceDefinition
arcpy.UploadServiceDefinition_server(inSdFile, inServer)
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui