サービス定義のアップロード(Upload Service Definition) (サーバ)

ライセンス レベル:BasicStandardAdvanced

サマリ

ステージングしたサービス定義(*.sd)ファイルに基づいて、GIS サービスを指定した GIS サーバにアップロードして公開します。

使用法

構文

UploadServiceDefinition_server (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})
パラメータ説明データ タイプ
in_sd_file

サービス定義(*.sd)には、GIS サービスを公開するために必要な情報がすべて含まれています。

File
in_server

カタログ ウィンドウの [GIS Servers] ノード以下に表示されている ArcGIS for Server接続を使用するか、サーバ接続ファイルを保存している別のフォルダを参照することができます。

ArcGIS Online に接続している場合は、サーバ接続に「マイ ホスト サービス(My Hosted Services)」と入力します。各単語の先頭は大文字にして、単語の間に空白文字を入力します。

ServerConnection
in_service_name
(オプション)

サービス定義で現在指定されているサービス名を無効にして、新しい名前を使用します。

String
in_cluster
(オプション)

サービスが割り当てられているクラスタを変更します。指定したサーバで利用可能なクラスタから選択する必要があります。

String
in_folder_type
[in_folder_type,...]
(オプション)

フォルダ タイプは、フォルダのソースを決定するために使用します。デフォルトでは、サービス定義からフォルダを取得します。指定したサーバにすでに存在しているフォルダのリストを取得するように選択することもできます。また、このサービスを公開するときに、新しいフォルダを作成するように指定することもできます。

  • NEW新しいフォルダを作成します。
  • EXISTINGサーバに存在するフォルダを指定します。
  • FROM_SERVICE_DEFINITIONサービス定義に指定されているフォルダを使用します。これはデフォルト設定です。
String
in_folder
(オプション)

サービスのフォルダを指定します。デフォルトでは、サービス定義で指定されているフォルダが使用されます。フォルダ タイプとして NEW を選択した場合は、このパラメータを使用して新しいフォルダ名を入力します。フォルダ タイプとして EXISTING を選択した場合は、サーバ上の既存のフォルダを選択できます。

String
in_startupType
(オプション)

公開直後のサービスの開始/停止の状態を決定します。

  • STARTEDサービスは公開後すぐに開始されます。
  • STOPPEDサービスは公開後に開始されません。サービスを手動で開始する必要があります。
Boolean
in_override
(オプション)

サービス定義で設定されている共有プロパティを無視する場合は、このパラメータを使用します。これらのプロパティは、サービスを ArcGIS Online で共有するかどうかと、共有の方法を定義します。ArcGIS Online でサービスを共有すると、そのサービスを他のユーザが利用できるようになります。

  • OVERRIDE_DEFINITIONサービス定義で設定されている共有プロパティを無視して、新しい値を使用します。
  • USE_DEFINITIONサービスを公開するときに、現在サービス定義で設定されている共有プロパティを使用します。これはデフォルト設定です。

共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。

Boolean
in_my_contents
(オプション)

すべての共有サービスを、[マイ コンテンツ] を通して利用できるようにします。組織内の特定のグループだけと共有したい場合でも、サービスは [マイ コンテンツ] を通して共有されます。

  • SHARE_ONLINEサービスを ArcGIS Online 上で共有します。サービスは [マイ コンテンツ] に表示されます。
  • NO_SHARE_ONLINEサービスは ArcGIS Online で共有されません。他の ArcGIS Online のユーザおよびクライアントは、Web 上でサービスにアクセスできません。

共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。

Boolean
in_public
(オプション)

一般ユーザがサービスを利用できるようにするかどうかを選択します。

  • PUBLICサービスを一般ユーザと共有します。
  • PRIVATEサービスを一般ユーザと共有しません。

共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。

Boolean
in_organization
(オプション)

サービスを組織と共有できます。

  • SHARE_ORGANIZATIONサービスを組織と共有します。
  • NO_SHARE_ORGANIZATIONサービスを組織と共有しません。

共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。

Boolean
in_groups
[group_name,...]
(オプション)

サービスを共有するグループ名のリスト。

共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。

String

コードのサンプル

UploadServiceDefinition(サービス定義のアップロード)の例(Python ウィンドウ)

サービス定義を指定したサーバにアップロードして公開します。

import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.UploadServiceDefinition_server("myMapService.sd", "GIS Servers/myServerConnection")
公開ワークフローの例(スタンドアロン スクリプト)

次のスクリプトは、[サービスのステージング(Stage Service)][サービス定義のアップロード(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)
UploadServiceDefinition(サービス定義のアップロード)の例 2(スタンドアロン スクリプト)

次のスクリプトは、フォルダ内のすべてのサービス定義をループ処理して、各サービスを 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
UploadServiceDefinition(サービス定義のアップロード)の例 3(スタンドアロン スクリプト)

次のスクリプトでは、既存のサービス定義をアップロードし、オプション パラメータを使用してサービスの一部のプロパティを変更します。

# 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)
サービスの上書きの例(スタンドアロン スクリプト)

次のスクリプトは、既存サービスの上書きに使用できるサービス定義を作成してアップロードします。

# 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 or My Hosted Services


# Import system modules
import arcpy
from arcpy import env
import xml.dom.minidom as DOM 

# Set environment settings
env.workspace = "C:/data"

# Set local variables
inServiceDefinitionDraft = "myMapService.sddraft"
outServiceDefinition = "myMapService.sd"
newType = 'esriServiceDefinitionType_Replacement'

xml = draftPath + in_sd_draft
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)

環境

このツールはジオプロセシング環境を使用していません

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: ○
ArcGIS for Desktop Standard: ○
ArcGIS for Desktop Advanced: ○
5/25/2014