Charger une définition de service (Serveur)
Récapitulatif
Cet outil télécharge et publie un service SIG sur un serveur SIG spécifié en fonction d'un fichier de définition de service organisée (.sd).
Utilisation
-
Cet outil télécharge et publie un service SIG en fonction de la définition de service en entrée. Lorsque vous partagez un service à l'aide d'ArcGIS for Desktop, cet outil est exécuté. Un résultat s'affiche alors dans la fenêtre de géotraitement Résultats.
Cet outil ne télécharge et ne publie aucun fichier préliminaire de définition de service (.sddraft). Si vous disposez d'un brouillon de définition de service, vous pouvez le convertir en définition de service organisée à l'aide de l'outil Organiser le service.
Vous pouvez connecter ArcGIS for Server à ArcGIS for Desktop en établissant une connexion éditeur.
Vous pouvez faire appel à l'outil Connexion au portail pour vous connecter à un portail ArcGIS Online.
Syntaxe
Paramètre | Explication | Type de données |
in_sd_file |
La définition de service (.sd) contient toutes les informations nécessaires à la publication d'un service SIG. | File |
in_server |
Vous pouvez utiliser les connexions ArcGIS for Server répertoriées sous le nœud Serveurs SIG dans la fenêtre Catalogue ou accéder à un dossier différent où vous avez peut-être stocké des fichiers de connexion au serveur. Si vous vous connectez à ArcGIS Online, tapez Mes services hébergés pour la connexion au serveur en veillant à commencer chaque mot par une majuscule et à les séparer par un espace. | ServerConnection |
in_service_name (Facultatif) |
Utilisez cette option pour remplacer le nom du service actuellement spécifié dans la définition de service par un nouveau nom. | String |
in_cluster (Facultatif) |
Utilisez cette option si vous souhaitez modifier l'agrégat auquel le service a été attribué. Vous devez choisir parmi les agrégats disponibles sur le serveur spécifié. | String |
in_folder_type [in_folder_type,...] (Facultatif) |
Le type de dossier permet de déterminer la source du dossier. Par défaut, le dossier provient de la définition de service. Vous pouvez également obtenir une liste des dossiers présents sur le serveur spécifié ou spécifier un nouveau dossier à créer une fois ce service publié.
| String |
in_folder (Facultatif) |
Utilisez cette option pour spécifier le dossier du service. Le dossier spécifié dans la définition de service est utilisé par défaut. Si vous avez choisi le type de dossier NEW, utilisez ce paramètre pour entrer un nouveau nom de dossier. Si vous avez choisi le type de dossier EXISTING, vous pouvez choisir parmi les dossiers figurant sur le serveur. | String |
in_startupType (Facultatif) | Utilisez cette option pour déterminer si le service doit démarrer immédiatement après la publication.
| Boolean |
in_override (Facultatif) | Utilisez ce paramètre si vous voulez ignorer les propriétés de partage définies dans la définition de service. Ces propriétés déterminent si (et comment) vous partagez votre service avec ArcGIS Online. Le fait de partager votre service avec ArcGIS Online permet à d'autres de l'utiliser.
Vous devez être connecté à ArcGIS Online pour pouvoir remplacer les propriétés de partage. | Boolean |
in_my_contents (Facultatif) | Tous les services partagés sont disponibles par l'intermédiaire de Mon contenu. Même si vous souhaitez uniquement le partager avec un groupe spécifique de votre organisation, le service est également partagé via Mon contenu.
Vous devez être connecté à ArcGIS Online pour pouvoir remplacer les propriétés de partage. | Boolean |
in_public (Facultatif) | Spécifiez si le public pourra accéder ou non à votre service.
Vous devez être connecté à ArcGIS Online pour pouvoir remplacer les propriétés de partage. | Boolean |
in_organization (Facultatif) | Vous pouvez partager votre service avec votre organisation.
Vous devez être connecté à ArcGIS Online pour pouvoir remplacer les propriétés de partage. | Boolean |
in_groups [group_name,...] (Facultatif) | Liste des noms de groupes avec lesquels partager le service. Vous devez être connecté à ArcGIS Online pour pouvoir remplacer les propriétés de partage. | String |
Exemple de code
Télécharge et publie une définition de service sur un serveur spécifié.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.UploadServiceDefinition_server("myMapService.sd", "GIS Servers/myServerConnection")
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)
Le script suivant parcourt toutes les définitions de service d'un dossier et publie chacune d'elles sur ArcGIS Server.
# Name: UploadServiceDefinition_example3.py
# Description: Upload and publish all service definitions contained in a folder
# 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 variable
inServer = "myServerConnection.ags"
print "Publishing to " + inServer
# Find all the service definitions (.sd or .sds) in a workspace and
# upload\publish each one to an ArcGIS Server, Spaital Data Server, or My Hosted Services
sdList = arcpy.ListFiles("*.sd")
for inSdFile in sdList:
print "Publishing " + sdName
try:
arcpy.UploadServiceDefinition_server(inSdFile, inServer)
except Exception, e:
print e.message
Le script suivant télécharge une définition de service et utilise des paramètres facultatifs pour modifier certaines propriétés du service.
# Name: UploadServiceDefinition_example5.py
# Description: Uploads an existing service definition and uses optional
# parameters to modify some details of the service
# 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
inSdFile = "myMapService.sd"
inServer = "myServerConnection.ags"
inServiceName = "newServiceName"
inCluster = "myCluster"
inFolderType = "NEW"
inFolder = "newFolder"
inStartup = "STOPPED"
inOverride = "OVERRIDE_DEFINITION"
inMyContents = "SHARE_ONLINE"
inPublic = "PRIVATE"
inOrganization = "NO_SHARE_ORGANIZATION"
inGroups = "My Group"
# Execute UploadServiceDefinition
arcpy.UploadServiceDefinition_server(inSdFile, inServer, inServiceName,
inCluster, inFolderType, inFolder,
inStartup, inOverride, inMyContents,
inPublic, inOrganization, inGroups)
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)