É possível parar programaticamente e iniciar os serviços de mapa do ArcGIS Server usando Python?
.ags
arquivo em um token. Você pode tentar conectar-se a um certificado (arquivo PEM), embora isso exija mais do que simples HTTP baunilha.
É possível parar programaticamente e iniciar os serviços de mapa do ArcGIS Server usando Python?
.ags
arquivo em um token. Você pode tentar conectar-se a um certificado (arquivo PEM), embora isso exija mais do que simples HTTP baunilha.
Respostas:
No ArcGIS 10.0, para serviços individuais, como você pode fazer a linha de comando para manter o ArcIMS, existe uma ferramenta de linha de comando que pode ser baixada da Code Gallery ( AGSSOM ) que fornece o núcleo das principais áreas, mas não há serviço granular específico 'controle de nível que você pode usar neste momento para iniciar / parar / atualizar / adicionar / remover serviços AGS.
Existem no ideas.arcgis.com vários locais com solicitações para melhorar o controle dos serviços a partir de um local mais automatizável.
Para aqueles que usam o ArcGIS 10.0 e estão interessados em usar o AGSSOM, conforme recomendado por DE Wright, reunimos o código a seguir. Isso interromperá todos os serviços, permitindo que você execute as tarefas necessárias do banco de dados geográficos e, em seguida, reinicie os serviços em execução anteriores.
import os, subprocess
#Get list of currently running map services
stream = os.popen('D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe -list')
mapservices = stream.readlines()
lstStarted = []
for item in mapservices:
itemSplit = item.split(',')
if len(itemSplit) > 1:
if itemSplit[1].find("Started.") > -1:
lstStarted.append(itemSplit[0])
#Shutdown all map services
subprocess.call(['D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe', '-x', '*all*'])
##...Perfom geodatabase tasks here
#Restart previously running map services
for mapservice in lstStarted:
subprocess.call(['D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe', '-s', mapservice])
A partir do ArcGIS Server 10.3, vários utilitários de linha de comando baseados em Python vêm com o servidor ArcGIS.
Pela documentação da esri, eles geralmente são instalados aqui:
C:\Program Files\ArcGIS\Server\tools\admin
O utilitário de serviço de gerenciamento é ótimo para iniciar, parar ou excluir serviços:
python manageservice.py -u admin -p admin -s http://gisserver.domain.com:6080 -n Beirut/Parcels -o start
Na mesma linha que Jeff Berry postou em sua resposta, escrevi uma pequena função que gerenciará os serviços de mapa do ArcGIS Server 10.0 usando as ferramentas AGSSOM.
No meu caso, chamo os serviços individualmente por nome, parando e iniciando um de cada vez.
import subprocess
def manageMapServices(command, svc, svcType):
PathToAGSSOM = r"C:\Windows\AGSSOMUtils\AGSSOM"
server = "AGSSOM"
p = subprocess.Popen(PathToAGSSOM + " " + server + " " + command + " " + svc + " " + svcType)
p.wait()
Em seguida, você pode chamar um serviço pelo nome usando -x para parar e -s para iniciar:
manageMapServices("-s", "Folder/Service", "MapServer")
Para o ArcGIS 10.7, e algumas versões anteriores, um conjunto completo de scripts python para parar, iniciar, excluir e várias outras coisas podem ser encontradas aqui: http://www.arcgis.com/home/item.html?id= 12dde73e0e784e47818162b4d41ee340 (também existe um .exe dentro deste, se você precisar absolutamente de um executável completo)
Ou mergulhe na ajuda e leia sobre as muitas opções (fora da caixa de linha de comando, API python, trechos de código) aqui: https://enterprise.arcgis.com/en/server/latest/administer/linux/scripting-arcgis -server-Administration.htm
No entanto, todos esses pontos estão incluídos como outras respostas na pergunta que você fez referência. AGSSOM era um utilitário .net criado para o servidor 10.0 e mais antigo. Houve uma versão 10.1 e mais recente produzida, mas nunca ganhou popularidade, pois você não precisava de um código c # / vb pesado para interagir com o servidor. O servidor 10.1+ foi lançado com uma API REST bem estruturada, permitindo que linguagens de alto nível, como Python, e, portanto, um público mais amplo criem e administrem o script sem a necessidade do utilitário pesado agssom.exe.
No ArcGIS for Server 10.1+, você pode usar o ArcGIS Server Administration Toolkit - 10.1+
A partir da descrição (negrito é meu):
O ArcGIS Server Administration Toolkit fornece as ferramentas e scripts para ajudá-lo a administrar o ArcGIS Server. Essas ferramentas foram escritas em Python e conectam-se ao administrador REST de um servidor ArcGIS, permitindo que você execute rápida e facilmente algumas funções administrativas comuns, incluindo: - Item da lista
- Parando, iniciando ou excluindo um serviço
- Renomeando um serviço
- Modificando o nível do log e limpando logs antigos
- Carregar e registrar um SOE
- Criando uma classe de característica a partir dos locais em que um serviço de mapa foi visualizado (inspecionando os logs)
- Definições de serviço de publicação (.SD)
As ferramentas contidas neste kit são apresentadas de três maneiras principais: Ferramentas, Código e executável independente.