Чи можливо програмно зупинити та запустити сервіси карт ArcGIS Server за допомогою Python?
.ags
файлу в маркер. Можливо, ви зможете спробувати підключитися до сертифіката (PEM-файл), хоча для цього потрібно більше, ніж звичайний HTTP ванілі.
Чи можливо програмно зупинити та запустити сервіси карт ArcGIS Server за допомогою Python?
.ags
файлу в маркер. Можливо, ви зможете спробувати підключитися до сертифіката (PEM-файл), хоча для цього потрібно більше, ніж звичайний HTTP ванілі.
Відповіді:
У ArcGIS 10.0 для окремих служб, таких як командний рядок для підтримки ArcIMS, є інструмент командного рядка, який ви можете завантажити з Галереї кодів ( AGSSOM ), який дає вам ядро основних областей, але немає конкретної послуги 'контроль рівня, який ви можете використовувати в цей час для запуску / зупинки / оновлення / додавання / видалення послуг AGS.
На Ideas.arcgis.com є кілька місць із запитами на покращення контролю над послугами з більш автоматизованого місця.
Для тих, хто використовує ArcGIS 10.0 і зацікавлений у використанні AGSSOM, як рекомендує DE Wright, я зібрав наступний код. Це зупинить усі сервіси, що дозволяють виконувати необхідні завдання бази геоданих, а потім перезапустити раніше запущені служби.
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])
Станом на ArcGIS Server 10.3, кілька утилітів командного рядка на основі Python поставляються в комплекті з сервером ArcGIS.
За документацією esri вони зазвичай встановлюються тут:
C:\Program Files\ArcGIS\Server\tools\admin
Управління комунальних послуг відмінно підходить для запуску, зупинки або видалення послуги:
python manageservice.py -u admin -p admin -s http://gisserver.domain.com:6080 -n Beirut/Parcels -o start
Так само, як і те, що написав у своїй відповіді Джефф Беррі, я написав невелику функцію, яка керуватиме сервісами карт ArcGIS Server 10.0 за допомогою інструментів AGSSOM.
У моєму випадку я телефоную службам індивідуально по імені, зупиняючи та запускаючи кожний за одним.
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()
Потім ви можете зателефонувати до служби за іменем, використовуючи -x для зупинки та -s для запуску:
manageMapServices("-s", "Folder/Service", "MapServer")
Для ArcGIS 10.7 та деяких попередніх версій повний набір скриптів python для зупинки, запуску, видалення та ще безліч інших речей можна знайти тут: http://www.arcgis.com/home/item.html?id= 12dde73e0e784e47818162b4d41ee340 (також є .exe всередині цього, якщо вам абсолютно потрібен повний виконуваний файл)
Або скористайтесь довідкою та прочитайте про багато варіантів (з командного рядка поля, python api, фрагменти коду) тут: https://enterprise.arcgis.com/en/server/latest/administer/linux/scripting-arcgis -сервер-адміністрування.htm
Однак усі ці пункти включаються як інші відповіді на запитання, на яке ви посилалися. AGSSOM - це утиліта .net, написана для Server 10.0 і пізнішої версії. Була випущена версія 10.1 і новішої версії, але вона ніколи не набирала популярності, оскільки для взаємодії з сервером вам не потрібен був важкий код c # / vb. Сервер 10.1+ був випущений з добре структурованим API REST, що дозволяє мовам високого рівня, таким як Python, і, таким чином, більш широкій аудиторії сценарій та адміністрування, не потребуючи важкої утиліти agssom.exe.
У ArcGIS for Server 10.1+ ви можете скористатись інструментарієм адміністрування серверів ArcGIS - 10.1+
З опису (напівжирне закріплення):
Інструментарій адміністрування сервера ArcGIS надає вам інструменти та сценарії, які допоможуть вам адмініструвати ваш ArcGIS Server. Ці інструменти були написані на Python та підключаються до адміністратора REST сервера ArcGIS, що дозволяє швидко та легко виконувати деякі загальні адміністративні функції, зокрема: - Елемент списку
- Зупинка, запуск або видалення послуги
- Перейменування послуги
- Зміна рівня журналу та очищення старих журналів
- Завантаження та реєстрація ДП
- Створення класного класу з місць, де переглядалася служба карт (оглядом журналів)
- Визначення послуги видавничої справи (.SD)
Інструменти всередині цього набору представлені трьома основними способами: Інструменти, Код та окремий виконуваний файл.