PortalPy を使用した管理タスクのスクリプト化
このトピックの内容
PortalPy は、Python 2.7 モジュールであり、独自ポータルに対する一般的な管理タスクのスクリプト化に使用できます。PortalPy を利用する Python スクリプトは、ポータルにアクセスすることができ、Python 2.7 (必須) を実行するように構成された任意のコンピューターから実行できます。
このトピックでは、PortalPy モジュールの基本的な概要、いくつかのサンプル、開始するための手順について説明します。PortalPy を使用するには Python スクリプトのスキルが必要ですが、PortalPy を使用すると、極めて柔軟な方法でポータルの管理を完全に自動化できます。PortalPy を使用して、コマンド ライン ユーティリティ、Python サンプル スクリプト その他で提供されているすべてのワークフローを自動化できます。
PortalPy モジュールは、ソフトウェアとともにインストールされ、ツール ディレクトリに配置されます。たとえば、<Portal for ArcGIS installation directory>\tools\portalpy です。このモジュールは、パブリックの GitHub リポジトリを通じて使用することもできます。このリソースには、最新の PortalPy モジュール、およびユーザー コミュニティから提供されたその他のコンテンツが含まれています。このリポジトリにアクセスするには、GitHub アカウントを作成するか、既存の GitHub アカウントを使用してログインします。
コンピューター上での PortalPy モジュールの構成
PortalPy を使用して管理タスクのスクリプトを作成するには、ご使用のコンピューター上で PortalPy モジュールを設定する必要があります。ポータルにアクセスできる任意のコンピューター上で、この設定を実行できます。作業を開始するには、次の手順をご参照ください。
- Portal for ArcGIS とともにインストールされたコンピューター上で、<Portal for ArcGIS installation directory>\tools を参照し、portalpy フォルダー全体をコンピューターのローカル ディレクトリにコピーします。たとえば、C:\portalpy です。PortalPy モジュールを実行するコンピューターが、Portal for ArcGIS とともにインストールされたコンピューターである場合、この手順は省略できます。
- PortalPy モジュールをホストしているコンピューター上で、PYTHONPATH という環境変数を設定します。portalpy.py が存在するディレクトリのパスを指定します。たとえば、C:\portalpy を指定します。この手順の詳細については、Windows 製品ドキュメントをご参照ください。
- test.py という名前のファイルを作成して、portalpy.py が存在するディレクトリにそのファイルを配置します。たとえば、C:\portalpy です。
- 次のコードをファイルにコピーして、URL をポータルの URL と一致するよう更新します。
#!/usr/bin/python import portalpy url = "https://portal.domain.com/arcgis" portal = portalpy.Portal(url) print portal.get_version()
- 編集したファイルを保存して閉じます。
- コマンド ラインまたは Python IDLE 環境で test.py を実行します。このスクリプトは、3.2 などのバージョン番号を出力します。
これで、ご使用のコンピューターは PortalPy モジュールを使用するように構成されました。
PortalPy モジュールのドキュメント
PortalPy に含まれているクラスとメソッドを確認する場合は、「PortalPy モジュール」をご参照ください。このトピックには、PortalPy モジュールを使用した ArcGIS REST API のプログラミング方法を学習するのに役立つ使用例が記載されています。
サンプル スクリプト
PortalPy を使用してスクリプト化できる一般的な管理タスクを以下に示します。
例: グループ内のユーザーの一覧表示
portal = PortalPy.Portal(portalUrl, user, password)
resp = portal.get_group_members('67e1761068b7453693a0c68c92a62e2e')
for user in resp['users']:
print user
例: グループの作成
portal= PortalPy.Portal(portalUrl, user, password)
group_id = portalAdmin.create_group('my group', 'test tag', 'a group to share travel maps')
例: ユーザーの削除と、ユーザーのコンテンツの別のユーザーへの再割り当て
portal= PortalPy.Portal(portalUrl, user, password)
portal.delete_user('amy.user', True, 'bob.user')