次の方法で共有


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 Admin UI をデプロイする最も簡単で迅速な方法です。 パブリック デプロイとプライベート デプロイの両方がサポートされています。

  2. Azure Storage アカウントの静的 Web サイトを使用したカスタム デプロイ: Azure Storage アカウントを使用して OSDU Admin 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 インスタンスに接続されていることを検証します。

パラメーター

パラメーター Description 必須
サブスクリプション 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 インスタンスのエンドポイント。 はい
データ パーティション ID 接続先の Azure Data Manager for Energy または OSDU インスタンスのデータ パーティション ID。 はい
エンタイトルメントのドメイン名 エンタイトルメント サービスに使用するドメイン名。 ADME デプロイの場合は .dataservices.energy を維持し、別の OSDU 実装を使用している場合にのみ更新します。 はい
クライアント ID OSDU Admin UI に使用するアプリ登録のクライアント ID。 はい
範囲 Azure Data Manager for Energy または OSDU によって使用されるアプリ登録のスコープ。 クライアント ID が ADME アプリ登録の場合は、この既定値のままにすることができます。 はい
コネクタ エンドポイント "オプション": 管理 UI に使用する OSDU Admin UI コネクタ API エンドポイント。 いいえ
プライベート ネットワークを有効にする "オプション": OSDU Admin UI へのプライベート ネットワーク アクセスを有効にします。 いいえ
ログの有効化 "オプション": OSDU Admin UI のログを有効にします。 いいえ

Azure Storage アカウントの静的 Web サイトを使用したカスタム デプロイ

コンピューターを準備する

  • Visual Studio Code と Dev Containers をインストールします。 Linux または Linux 用 Windows サブシステム (WSL) を使用してローカル コンピューターから OSDU 管理 UI をデプロイできますが、ツールのバージョンや環境などの潜在的な競合を排除するために、開発コンテナーを使用することをお勧めします。

環境のセットアップ

  1. ローカル コンピューターから競合を排除するために、Visual Studio Code で開発コンテナーを使用して OSDU 管理 UI をデプロイします。

  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 14.17.3 && \
    export NG_CLI_ANALYTICS=false && \ 
    npm install -g @angular/cli@13.3.9 && \
    apt-get install jq -y && \
    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 web app or storage account that will be generated. Storage account name must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    export RESOURCE_GROUP="" ## Name of resource group
    export LOCATION="" ## Azure region to deploy to, i.e. "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
export DATA_PARTITION_ID="" # ADME Data Partition ID (i.e. opendes)
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, i.e. "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


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 appinnsights "$APPINSIGHTS_INSTRUMENTATIONKEY" \
--arg connectorapi "$OSDU_CONNECTOR_API_ENDPOINT" \
'.settings.appInsights.instrumentationKey = $appinnsights |
    .settings.data_partition = $data | 
    .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.secrets_endpoint = $endpoint | 
    .settings.api_endpoints.wddms_endpoint = $endpoint' \
src/config/config.json > src/config/temp.json
mv src/config/temp.json src/config/config.json