Azure Data Manager for Energy 上に OSDU 管理 UI をデプロイする

このガイドでは、Azure Data Manager for Energy (ADME) インスタンス上に OSDU 管理 UI をデプロイする方法について説明します。

OSDU 管理者 UI を使用すると、プラットフォーム管理者は、接続先の Azure Data Manager for Energy データ パーティションを管理できます。 管理タスクには、エンタイトルメント (ユーザーとグループの管理)、法的タグ、スキーマ、参照データ、マップ上のオブジェクトの表示と視覚化が含まれます。

前提条件

配置オプション

OSDU Admin UI には次の 2 つのデプロイ オプションがあります。

  1. Azure Container Appsを使用したクイックデプロイ: Azure Container Appsを使用したワンクリックデプロイ。 このオプションは、OSDU 管理 UI を展開する最も高速な方法であり、パブリックとプライベートの両方の展開をサポートします。
  2. Azure Storage アカウント静的 Web サイトを使用したカスタムデプロイ: Azure Storage アカウント静的 Web サイトを使用して OSDU 管理者 UI をビルドして展開します。 このオプションはよりカスタマイズ可能で、要件に合わせてデプロイを調整できます。

Azure Container Apps を使用したクイックデプロイ

  1. Deploy to Azure ボタンを選択し、Azure Container Apps を使用して OSDU Admin UI をデプロイします。

    Azure に配置する

  2. Azure portal で必要なパラメーターを入力します。 パラメーターの詳細については、「 パラメーター」セクションを参照してください。

    Azure portal のデプロイ フォームを示すスクリーンショット。

  3. [確認と作成] と、次に [作成] を選択して OSDU Admin UI をデプロイします。

  4. デプロイされた OSDU Admin UI の URL については、Outputs セクションを確認してください。

  5. ADME CORS ポリシーアプリ登録の SPA リダイレクト URI を Web サイト URL で構成します。

  6. ブラウザーで 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 を展開できます。 開発コンテナーを使用して、ツールと環境の競合を減らすことをお勧めします。

環境のセットアップ

  1. Visual Studio Codeの開発コンテナーを使用して、ローカルにインストールされているツールとの競合を減らします。

  2. Remote - Containers | Open を選んで開発コンテナーを開き、OSDU Admin UI リポジトリをクローンします。

    リモートで開く - コンテナー

  3. クローン作成プロンプトを受け入れます。

    リポジトリの複製を示すスクリーンショット。

  4. コンテナー構成テンプレートの入力を求められた場合:

    1. [Ubuntu] を選択します。
    2. 既定のバージョンを受け入れます。
    3. 追加の機能は追加しないでください。
  5. 数分後に、devcontainer が実行されます。

    devcontainer の実行を示すスクリーンショット。

  6. ターミナルを開きます。

    ターミナルを開く方法を示すスクリーンショット。

  7. Angular CLIAzure CLInpm、および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
    

    インストールを示すスクリーンショット。

  8. ターミナルでコマンドを実行して、Azure CLIにログインします。

    az login
    
  9. 資格情報を入力し、サインインが成功したことを確認します。

  10. 正しいサブスクリプションを使っていることを検証します。

    az account show
    
  11. 必要に応じて、サブスクリプションを変更します。

    az account set --subscription <subscription-id>
    

環境変数を構成する

  1. ターミナルに必要な環境変数を入力します。

    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"
    

ストレージ アカウントをデプロイする

  1. リソース グループを作成します。 リソース グループが既に存在する場合は、この手順をスキップします。

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. ストレージ アカウントを作成します。

    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
    
  3. 静的な Web サイトを構成します。

    az storage blob service-properties update \
        --account-name $WEBSITE_NAME \
        --static-website \
        --404-document index.html \
        --index-document index.html
    
  4. 匿名アクセス $web 許可するようにコンテナーのアクセス許可を設定します。

    az storage container set-permission \
        --name '$web' \
        --account-name $WEBSITE_NAME \
        --public-access blob
    

Web サイトを構成する

  1. OSDUApp フォルダーに移動します。

    cd OSDUApp/
    
  2. Azure routing.ts ファイルをコピーします。

    cp providers/azure/routing.ts src/app/routing.ts
    
  3. 依存関係をインストールします。

    npm install
    
  4. /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