このガイドでは、Azure Data Manager for Energy (ADME) インスタンス上に OSDU 管理 UI をデプロイする方法について説明します。
OSDU 管理者 UI を使用すると、プラットフォーム管理者は、接続先の Azure Data Manager for Energy データ パーティションを管理できます。 管理タスクには、エンタイトルメント (ユーザーとグループの管理)、法的タグ、スキーマ、参照データ、マップ上のオブジェクトの表示と視覚化が含まれます。
前提条件
Microsoft Entra ID アプリの登録。
このアプリの登録は、Azure Data Manager for Energy インスタンスで使用される登録と同じにすることができます。 管理者 UI が正常に機能するためには、アプリの登録に次の API アクセス許可が必要です。最初に管理者 UI にサインインすると、アプリケーションは必要なアクセス許可を要求します。 必要なアクセス許可を事前に付与することもできます。 詳細については、「 Web API へのアプリ アクセスの構成」を参照してください。
配置オプション
OSDU Admin UI には次の 2 つのデプロイ オプションがあります。
- Azure Container Appsを使用したクイックデプロイ: Azure Container Appsを使用したワンクリックデプロイ。 このオプションは、OSDU 管理 UI を展開する最も高速な方法であり、パブリックとプライベートの両方の展開をサポートします。
- Azure Storage アカウント静的 Web サイトを使用したカスタムデプロイ: Azure Storage アカウント静的 Web サイトを使用して OSDU 管理者 UI をビルドして展開します。 このオプションはよりカスタマイズ可能で、要件に合わせてデプロイを調整できます。
Azure Container Apps を使用したクイックデプロイ
Deploy to Azureボタンを選択し、Azure Container Apps を使用して OSDU Admin UI をデプロイします。Azure portal で必要なパラメーターを入力します。 パラメーターの詳細については、「 パラメーター」セクションを参照してください。
[確認と作成] と、次に [作成] を選択して OSDU Admin UI をデプロイします。
デプロイされた OSDU Admin UI の URL については、
Outputsセクションを確認してください。ADME CORS ポリシーとアプリ登録の SPA リダイレクト URI を Web サイト URL で構成します。
ブラウザーで URL を開き、それが適切に機能し、正しい Azure Data Manager for Energy インスタンスに接続されていることを検証します。
パラメーター
| パラメーター | 説明 | 必須 |
|---|---|---|
| サブスクリプション | OSDU Admin UI をデプロイする Azure サブスクリプション。 | はい |
| リソース グループ | OSDU Admin UI をデプロイするリソース グループ。 | はい |
| リージョン | OSDU Admin UI をデプロイする Azure リージョン。 | はい |
| Name | OSDU Admin UI インスタンスの名前。 他のリソースでは、この名前をベース名として使用し、サービスの省略形を追加します。 | はい |
| コンテナー イメージ | OSDU Admin UI に使用するコンテナー イメージ。 使用できるイメージについては、OSDU フォーラム管理 UI コンテナー レジストリに関するページを参照してください。 | はい |
| OSDU エンドポイント | 接続先の Azure Data Manager for Energy または OSDU インスタンスのエンドポイント。 ベース ADME エンドポイントを使用します。 デプロイによって、コンテナー ランタイム用に正規化されます。 | はい |
| データ パーティション ID | 接続する Azure Data Manager for Energy または OSDU インスタンスのデータ パーティション ID のコンマ区切りの一覧。 | はい |
| エンタイトルメントのドメイン名 | エンタイトルメント サービスに使用するドメイン名。 ADME デプロイの場合は .dataservices.energy を維持し、別の OSDU 実装を使用している場合にのみ更新します。 |
はい |
| クライアント ID | OSDU Admin UI に使用するアプリ登録のクライアント ID。 | はい |
| Scope | Azure Data Manager for Energy または OSDU によって使用されるアプリ登録のスコープ。 クライアント ID が ADME アプリ登録の場合は、この既定値のままにすることができます。 | はい |
| コネクタ エンドポイント | "オプション": 管理 UI に使用する OSDU Admin UI コネクタ API エンドポイント。 | いいえ |
| GCZ エンドポイント |
オプション:/gcz/で終わる基本 GCZ エンドポイント。 例: https://contoso.energy.azure.com/api/gcz/。 GCZ は既に個別にデプロイされている必要があります。 |
いいえ |
| プライベート ネットワークを有効にする | "オプション": OSDU Admin UI へのプライベート ネットワーク アクセスを有効にします。 | いいえ |
| ログの有効化 | "オプション": OSDU Admin UI のログを有効にします。 | いいえ |
Azure Storage アカウントの静的 Web サイトを使用したカスタム デプロイ
コンピューターを準備する
- Visual Studio Code と Dev Containers をインストールします。 Linux または Linux 用 Windows サブシステム (WSL) を使用して、ローカル コンピューターから OSDU 管理 UI を展開できます。 開発コンテナーを使用して、ツールと環境の競合を減らすことをお勧めします。
環境のセットアップ
Visual Studio Codeの開発コンテナーを使用して、ローカルにインストールされているツールとの競合を減らします。
Remote - Containers | Openを選んで開発コンテナーを開き、OSDU Admin UI リポジトリをクローンします。クローン作成プロンプトを受け入れます。
コンテナー構成テンプレートの入力を求められた場合:
- [Ubuntu] を選択します。
- 既定のバージョンを受け入れます。
- 追加の機能は追加しないでください。
数分後に、devcontainer が実行されます。
ターミナルを開きます。
Angular CLI、Azure CLI、npm、およびNode Version Manager (NVM) をインストールします。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \ export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" && \ [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \ nvm install 20.19.6 && \ export NG_CLI_ANALYTICS=false && \ npm install -g @angular/cli@13.3.9 && \ sudo apt-get update && \ sudo apt-get install -y jq && \ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bashターミナルでコマンドを実行して、Azure CLIにログインします。
az login資格情報を入力し、サインインが成功したことを確認します。
正しいサブスクリプションを使っていることを検証します。
az account show必要に応じて、サブスクリプションを変更します。
az account set --subscription <subscription-id>
環境変数を構成する
ターミナルに必要な環境変数を入力します。
export WEBSITE_NAME="" ## Unique name of the static website storage account. The storage account name must be between 3 and 24 characters in length and contain only numbers and lower-case letters. export RESOURCE_GROUP="" ## Name of the resource group export LOCATION="" ## Azure region to deploy to, for example "westeurope"
ストレージ アカウントをデプロイする
リソース グループを作成します。 リソース グループが既に存在する場合は、この手順をスキップします。
az group create \ --name $RESOURCE_GROUP \ --location $LOCATIONストレージ アカウントを作成します。
az storage account create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --name $WEBSITE_NAME \ --sku Standard_LRS \ --public-network-access Enabled \ --allow-blob-public-access true静的な Web サイトを構成します。
az storage blob service-properties update \ --account-name $WEBSITE_NAME \ --static-website \ --404-document index.html \ --index-document index.html匿名アクセス
$web許可するようにコンテナーのアクセス許可を設定します。az storage container set-permission \ --name '$web' \ --account-name $WEBSITE_NAME \ --public-access blob
Web サイトを構成する
OSDUAppフォルダーに移動します。cd OSDUApp/Azure
routing.tsファイルをコピーします。cp providers/azure/routing.ts src/app/routing.ts依存関係をインストールします。
npm install/src/config/config.jsonにある構成ファイル内のパラメーターを変更します。
環境変数の値をデプロイの値に置き換えます。
export OSDU_ENDPOINT="" # Endpoint of the Azure Data Manager for Energy or OSDU instance to connect to, ending with /api/ . Example: https://contoso.energy.azure.com/api/
export DATA_PARTITION_ID="" # ADME Data Partition ID, or comma-separated list if using multiple partitions
export DOMAIN_NAME=".dataservices.energy" # Domain name to use for the entitlements service. Use .dataservices.energy for any ADME deployment.
export TENANT_ID="" # Entra ID tenant ID
export CLIENT_ID="" # App Registration ID to use for the Admin UI, usually the same as the ADME App Registration ID
export SCOPE="" # Scope of the ADME instance, for example "6ee7e0d6-0641-4b29-a283-541c5d00655a/.default"
export GRAPH_ENDPOINT="https://graph.microsoft.com/v1.0/" # Microsoft Graph API endpoint
export APPINSIGHTS_INSTRUMENTATIONKEY="" # Optional. Application Insights instrumentation key
export OSDU_CONNECTOR_API_ENDPOINT="" # Optional. API endpoint of the OSDU Connector API
export REDIRECT_URI="" # This is your static website URL, for example https://<storage-account-name>.z21.web.core.windows.net/
export GCZ_ENDPOINT="" # Optional. Base GCZ service endpoint ending with /gcz/ . Example: https://contoso.energy.azure.com/api/gcz/
jq \
--arg data "$DATA_PARTITION_ID" \
--arg domain "$DOMAIN_NAME" \
--arg tenant "$TENANT_ID" \
--arg client "$CLIENT_ID" \
--arg redirect "$REDIRECT_URI" \
--arg scope "$SCOPE" \
--arg endpoint "$OSDU_ENDPOINT" \
--arg graph "$GRAPH_ENDPOINT" \
--arg appinsights "$APPINSIGHTS_INSTRUMENTATIONKEY" \
--arg connectorapi "$OSDU_CONNECTOR_API_ENDPOINT" \
--arg gcz "$GCZ_ENDPOINT" \
'
.settings.appInsights.instrumentationKey = $appinsights |
.settings.data_partition = ($data | split(",")) |
.settings.domain_name = $domain |
.settings.idp.tenant_id = $tenant |
.settings.idp.client_id = $client |
.settings.idp.redirect_uri = $redirect |
.settings.idp.scope = $scope |
.settings.api_endpoints.entitlement_endpoint = $endpoint |
.settings.api_endpoints.storage_endpoint = $endpoint |
.settings.api_endpoints.search_endpoint = $endpoint |
.settings.api_endpoints.legal_endpoint = $endpoint |
.settings.api_endpoints.schema_endpoint = $endpoint |
.settings.api_endpoints.file_endpoint = $endpoint |
.settings.api_endpoints.secrets_endpoint = $connectorapi |
.settings.api_endpoints.graphAPI_endpoint = $graph |
.settings.api_endpoints.workflow_endpoint = $endpoint |
.settings.api_endpoints.wddms_endpoint = $endpoint |
.settings.api_endpoints.gcz_endpoint = $gcz
' \
src/config/config.json > src/config/temp.json && \
mv src/config/temp.json src/config/config.json