概要
サービス定義をステージングします。ステージングされたサービス定義ファイル (*.sd) には、Web レイヤー、Web ツール、またはサービスの共有に必要なすべての情報が含まれています。
使用法
このツールは、サービス定義のドラフト ファイル (*.sddraft) をサービス定義に変換します。その後、このサービス定義を [サービス定義のアップロード (Upload Service Definition)] ツールに入力し、Web レイヤー、Web ツール、またはサービスを ArcGIS Online、ArcGIS Enterprise、または ArcGIS Server にアップロードして公開することができます。ドラフト サービス定義を使用して Web レイヤー、Web ツール、またはサービスを直接公開することはできません。
ArcGIS Pro を使用して Web レイヤー、Web ツール、またはサービスを共有すると、[サービスのステージング (Stage Service)] ツールが実行され、[カタログ] ウィンドウの [ジオプロセシング履歴] アイテムにエントリが表示されます。
このツールは、*.sddraft ファイルを解析して、サービス定義ドラフト ファイルをサービス定義ファイル (*.sd) に変換する前に、適合性と潜在的なパフォーマンスの問題の原因を判断します。ツールの実行中に、進行状況バーの上にポインターを合わせるとポップアップ ウィンドウが表示され、ツールに関する詳細な情報 (分析ツールのメッセージなど) が表示されます。[詳細の表示] をクリックして、同じ詳細を切り離されたウィンドウで表示するか、[履歴を開く] をクリックして、プロジェクトのジオプロセシング履歴を開くこともできます。ツールの実行が終了すると、そのツールのステータスを示すアイコンとメッセージが進行状況バーに表示されます。ジオプロセシング ツールでのメッセージ表示の詳細については、「ジオプロセシング ツールの実行」をご参照ください。
*.sddraft ファイルの解析中に、エラーと警告の 2 種類のメッセージが表示されることがあります。分析ツールのエラーは、サービス定義ファイルを作成する前に対処する必要があります。分析ツールの警告は、パフォーマンス、描画、またはデータ アクセスに関連する問題を特定しますが、サービス定義のドラフト ファイルをサービス定義ファイルに変換できます。分析ツールの各メッセージには、関連するヘルプ トピックがあります。これらの問題の解決の詳細については、「GIS リソースの分析」をご参照ください。
サービス定義のドラフトを作成するには、arcpy.sharing モジュール、または CreateGeocodeSDDraft、CreateGPSDDraft/CreateImageSDDraft ArcPy 関数を使用します。
構文
arcpy.server.StageService(in_service_definition_draft, out_service_definition, {staging_version})
パラメーター | 説明 | データ タイプ |
in_service_definition_draft | 入力ドラフト サービス定義。サービス定義のドラフトを作成するには、arcpy.sharing モジュール、または CreateGeocodeSDDraft、CreateGPSDDraft/CreateImageSDDraft ArcPy 関数を使用します。 | File |
out_service_definition | 結果のサービス定義。デフォルトでは、サービス定義はドラフト サービス定義と同じディレクトリに書き込まれます。 | File |
staging_version (オプション) | サービス定義を公開するときのサービスのバージョン。 フィーチャ、タイル、または画像レイヤーを ArcGIS Enterprise で共有するときは、[5] を使用します。マップ イメージ レイヤーまたは Web ツールを ArcGIS Enterprise で共有し、任意のレイヤー タイプを ArcGIS Online で共有するときは、[102] を使用します。これがデフォルトです。 | Long |
コードのサンプル
次に示すスクリプトは、Web タイル レイヤーとしてレイヤーのリストをマップから ArcGIS Enterprise または ArcGIS Online に公開します。ポータル情報は、ArcGIS Pro の [ポータル] ページから取得されます。
import arcpy
import os
# Set output file names
outdir = r"C:\Project\Output"
service = "TileSharingDraftExample"
sddraft_filename = service + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
# Reference map to publish
aprx = arcpy.mp.ArcGISProject(r"C:\Project\World.aprx")
m = aprx.listMaps("World")[0]
lyrs = []
lyrs.append(m.listLayers('cities')[0])
lyrs.append(m.listLayers('counties')[0])
# Create TileSharingDraft and set service properties
sharing_draft = m.getWebLayerSharingDraft("HOSTING_SERVER", "TILE", service, lyrs)
sharing_draft.summary = "My Summary"
sharing_draft.tags = "My Tags"
sharing_draft.description = "My Description"
sharing_draft.credits = "My Credits"
sharing_draft.useLimitations = "My Use Limitations"
# Create Service Definition Draft file
sharing_draft.exportToSDDraft(sddraft_output_filename)
# Stage Service
sd_filename = service + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
arcpy.StageService_server(sddraft_output_filename, sd_output_filename)
# Share to portal
print("Uploading Service Definition...")
arcpy.UploadServiceDefinition_server(sd_output_filename, "My Hosted Services")
print("Successfully Uploaded service.")
次のスクリプトは既存のサービス定義のドラフトをステージングして、分析ツールの警告とエラーを表示します。
import arcpy
try:
arcpy.StageService_server(r"C:\Data\World.sddraft", r"C:\Data\World.sd")
warnings = arcpy.GetMessages(1)
print(warnings)
except Exception as stage_exception:
print("Sddraft not staged. Analyzer errors encountered - {}".format(str(stage_exception)))
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい