プロジェクト運用
HERE platform では、プロジェクトを作成および管理できます。 管理者は、他のユーザー、アプリ、およびグループにプロジェクトへのアクセス権を付与できます。 プロジェクトアクセス権を持つユーザーは、カタログ、スキーマ、パイプラインなどのプロジェクトリソースを作成および管理できます。 任意のプロジェクトリソースに関連付けられている計算、ストレージ、および転送の使用状況は、プロジェクト ID に基づいて自動的に追跡されます。
プロジェクト運用
HERE Data SDK for Python は、プロジェクトで次の機能をサポートしています。
- プロジェクトを作成します
- プロジェクトを取得します
- プロジェクトのアクセス権を管理します
- プロジェクトのカタログ、レイヤー、およびパーティションを管理します
- プロジェクトを更新します
- プロジェクトを一覧表示します
- プロジェクトを削除します
コードを開発する場合、プロジェクトを作成すると、そのプロジェクトの管理者役割はすぐには利用できなくなります。 プロジェクトを作成した後、プロジェクトの操作を実行する前に、短い待機時間を設定する必要があります。
以下に、最も頻繁に使用される方法の例を示します。 詳細については 、 API のドキュメントを参照してください。
プロジェクトを作成する
from here.platform import Platform
from datetime import datetime
import time
platform = Platform()
now = datetime.now()
project_id = now.strftime("%m%d%H%M%S%f")
project_name = now.strftime("%m%d%H%M%S%f")
project_desc = "This project is created for testing."
project = platform.create_project(project_id, project_name, project_desc)
プロジェクトを取得します
time.sleep(5)
project = platform.get_project(project.hrn)
project_name = "updated-analytics-test"
project_desc = "updated-analytics-description"
result = platform.update_project(project.hrn, project_name, project_desc)
プロジェクトアクセス権の管理
プロジェクトの管理には、次のサポートが利用できます。
- ユーザー、アプリ、またはグループにプロジェクトのアクセス権を付与します
- ユーザー、アプリ、またはグループの役割を更新します
- プロジェクトへのアクセス権を持つすべてのユーザー、アプリ、およびグループを一覧表示します
- ユーザー、アプリ、またはグループからプロジェクトへのアクセス権を削除します
ユーザー、アプリ、またはグループにプロジェクトアクセス権を付与します
注
- 変数の値を
MEMBER_HRN
、このプロジェクトに追加するメンバーの HERE リソースネーム で置き換えます。
MEMBER_HRN = "hrn:here:account::olp-here:user/HERE-9a80ddb8-8c2d-4974-b347-04dab6fc1b0b"
project.add_member(MEMBER_HRN)
ユーザー、アプリ、またはグループの役割を更新します
role_name = "ProjectAdmin"
project.assign_member_role(MEMBER_HRN, role_name=role_name)
プロジェクトへのアクセス権を持つすべてのユーザー、アプリ、およびグループのリスト
プロジェクトメンバーのリストを取得するには、関数で 2 つのパラメーターを渡す必要があります。
- limit - 応答で返されるエントリの数
- only_include_identities - true の場合、グループを介して間接的にプロジェクトのメンバーであるユーザーおよびアプリの ID のみを含む有効なプロジェクトメンバーリストを返します。 また、プロジェクトのプロジェクト管理者であるユーザー、およびレルムのリソース管理者も返されます。 false の場合、プロジェクトの直接のメンバーであるユーザー、アプリ、およびグループを返します。グループ経由でのみメンバーシップを持つユーザーおよびアプリは削除されます。
only_include_identities = False
limit = "10"
result = project.list_members(limit, only_include_identities)
ユーザー、アプリ、またはグループからプロジェクトアクセス権を削除します
project.delete_member(member_hrn=MEMBER_HRN)
プロジェクトカタログ、レイヤー、およびパーティションの管理
プロジェクトリソースを管理するために、次のサポートを利用できます。
- カタログを作成します
- カタログを更新します
- カタログを表示します
- カタログを削除します
- 表示されているすべてのプロジェクトリソースを一覧表示し
カタログを作成します
platform = Platform(project_hrn=project.hrn)
catalog_id = now.strftime("%m%d%H%M%S%f")
catalog = platform.create_catalog(
id=catalog_id,
name="project-analytics-catalog-testing",
summary="project-catalog",
description="project-catalog",
)
カタログを取得します
catalog = platform.get_catalog(f"hrn:here:data::olp-here:{catalog_id}")
カタログを更新します
カタログメタデータを更新しています :
platform.update_catalog(
hrn=catalog.hrn,
id="update-id",
name="update-catalog-metadata",
summary="update-catalog-metadata-summary",
description="update-catalog-metadata-description",
)
catalog = platform.get_catalog(f"hrn:here:data::olp-here:{catalog_id}")
既存のカタログにレイヤーを追加 :
layer1 = {
"id": "temp-layer",
"name": "temp-layer-update-name",
"summary": "temp-layer-summary",
"description": "temp-layer-description",
"contentType": "application/json",
"layerType": "volatile",
"partitioning": {"scheme": "generic"},
}
layer2 = {
"id": "temp-layer2",
"name": "temp-layer-update-name",
"summary": "temp-layer-summary",
"description": "temp-layer-description",
"contentType": "application/json",
"layerType": "volatile",
"partitioning": {"scheme": "generic"},
}
platform.update_catalog(
hrn=catalog.hrn,
id=catalog_id,
name="project-analytics-catalog-testing",
summary="project-catalog",
description="project-catalog",
layers=[layer1, layer2],
)
catalog = platform.get_catalog(f"hrn:here:data::olp-here:{catalog_id}")
プロジェクト内のカタログを削除します
platform.delete_catalog(catalog.hrn)
プロジェクトの詳細を取得します
プロジェクトリソースを取得します
要求されたプロジェクトのリソースのリストを取得します。
project.list_resources(
resource_type="catalog", resource_limit="10", resource_relation="home"
)
プロジェクトを削除します
platform.delete_project(project.hrn)