例: サービス定義を使用したさまざまなタイプのサービスの公開

サービス定義(*.sd)はサービスを単一の転送可能なファイルにカプセル化し、必要に応じてソース GIS データも格納します。[サービス定義のアップロード(Upload Service Definition)] ツールは、サービス定義をサーバにアップロードして公開します。このツールは、ArcGIS for Desktop に含まれる arcpy サイト パッケージから呼び出すことができます。

以下の Python の例は、指定したフォルダをループ処理し、フォルダ内(サブフォルダは含まない)に含まれるサービス定義を検索して ArcGIS Server で公開します。必要な情報は、データの場所、ArcGIS Server 接続ファイルのパス、および ArcGIS Server 上の公開先フォルダの名前だけです。サービス定義はいずれのサービス タイプでもかまいません。

# 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_6080 (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()
6/13/2014