Skip To Content

Ejemplo: Publicar varios tipos de servicios utilizando las definiciones de servicio

Una definición de servicio (.sd) encapsula un servicio en un único archivo transferible, opcionalmente, incluyendo los datos SIG de origen. La herramienta Cargar definición de servicio carga una definición de servicio en el servidor y la publica. Se puede invocar desde el paquete de sitio de arcpy incluido en ArcGIS Desktop.

El siguiente ejemplo de Python busca a través de una determinada carpeta , se busca la que contiene las definiciones de servicio (excluyendo las subcarpetas), y publica en ArcGIS Server. Todo eso es necesario es una ubicación de datos, la ruta a un archivo de conexión de ArcGIS Server y el nombre de la carpeta de destino en ArcGIS Server. Las definiciones de servicio podrían ser de cualquier tipo de servicio.

# Publishes all service definitions in an operating system directory
#  (excluding subfolders)
import arcpy, os
# Define path to SDs
wrkspc = "C:/data"
sdDir = wrkspc + "/SDs"
# Provide path to connection file
# To create this file, right-click a folder in the Catalog window and
#  click New > ArcGIS Server Connection
con = wrkspc + "/connections/arcgis on myserver_6443 (publisher).ags"
# Destination folder name on ArcGIS Server
serverFolder = "TestPublish"
# Loop through all items in folder
sdList = os.listdir(sdDir)
for sd in sdList:
    
    # Construct path to item
    extension = os.path.splitext(sd)[1] #Get file extension
    sdPath = os.path.join(sdDir, sd)
    # Check if item is an SD file and, if so, try to publish
    if os.path.isfile(sdPath) and extension == ".sd":    
        try:     
            arcpy.UploadServiceDefinition_server(sdPath, con, "", "", "EXISTING", serverFolder)
            print "Published " + sd + " with no errors reported."
            
        except:
            print "Could not complete publishing operation for " + sd + "."
        print arcpy.GetMessages()