Resumen
Carga y publica un servicio SIG a un servidor SIG especificado basado en un archivo de definición de servicio presentado (.sd).
Uso
Esta herramienta carga y publica un servicio SIG basado en la definición de servicio de entrada. Esta herramienta se ejecuta cada vez que comparta un servicio mediante ArcGIS Desktop, y verá el resultado en la ventana Resultados de geoprocesamiento.
Esta herramienta no carga ni publica archivos de borrador de definición de servicio (.sddraft). Si tiene un archivo de borrador de definición de servicio, se puede convertir en un archivo de definición de servicio presentado utilizando la herramienta Presentar servicio.
Puede utilizar la herramienta Iniciar sesión en el portal para conectarse a un portal de ArcGIS Online.
Sintaxis
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})
Parámetro | Explicación | Tipo de datos |
in_sd_file | El archivo de definición de servicio (.sd) que contiene toda la información necesaria para publicar un servicio SIG. | File |
in_server | La conexión de servidor. Puede utilizar las conexiones de ArcGIS Server enumeradas bajo el nodo Servidores SIG en la ventana Catálogo, o puede navegar a una carpeta donde tenga guardados archivos de conexión al servidor. Si se conecta a ArcGIS Online, asegúrese de escribir Mis Servicios Alojados para la conexión del servidor con cada palabra en mayúsculas y un espacio entre cada palabra. | ServerConnection |
in_service_name (Opcional) | Invalida el nombre de servicio especificado en la definición de servicio con un nuevo nombre. | String |
in_cluster (Opcional) | Cambia el clúster asignado al servicio. Debe elegir de clústeres que están disponibles en el servidor especificado. | String |
in_folder_type (Opcional) | Especifica el origen de la carpeta. El valor predeterminado es una carpeta de la definición de servicio. También puede elegir una carpeta que ya exista en el servidor especificado, o bien una carpeta nueva que se creará después de publicar este servicio.
| String |
in_folder (Opcional) | La carpeta para el servicio. La opción predeterminada es la carpeta especificada en la definición de servicio. Si ha elegido NUEVO para el tipo de carpeta, introduzca un nuevo nombre de carpeta. Si ha elegido EXISTENTE para el tipo de carpeta, elija una carpeta existente en el servidor. | String |
in_startupType (Opcional) | Especifica el estado de inicio del servicio inmediatamente después de la publicación.
| Boolean |
in_override (Opcional) | Especifica si se anularán las propiedades de uso compartido establecidas en la definición de servicio. Estas propiedades definen si comparte su servicio con ArcGIS Online, así como el modo de hacerlo. Compartir el servicio con ArcGIS Online lo expone a que otras personas lo utilicen.
Debe haber iniciado sesión en ArcGIS Online para anular las propiedades de uso compartido. | Boolean |
in_my_contents (Opcional) | Especifica si el servicio se compartirá en ArcGIS Online o no. Todos los servicios compartida están disponibles a través de Mi contenido. Incluso si solo desea compartir con un grupo específico en su organización, el servicio será también compartido a través de Mi contenido.
Debe haber iniciado sesión en ArcGIS Online para anular las propiedades de uso compartido. | Boolean |
in_public (Opcional) | Especifica si el servicio estará disponible para el público.
Debe tener sesión iniciada en ArcGIS Online para anular las propiedades de uso compartido. | Boolean |
in_organization (Opcional) | Especifica si el servicio se compartirá con su organización o no.
Debe tener sesión iniciada en ArcGIS Online para anular las propiedades de uso compartido. | Boolean |
in_groups [group_name,...] (Opcional) | Una lista de los nombres de los grupos con los que se compartirá el servicio. Debe tener sesión iniciada en ArcGIS Online para anular las propiedades de uso compartido. | String |
Muestra de código
UploadServiceDefinition ejemplo (ventana de Python)
Cargue y publique una definición de servicio en un servidor especificado.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.UploadServiceDefinition_server("myMapService.sd", "GIS Servers/myServerConnection")
Ejemplo de flujo de trabajo de publicación (script independiente)
El siguiente script muestra un flujo de trabajo de publicación con las herramientas Stage Service y 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)
Ejemplo 2 de UploadServiceDefinition (script independiente)
El siguiente script recorre todas las definiciones de servicio de una carpeta y publica cada una en un 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
Ejemplo 3 de UploadServiceDefinition (script independiente)
El siguiente script carga una definición de servicio existente y utiliza parámetros opcionales para modificar las propiedades del servicio.
# 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)
Ejemplo de sobrescritura de servicios (script independiente)
El siguiente script crea y carga una definición de servicio que se pueden utilizar para sobrescribir un servicio existente.
# 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)
Entornos
Esta herramienta no utiliza ningún entorno de geoprocesamiento.
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí