サービスのステージング(Stage Service) (サーバ)
サマリ
サービス定義をステージングします。ステージングされたサービス定義(*.sd)ファイルには、GIS サービスの公開に必要なすべての情報が含まれます。サーバのデータ ストアに存在しないため、サーバにコピーする必要があるデータも含まれます。
使用法
このツールは、サービス定義のドラフト(*.sddraft)をサービス定義に変換します。変換されたサービス定義は、サーバにアップロードして GIS サービスを公開するために、[サービス定義のアップロード(Upload Service Definition)] ツールの入力として使用できます。ドラフト サービス定義を直接使用して、GIS サービスを公開することはできません。
ArcGIS for Desktop を使用してサービスを共有する場合は、常に [サービスのステージング(Stage Service)] ツールを実行し、ジオプロセシングの [結果] ウィンドウで結果を確認します。
サービス定義のドラフトは、ArcGIS for Desktop を使用するか、arcpy 関数の CreateMapSDDraft(arcpy.mapping 内)、CreateImageSDDraft、または CreateGPSDDraft を使用して作成できます。
ステージングが完了すると、入力に使用したサービス定義ドラフトは削除されます。
構文
パラメータ | 説明 | データ タイプ |
in_service_definition_draft | 入力ドラフト サービス定義。サービス定義のドラフトは ArcGIS for Desktop を使用して作成できます。詳細については、「ドラフト サービスについて」をご参照ください。arcpy.mapping 関数の CreateMapSDDraft を使用して、ドラフト サービス定義を作成することもできます。 ステージングが完了すると、入力に使用したドラフト サービス定義は削除されます。 | File |
out_service_definition |
結果のサービス定義。デフォルトでは、サービス定義はドラフト サービス定義と同じディレクトリに書き込まれます。 | File |
コードのサンプル
サービス定義をステージングします。
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.StageService_server("myMapService.sddraft", "myMapService.sd")
次のスクリプトは、[サービスのステージング(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)
次のスクリプトは、既存サービスの上書きに使用できるサービス定義を作成してアップロードします。
# 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)