Implementación de la interfaz de usuario de administrador de OSDU sobre Azure Data Manager for Energy

En esta guía se muestra cómo implementar la interfaz de usuario de administrador de OSDU sobre la instancia de Azure Data Manager for Energy (ADME).

La interfaz de usuario de administrador de OSDU permite a los administradores de plataforma administrar el Azure Data Manager para la partición de datos de energía a la que se conecta. Las tareas de administración incluyen derechos (administración de usuarios y grupos), etiquetas legales, esquemas, datos de referencia y visualización y visualización de objetos en un mapa.

Requisitos previos

Opciones de implementación

Hay dos opciones de implementación para la interfaz de usuario de administrador de OSDU:

  1. Implementación rápida mediante Azure Container Apps: implementación con un solo clic mediante Azure Container Apps. Esta opción es la manera más rápida de implementar la interfaz de usuario de administrador de OSDU y admite implementaciones públicas y privadas.
  2. Implementación personalizada mediante la característica Sitio web estático de la cuenta de Azure Storage: compile e implemente la interfaz de usuario de administración de OSDU mediante la característica Sitio web estático de la cuenta de Azure Storage. Esta opción es más personalizable y le permite adaptar la implementación a sus requisitos.

Implementación rápida con Azure Container Apps

  1. Seleccione el botón Deploy to Azure para implementar la interfaz de usuario de administrador de OSDU mediante Azure Container Apps.

    Implementación en Azure

  2. Rellene los parámetros necesarios en Azure Portal. Para obtener más información sobre los parámetros, consulte la sección parámetros.

    Recorte de pantalla que muestra el formulario de implementación de Azure Portal.

  3. Seleccione Revisar y crear y, a continuación, Crear para implementar la interfaz de usuario de administrador de OSDU.

  4. Compruebe la sección Outputs de la dirección URL de la interfaz de usuario de administrador de OSDU implementada.

  5. Configure la política ADME CORS y la URI de redireccionamiento SPA de registro de aplicaciones con la URL del sitio web.

  6. Abra la dirección URL en un explorador y compruebe que funciona correctamente y que está conectada a la instancia correcta de Azure Data Manager for Energy.

Parámetros

Parámetro Descripción Obligatorio
Suscripción La suscripción de Azure en la que se va a implementar la UI de administración de OSDU.
Grupo de recursos El grupo de recursos en el que se va a implementar la interfaz de usuario de administrador de OSDU.
Región La región de Azure en la que se va a implementar la interfaz de usuario de administrador de OSDU.
Nombre El nombre de la instancia de la interfaz de usuario de administrador de OSDU. Otros recursos usan este nombre como nombre base y anexan una abreviatura de servicio.
Imagen de contenedor La imagen de contenedor que se va a usar para la interfaz de usuario de administrador de OSDU. Consulte el Container Registry de la IU de administración del foro OSDU para ver las imágenes disponibles.
Punto de conexión de OSDU El punto de conexión de la instancia de Azure Data Manager for Energy o de OSDU al que se debe conectar. Utilice el punto de conexión base de ADME. La implementación la normaliza para el entorno de ejecución del contenedor.
Identificadores de partición de datos Lista separada por comas de identificadores de partición de datos de la instancia de Azure Data Manager for Energy o OSDU a la que conectarse.
Nombre de dominio de derechos El nombre de dominio que se va a usar para el servicio de derechos. Mantenga .dataservices.energy para cualquier implementación de ADME, solo actualice si usa otra implementación de OSDU.
Id. de cliente El ID de cliente del registro de la aplicación que se utilizará para la IU de administración de OSDU.
Ámbito El ámbito del registro de aplicaciones usado por Azure Data Manager para Energy o OSDU. Si el Client ID es el registro de aplicaciones de ADME, puede dejar este valor predeterminado.
Extremo del conector Opcional: El punto de conexión de la API del conector de la IU de administración de OSDU que se utilizará para la IU de administración. No
Punto de conexión de GCZ Opcional: Punto de conexión de GCZ base que termina con /gcz/. Ejemplo: https://contoso.energy.azure.com/api/gcz/. GCZ ya debe estar implementado por separado. No
Habilitación de la red privada Opcional: habilite el acceso de red privada a la interfaz de usuario de administrador de OSDU. No
Habilitar registro Opcional: habilite el registro para la interfaz de usuario de administrador de OSDU. No

Implementación personalizada mediante el sitio web estático de la cuenta de Azure Storage

Prepare su equipo

  • Instale Visual Studio Code con contenedores de desarrollo. Puede implementar la interfaz de usuario de administrador de OSDU desde el equipo local mediante Linux o Subsistema de Windows para Linux (WSL). Se recomienda usar un contenedor de desarrollo para reducir los conflictos de herramientas y entorno.

Configuración del entorno

  1. Use un contenedor de desarrollo en Visual Studio Code para reducir los conflictos con las herramientas instaladas localmente.

  2. Seleccione Remote - Containers | Open para abrir un contenedor de desarrollo y clonar el repositorio de la interfaz de usuario de administración de OSDU.

    Abrir en Remote - Containers

  3. Acepte el mensaje de clonación.

    Captura de pantalla que muestra la clonación del repositorio.

  4. Cuando se le solicite una plantilla de configuración de contenedor:

    1. Seleccione Ubuntu
    2. Acepte la versión predeterminada.
    3. No agregue ninguna característica adicional.
  5. Después de unos minutos, el devcontainer se ejecutará.

    Captura de pantalla que muestra la ejecución de devcontainer.

  6. Abra el terminal.

    Captura de pantalla que muestra la apertura del terminal.

  7. Instale la CLI de Angular, la CLI de Azure, npm y el Administrador de versiones de 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 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
    

    Captura de pantalla que muestra la instalación.

  8. Inicie sesión en CLI de Azure ejecutando el comando en el terminal.

    az login
    
  9. Escriba sus credenciales y compruebe que el inicio de sesión se realiza correctamente.

  10. Asegúrese de que está usando la suscripción correcta.

    az account show
    
  11. Si es necesario, cambie la suscripción.

    az account set --subscription <subscription-id>
    

Configuración de las variables de entorno

  1. Escriba las variables de entorno necesarias en el terminal.

    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"
    

Desplegar cuenta de almacenamiento

  1. Cree el grupo de recursos. Omita este paso si el grupo de recursos ya existe.

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Cree la cuenta de almacenamiento.

    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. Configuración del sitio web estático.

    az storage blob service-properties update \
        --account-name $WEBSITE_NAME \
        --static-website \
        --404-document index.html \
        --index-document index.html
    
  4. Establezca $web permisos de contenedor para permitir el acceso anónimo.

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

Configuración del sitio web

  1. Vaya a la carpeta OSDUApp.

    cd OSDUApp/
    
  2. Copie el archivo Azurerouting.ts.

    cp providers/azure/routing.ts src/app/routing.ts
    
  3. Instale las dependencias.

    npm install
    
  4. Modifique los parámetros del archivo de configuración ubicado en /src/config/config.json.

Reemplace los valores de las variables de entorno por los valores de la implementación.

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