Distribuire l'interfaccia utente amministratore OSDU sulla base di Azure Data Manager for Energy

Questa guida illustra come distribuire l'interfaccia utente di amministrazione osDU nell'istanza di Azure Data Manager for Energy (ADME).

L'interfaccia utente amministratore OSDU consente agli amministratori della piattaforma di gestire la Azure Data Manager per la partizione di dati Energy a cui si connette. Le attività di gestione includono diritti (gestione di utenti e gruppi), tag legali, schemi, dati di riferimento e visualizzazione e visualizzazione di oggetti su una mappa.

Prerequisiti

Opzioni di distribuzione

Sono disponibili due opzioni di distribuzione per l'interfaccia utente di amministrazione osDU:

  1. Distribuzione rapida con App contenitore di Azure: distribuzione con un clic con App contenitore di Azure. Questa opzione è il modo più rapido per distribuire l'interfaccia utente di amministrazione OSDU e supporta distribuzioni sia pubbliche che private.
  2. Distribuzione personalizzata tramite il Sito Web statico di Account di archiviazione di Azure: compilare e distribuire l'interfaccia utente di amministrazione di OSDU tramite il Sito Web statico di Account di archiviazione di Azure. Questa opzione è più personalizzabile e consente di personalizzare la distribuzione in base alle esigenze.

Distribuzione rapida con app Azure Container

  1. Selezionare il pulsante Deploy to Azure per distribuire l'interfaccia utente amministrativa di OSDU utilizzando App contenitore di Azure.

    Distribuzione in Azure

  2. Compilare i parametri obbligatori nella portale di Azure. Per altre informazioni sui parametri, vedere la sezione parametri.

    Screenshot che mostra il modulo di distribuzione portale di Azure.

  3. Selezionare Rivedi e crea e quindi Crea per distribuire l'interfaccia utente amministratore OSDU.

  4. Controllare la Outputs sezione relativa all'URL dell'interfaccia utente di amministrazione di OSDU distribuita.

  5. Configurare il criterio ADME CORS e l'URI di reindirizzamento dell'applicazione a pagina singola Registrazione dell'app con l'URL del sito Web.

  6. Aprire l'URL in un browser e verificare che funzioni correttamente e connesso all'istanza corretta di Azure Data Manager per l'energia.

Parametri

Parametro Descrizione Richiesto
Abbonamento Sottoscrizione di Azure per la distribuzione dell'interfaccia utente amministratore OSDU.
Gruppo di risorse Gruppo di risorse in cui distribuire l'interfaccia utente amministratore OSDU.
Regione Area di Azure in cui distribuire l'interfaccia utente amministratore OSDU.
Nome Nome dell'istanza dell'interfaccia utente amministratore OSDU. Altre risorse usano questo nome come nome di base e aggiungono un'abbreviazione del servizio.
Immagine del contenitore Immagine del contenitore da usare per l'interfaccia utente di amministrazione OSDU. Vedere OSDU Forum Admin UI Container Registry per le immagini disponibili.
OSDU Endpoint Endpoint dell'istanza di Azure Data Manager per Energia o OSDU a cui connettersi. Usare l'endpoint ADME di base. La distribuzione lo normalizza per il runtime del container.
ID di partizione dati Elenco delimitato da virgole degli ID partizione di dati dell'istanza di Azure Data Manager for Energy o OSDU a cui connettersi.
Nome di dominio dei diritti Nome di dominio da usare per il servizio di conferimento delle autorizzazioni. Mantenere .dataservices.energy per qualsiasi distribuzione di ADME, aggiornare solo se si utilizza un'altra implementazione OSDU.
ID cliente ID client della registrazione dell'app da usare per l'interfaccia utente amministratore OSDU.
Ambito Ambito della registrazione dell'applicazione usata da Azure Data Manager per l'Energia o OSDU. Se l'ID client è la registrazione dell'app ADME, è possibile lasciare questa impostazione predefinita.
Endpoint del connettore Facoltativo: endpoint dell'API del connettore dell'interfaccia utente amministratore OSDU da usare per l'interfaccia utente amministratore. No
GCZ Endpoint Opzionale: Endpoint GCZ di base che termina con /gcz/. Esempio: https://contoso.energy.azure.com/api/gcz/. GCZ deve essere già installato separatamente. No
Abilitare la rete privata Facoltativo: abilitare l'accesso alla rete privata all'interfaccia utente di amministrazione osDU. No
Abilita registrazione Facoltativo: abilitare la registrazione per l'interfaccia utente di amministrazione osDU. No

Distribuzione personalizzata utilizzando sito Web statico dell'account di archiviazione di Azure

Preparare il computer

  • Installare Visual Studio Code con Dev Containers. È possibile distribuire l'interfaccia utente amministratore OSDU dal computer locale usando Linux o sottosistema Windows per Linux (WSL). È consigliabile usare un contenitore di sviluppo per ridurre i conflitti di strumenti e ambienti.

Impostazione dell'ambiente

  1. Usare un contenitore di sviluppo in Visual Studio Code per ridurre i conflitti con gli strumenti installati in locale.

  2. Selezionare questa opzione Remote - Containers | Open per aprire un contenitore di sviluppo e clonare il repository dell'interfaccia utente di amministrazione OSDU.

    Aprire in remoto - Contenitori

  3. Accettare la richiesta di clonazione.

    Screenshot che mostra la clonazione del repository.

  4. Quando viene richiesto un modello di configurazione del contenitore:

    1. Selezionare Ubuntu.
    2. Accettare la versione predefinita.
    3. Non aggiungere funzionalità aggiuntive.
  5. Dopo alcuni minuti, il devcontainer è in esecuzione.

    Screenshot che mostra l'esecuzione di devcontainer.

  6. Aprire il terminale.

    Screenshot che mostra l'apertura del terminale.

  7. Installare l'interfaccia della riga di comando di Angular, l'interfaccia della riga di comando di Azure, npm e 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
    

    Screenshot che mostra l'installazione.

  8. Accedere interfaccia della riga di comando di Azure eseguendo il comando nel terminale.

    az login
    
  9. Immettere le credenziali e verificare che l'accesso abbia esito positivo.

  10. Verificare di usare la sottoscrizione corretta.

    az account show
    
  11. Se necessario, modificare la sottoscrizione.

    az account set --subscription <subscription-id>
    

Configurare le variabili di ambiente

  1. Immettere le variabili di ambiente necessarie nel terminale.

    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"
    

Implementare l'account di archiviazione

  1. Creare il gruppo di risorse. Ignorare questo passaggio se il gruppo di risorse esiste già.

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Creare l'account di archiviazione.

    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. Configurare il sito Web statico.

    az storage blob service-properties update \
        --account-name $WEBSITE_NAME \
        --static-website \
        --404-document index.html \
        --index-document index.html
    
  4. Impostare $web le autorizzazioni del contenitore per consentire l'accesso anonimo.

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

Configurare il sito Web

  1. Passa alla cartella OSDUApp.

    cd OSDUApp/
    
  2. Copiare il file Azurerouting.ts.

    cp providers/azure/routing.ts src/app/routing.ts
    
  3. Installa le dipendenze.

    npm install
    
  4. Modificare i parametri nel file di configurazione che si trova in /src/config/config.json.

Sostituire i valori delle variabili di ambiente con quelli della distribuzione in uso.

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