Résumé
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é (.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 avec ArcGIS Desktop, cet outil est exécuté. Un résultat s’affiche alors dans la fenêtre de géotraitement Results (Résultats).
Cet outil ne télécharge et ne publie aucun fichier de brouillon de définition de service (.sddraft). Si vous disposez d’un fichier de brouillon de définition de service, vous pouvez le convertir en fichier organisé de définition de service à l’aide de l’outil Mettre en place un service.
Vous pouvez faire appel à l’outil Connexion au portail pour vous connecter à un portail ArcGIS Online.
Syntaxe
arcpy.server.UploadServiceDefinition(in_sd_file, in_server, {in_service_name}, {in_cluster}, {in_folder_type}, {in_folder}, {in_startupType}, {in_override}, {in_my_contents}, {in_public}, {in_organization}, {in_groups})
Paramètre | Explication | Type de données |
in_sd_file | Fichier de définition de service (.sd) qui contient toutes les informations nécessaires à la publication d’un service SIG. | File |
in_server | Connexion au serveur. Vous pouvez utiliser les connexions ArcGIS Server répertoriées sous le nœud GIS Servers (Serveurs SIG) dans la fenêtre Catalog (Catalogue) ou accéder à un dossier dans lequel vous stockez les fichiers de connexion au serveur. Si vous vous connectez à ArcGIS Online, veillez à saisir Mes services hébergés pour la connexion au serveur en commençant par une majuscule et en séparant les mots par un espace. | ServerConnection |
in_service_name (Facultatif) | Remplace le nom du service actuellement spécifié dans la définition de service par un nouveau nom. | String |
in_cluster (Facultatif) | Modifie 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 (Facultatif) | Indique la source du dossier. Par défaut, le dossier provient de la définition de service. Vous pouvez également sélectionner un dossier existant sur le serveur spécifié ou indiquer un nouveau dossier à créer une fois ce service publié.
| String |
in_folder (Facultatif) | Dossier du service. Le dossier spécifié dans la définition de service est utilisé par défaut. Si vous avez spécifié le type de dossier NEW (Nouveau), indiquez un nouveau nom de dossier. Si vous avez spécifié le type de dossier EXISTING (Existant), sélectionnez un dossier existant sur le serveur. | String |
in_startupType (Facultatif) | Indique que le service est démarré immédiatement après la publication.
| Boolean |
in_override (Facultatif) | Indique si les propriétés de partage définies dans la définition de service seront remplacées par de nouvelles valeurs. 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) | Indique si le service sera partagé sur ArcGIS Online. 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) | Indique si le service sera disponible au public.
Vous devez être connecté à ArcGIS Online pour remplacer les propriétés de partage. | Boolean |
in_organization (Facultatif) | Indique si le service sera partagé avec votre organisation.
Vous devez être connecté à ArcGIS Online pour remplacer les propriétés de partage. | Boolean |
in_groups [group_name,...] (Facultatif) | Liste des noms des groupes avec lesquels le service sera partagé. Vous devez être connecté à ArcGIS Online pour remplacer les propriétés de partage. | String |
Exemple de code
Exemple d'utilisation de l'outil UploadServiceDefinition (fenêtre Python)
Téléchargez et publiez une définition de service sur un serveur spécifié.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.UploadServiceDefinition_server("myMapService.sd", "GIS Servers/myServerConnection")
Exemple de worflow de publication (script autonome)
Le script suivant présente un processus de publication faisant appel aux outils 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)
Exemple 2 d'utilisation de l'outil UploadServiceDefinition (script autonome)
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
Exemple 3 d'UploadServiceDefinition (script autonome)
Le script suivant télécharge une définition de service existante 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)
Exemple 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
Cet outil n'utilise pas d’environnement de géotraitement.
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui