サマリー
ステージングしたサービス定義 (*.sd) ファイルに基づいて、GIS サービスを指定した GIS サーバーにアップロードして公開します。
使用法
このツールは、入力のサービス定義に基づいて GIS サービスをアップロードおよび公開します。ArcGIS Desktop を使用してサービスを共有する場合は、常にこのツールを実行して、ジオプロセシングの [結果] ウィンドウで結果を確認します。
このツールでは、サービス定義のドラフト (*.sddraft) ファイルはアップロードおよび公開されません。サービス定義のドラフトがある場合は、[サービスのステージング (Stage Service)] ツールを使用して、ステージングされたサービス定義に変換できます。
公開者接続を作成すると、ArcGIS Server を使用して ArcGIS Desktop 接続を作成できます。
[ポータルにサイン イン (Sign In To Portal)] ツールを使用して、ArcGIS Online ポータルに接続できます。
構文
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 サーバー] ノード以下に表示されている ArcGIS Server 接続を使用するか、サーバー接続ファイルを保存している別のフォルダーを参照することができます。 ArcGIS Online に接続している場合は、サーバー接続に「マイ ホスト サービス (My Hosted Services)」と入力します。各単語の先頭は大文字にして、単語の間に空白文字を入力します。 | ServerConnection |
in_service_name (オプション) | サービス定義で現在指定されているサービス名を無効にして、新しい名前を使用します。 | String |
in_cluster (オプション) | サービスが割り当てられているクラスターを変更します。指定したサーバーで利用可能なクラスターから選択する必要があります。 | String |
in_folder_type (オプション) | フォルダー タイプは、フォルダーのソースを決定するために使用します。デフォルトでは、サービス定義からフォルダーを取得します。指定したサーバーにすでに存在しているフォルダーのリストを取得するように選択することもできます。また、このサービスを公開するときに、新しいフォルダーを作成するように指定することもできます。
| String |
in_folder (オプション) | サービスのフォルダーを指定します。デフォルトでは、サービス定義で指定されているフォルダーが使用されます。フォルダー タイプとして NEW を選択した場合は、このパラメーターを使用して新しいフォルダー名を入力します。フォルダー タイプとして EXISTING を選択した場合は、サーバー上の既存のフォルダーを選択できます。 | String |
in_startupType (オプション) | 公開直後のサービスの開始/停止の状態を決定します。
| Boolean |
in_override (オプション) | サービス定義で設定されている共有プロパティを無視する場合は、このパラメーターを使用します。これらのプロパティは、サービスを ArcGIS Online で共有するかどうかと、共有の方法を定義します。ArcGIS Online でサービスを共有すると、そのサービスを他のユーザーが利用できるようになります。
共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。 | Boolean |
in_my_contents (オプション) | すべての共有サービスを、[マイ コンテンツ] を通して利用できるようにします。組織内の特定のグループだけと共有したい場合でも、サービスは [マイ コンテンツ] を通して共有されます。
共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。 | Boolean |
in_public (オプション) | 一般ユーザーがサービスを利用できるようにするかどうかを選択します。
共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。 | Boolean |
in_organization (オプション) | サービスを組織と共有できます。
共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。 | Boolean |
in_groups [group_name,...] (オプション) | サービスを共有するグループ名のリスト。 共有プロパティを無視する場合は、ArcGIS Online にログインしている必要があります。 | String |
コードのサンプル
UploadServiceDefinition (サービス定義のアップロード) の例 (Python ウィンドウ)
サービス定義を指定したサーバーにアップロードして公開します。
import arcpy
arcpy.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 Desktop Basic: はい
- ArcGIS Desktop Standard: はい
- ArcGIS Desktop Advanced: はい