Organiser le service (Serveur)
Récapitulatif
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 Upload_Service_Definition 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 for Desktop, l'outil Organiser le service 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éfinition de service en utilisant ArcGIS for 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
Paramètre | Explication | Type de données |
in_service_definition_draft | Définition de service de brouillon en entrée Vous pouvez créer des brouillons de définitions de services à l'aide d'ArcGIS for Desktop. Pour plus d'informations, consultez la rubrique d'aide A propos des services de brouillon. Vous pouvez également utiliser la fonction arcpy.mapping CreateMapSDDraft pour créer des définitions de services de brouillon. Une fois organisée, la définition de service de brouillon en entrée est supprimée. | File |
out_service_definition |
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
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")
Le script suivant illustre un workflow de publication créé à l'aide de Stage_Service et Upload_Service_Definition.
# 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)
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 or My Hosted Services
# Import system modules
import arcpy
from arcpy import env
import xml.dom.minidom as DOM
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inServiceDefinitionDraft = "myMapService.sddraft"
outServiceDefinition = "myMapService.sd"
newType = 'esriServiceDefinitionType_Replacement'
xml = draftPath + in_sd_draft
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)