Skripterstellung mit der ArcGIS for Server-Administrator-API
ArcGIS for Server wird ausschließlich über RESTful-Web-Service-Anforderungen an die Administrator-API verwaltet. (Auch wenn Sie ArcGIS for Server Manager zum Verwalten Ihres Servers verwenden, werden Aufrufe an die Administrator-API auf dem Back-End durchgeführt.) Um Skripten zu schreiben, die ArcGIS for Server verwalten, müssen Sie eine Skripterstellungssprache auswählen, die es Ihnen ermöglicht, URLs zu erstellen, HTTP-Anforderungen auszuführen und HTTP-Antworten zu analysieren. Die Beispiele in diesem Hilfesystem verwenden Python.
Beachten Sie, dass für das Verwenden der ArcGIS for Server-Administrator-API keine Esri Software auf dem Computer, von dem aus Sie das Skript ausführen, erforderlich ist. Sie benötigen nur eine Umgebung, in der Sie HTTP-Anforderungen an Ihren GIS-Server ausführen können.
Erste Schritte mit der ArcGIS for Server-Administrator-API
Zum Verwenden der Administrator-API erstellen Sie eine HTTP-Anforderung für den Vorgang, den Sie durchführen möchten, und schließen die erforderlichen Parameter für diesen Vorgang ein. Die folgende HTTP-Anforderung fügt beispielsweise einen neuen Computer zu Ihrer Site hinzu:
http://MyServer:6080/arcgis/admin/machines/registermachineName=SERVER1.DOMAIN.COMadminURL=http://SERVER1.DOMAIN.COM:6080/arcgis/admin
Eine einfache Möglichkeit, sich mit den verfügbaren Verwaltungsvorgängen und ihren erforderlichen Parametern vertraut zu machen, ist das Verwenden des ArcGIS for Server Administrator Directory.
Verwenden des Administratorverzeichnisses (ArcGIS for Server Administrator Directory)
Das ArcGIS for Server Administrator Directory ist eine Webanwendung, mit der Sie Verwaltungsskripte für ArcGIS for Server schreiben können. Das Administratorverzeichnis ist normalerweise unter http://<Servername>:6080/arcgis/admin verfügbar.
Stellen Sie sich das Administratorverzeichnis als Straßenkarte zu den ArcGIS for Server-Ressourcen vor, die durch die Administrator-API bereitgestellt wird. Sie können durch die Links im Administratorverzeichnis navigieren, um zu erfahren, welche URLs und Parameter in Ihren administrativen Web-Service-Anforderungen verwendet werden sollen. Sie können diese Anforderungen dann konvertieren und über HTTP mithilfe einer Skriptsprache Ihrer Wahl senden.
Verwenden Sie das Administratorverzeichnis zum Ausführen einer Verwaltungsaufgaben. Beachten Sie die Parameter, die Sie eingeben müssen, und sehen Sie sich die URL in der Adressleiste Ihres Browsers an, während Sie die Anforderung an den Server ausführen. Web-Entwickler-Werkzeuge, wie zum Beispiel Fiddler oder Firebug, können nützlich sein, um die Anforderungen und die Antwort vollständig anzuzeigen. Diese Informationen sind sehr wertvoll, wenn Sie versuchen, Ihre eigenen administrativen HTTP-Anforderungen über Python oder eine andere Skripterstellungssprache zu generieren.
Obwohl Sie das Administratorverzeichnis interaktiv verwenden können, um diese Verwaltungsaufgaben durchzuführen, wird diese Webanwendung am besten als Lernwerkzeug eingesetzt, um sich mit der Administrator-API vertraut zu machen. Die beabsichtigte Webanwendung für die ArcGIS for Server-Administration ist ArcGIS for Server Manager.
Abrufen und Verwenden eines Tokens in Skripten
Wenn Sie sich an Manager oder am Administratorverzeichnis anmelden, müssen Sie den Benutzernamen und das Kennwort eines Kontos mit Administrator- oder Publisher-Rechten für ArcGIS for Server angeben. Das gleiche Konzept gilt auch, wenn Sie Skripte schreiben. Sie müssen programmgesteuert einen Namen und ein Kennwort an den Server senden. Der Server gibt Ihnen ein Token zurück, also eine spezielle Zeichenfolge, die dem Server beweist, dass Sie zum Durchführen bestimmter Aktionstypen berechtigt sind. Sie müssen dieses Token in allen Web-Service-Anforderungen an den Server einschließen.
Das Token hat nur eine begrenzte Gültigkeit. Es wurde so entwickelt, dass es abläuft, damit es nicht gestohlen und unbegrenzt von einem bösartigen Benutzer verwendet werden kann. Jedes Mal, wenn Sie Ihr Skript ausführen, müssen Sie ein neues Token anfordern (allerdings nicht bei jeder Anforderung).
Die folgenden Python-Funktion erfordert ein Token. Der Servername, die Portnummer, der Benutzername und das Kennwort werden als Argumente bereitgestellt.
Fordert ein administratives Token von ArcGIS for Server an
def getToken(username, password, serverName, serverPort):
# Token URL is typically http://server[:port]/arcgis/admin/generateToken
tokenURL = "/arcgis/admin/generateToken"
# URL-encode the token parameters:-
params = urllib.urlencode({'username': username, 'password': password, 'client': 'requestip', 'f': 'json'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
# Connect to URL and post parameters
httpConn = httplib.HTTPConnection(serverName, serverPort)
httpConn.request("POST", tokenURL, params, headers)
# Read response
response = httpConn.getresponse()
if (response.status != 200):
httpConn.close()
print "Error while fetch tokens from admin URL. Please check the URL and try again."
return
else:
data = response.read()
httpConn.close()
# Extract the token from it
token = json.loads(data)
return token['token']
Arbeiten mit Anforderungen und Antworten
Um eine Web-Service-Anforderung für ArcGIS for Server zu erstellen, müssen Sie die URL für die gewünschte Aktion sowie die erforderlichen Parameter angeben. Auf einem sicheren Server ist einer der erforderlichen Parameter ein Token wie das oben erzeugte.
Alle Verwaltungsaktionen erzeugen eine Web-Service-Antwort, die Sie normalerweise im JSON-Format (JavaScript Object Notation) anfordern. Skripterstellungssprachen, wie zum Beispiel Python, verfügen über Bibliotheken, die eine JSON-Antwort analysieren oder lesen können. Manchmal möchten Sie einfach den HTTP-Statuscode abrufen, um herauszufinden, ob Ihre Anforderung erfolgreich war (der Code 200 bedeutet beispielsweise OK). In anderen Fällen enthält die Antwort möglicherweise Daten, wie zum Beispiel Protokollmeldungen, die Sie weiter analysieren und untersuchen möchten.
Weitere Informationen zum programmgesteuerten Senden einer Anforderung an ArcGIS for Server und zum Arbeiten mit einer Antwort finden Sie in den verschiedenen Codebeispielen in dieser Hilfe.