你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure 的能源数据管理器上部署 OSDU Admin UI
本指南介绍了如何在 Azure 能源数据管理器 (ADME) 实例上部署 OSDU Admin UI。
OSDU Admin UI 让平台管理员能够为连接到的能源数据分区管理 Azure 数据管理器。 管理任务包括权利(用户和组管理)、法律标记、架构、参考数据、在地图上查看和可视化对象。
先决条件
一个 Microsoft Entra ID 应用注册。
此应用注册可以与用于 Azure 能源数据管理器实例的应用注册相同。 管理员 UI 的应用注册需要以下 API 权限才能正常运行。首次登录到管理员 UI 时,它会请求必要的权限。 你也可以提前授予所需的权限。 请参阅应用注册 API 权限文档。
部署选项
OSDU 管理员 UI 有两个部署选项:
使用 Azure 容器应用快速部署:使用 Azure 容器应用一键部署。 此部署是部署 OSDU 管理员 UI 的最简单、最快速的方法。 它支持公共部署和专用部署。
使用 Azure 存储帐户静态网站进行自定义部署:使用 Azure 存储帐户生成和部署 OSDU 管理员 UI。 此部署选项更具可自定义性,允许根据需要配置部署。
使用 Azure 容器应用快速部署
选择
Deploy to Azure
按钮以使用 Azure 容器应用部署 OSDU 管理 UI。在 Azure 门户中填写所需的参数。 有关参数的详细信息,请参阅“参数”部分了解详情。
选择“查看 + 创建”,然后选择“创建”以部署 OSDU 管理员 UI。
查看
Outputs
部分,了解已部署 OSDU 管理员 UI 的 URL。使用网站 URL 配置 ADME CORS 策略和应用注册 SPA 重定向 URI。
在浏览器中打开 URL,并验证它是否正常工作和连接到正确的 Azure 用于能源的数据管理器实例。
参数
参数 | 步骤 | 必须 |
---|---|---|
订阅 | 要将 OSDU 管理员 UI 部署到的 Azure 订阅。 | 是 |
资源组 | 要将 OSDU 管理员 UI 部署到的资源组。 | 是 |
区域 | 要将 OSDU 管理员 UI 部署到的 Azure 区域。 | 是 |
名称 | OSDU 管理员 UI 实例的名称。 其他资源使用此名称作为基名称,然后追加服务缩写 | 是 |
容器映像 | 用于 OSDU 管理 UI 的容器映像。 有关可用映像,请参阅 OSDU 论坛管理员 UI 容器注册表。 | 是 |
Osdu 终结点 | 要连接到的 Azure 用于能源的数据管理器或 OSDU 实例的终结点。 | 是 |
数据分区 ID | 要连接到的 Azure 用于能源的数据管理器或 OSDU 实例的数据分区 ID。 | 是 |
权利域名 | 用于权利服务的域名。 请保留 .dataservices.energy 以进行任何 ADME 部署,仅当使用其他 OSDU 实现时才进行更新。 |
是 |
客户端 ID | 要用于 OSDU 管理员 UI 的应用注册的客户端 ID。 | 是 |
范围 | Azure 用于能源的数据管理器或 OSDU 使用的应用注册的范围。 如果客户端 ID 是 ADME 应用注册,则可以保留此默认值。 | 是 |
连接器终结点 | 可选:要用于管理员 UI 的 OSDU 管理员 UI 连接器 API 终结点。 | 否 |
启用专用网络 | 可选:启用对 OSDU 管理员 UI 的专用网络访问。 | 否 |
启用日志记录 | 可选:为 OSDU 管理员 UI 启用日志记录。 | 否 |
使用 Azure 存储帐户静态网站自定义部署
准备计算机
- 安装 Visual Studio Code 和开发容器。 可以使用 Linux 或适用于 Linux 的 Windows 子系统 (WSL) 从本地计算机部署 OSDU Admin UI,建议使用开发容器来避免工具版本和环境等的潜在冲突。
环境设置
使用 Visual Studio Code 中的开发容器部署 OSDU Admin UI,以避免本地计算机中的冲突。
选择
Remote - Containers | Open
打开开发容器并克隆 OSDU Admin UI 存储库。同意克隆提示。
当系统提示要求容器配置模板时。
- 选择 Ubuntu。
- 同意默认值。
- 不要添加任何额外的功能。
开发容器将在数分钟后运行。
打开终端。
安装 Angular CLI、Azure CLI、npm 和 Node 版本管理器 (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
通过在终端上执行命令以登录到 Azure CLI。 它会转到登录屏幕。
az login
它会转到登录屏幕。 输入凭据并成功后,你会看到一条成功消息。
验证是否使用正确的订阅。
az account show
如果需要,请使用此代码更改订阅。
az account set --subscription <subscription-id>
配置环境变量
在终端上输入要求的环境变量。
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"
部署存储帐户
创建资源组。 如果资源组已存在,请跳过此步骤。
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
配置静态网站。
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
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