OSDU Admin UI implementeren boven op Azure Data Manager for Energy

In deze handleiding ziet u hoe u de GEBRUIKERSinterface van OSDU-beheerders implementeert boven op uw Exemplaar van Azure Data Manager for Energy (ADME).

Met de GEBRUIKERSinterface van OSDU Admin kunnen platformbeheerders de Azure Data Manager for Energy-gegevenspartitie beheren waarmee deze verbinding maakt. Beheertaken omvatten rechten (gebruikers- en groepsbeheer), juridische tags, schema's, referentiegegevens en het weergeven en visualiseren van objecten op een kaart.

Vereisten

Implementatieopties

Er zijn twee implementatieopties voor de gebruikersinterface van osdu-beheerders:

  1. Snel implementeren met behulp van Azure Container Apps: een implementatie met één klik met behulp van Azure Container Apps. Deze optie is de snelste manier om de gebruikersinterface van osdu-beheerders te implementeren en ondersteunt zowel openbare als privé-implementaties.
  2. Aangepaste implementatie met Static Website van Azure Storage Account: Bouw en implementeer de OSDU Admin UI met behulp van Static Website van Azure Storage Account. Deze optie kan beter worden aangepast en stelt u in staat om de implementatie aan uw vereisten aan te passen.

Snel implementeren met Azure Container Apps

  1. Selecteer de Deploy to Azure knop om de gebruikersinterface van osdu-beheerders te implementeren met behulp van Azure Container Apps.

    Implementeren op Azure

  2. Vul de vereiste parameters in de Azure Portal in. Zie de sectie parameters voor meer informatie over de parameters.

    Schermopname van het implementatieformulier van Azure Portal.

  3. Selecteer Beoordelen en maken en vervolgens Maken om de OSDU Admin UI te implementeren.

  4. Controleer de Outputs sectie voor de URL van de geïmplementeerde OSDU Admin UI.

  5. Configureer het ADME CORS-beleid en de omleidings-URI voor app-registratie-SPA met de website-URL.

  6. Open de URL in een browser en controleer of deze correct werkt en is verbonden met het juiste Exemplaar van Azure Data Manager for Energy.

Parameters

Parameter Omschrijving Vereist
Abonnement Het Azure-abonnement voor het implementeren van de OSDU Beheer UI. Ja
Resourcegroep De resourcegroep om de OSDU Admin UI naar te implementeren. Ja
Regio De Azure-regio om de OSDU Admin UI te implementeren. Ja
Naam De naam van het OSDU beheerinterface-exemplaar. Andere resources gebruiken deze naam als basisnaam en voegen een serviceafkorting toe. Ja
Containerinstallatiekopie De containerafbeelding die moet worden gebruikt voor de OSDU beheerder UI. Zie de OSDU Forum Admin UI Container Registry voor beschikbare containerafbeeldingen. Ja
OSDU-eindpunt Het eindpunt van het Azure Data Manager for Energy- of OSDU-exemplaar waarmee verbinding moet worden gemaakt. Gebruik het ADME-basiseindpunt. De implementatie normaliseert deze voor de containerruntime. Ja
Gegevenspartitie-identiteiten Door komma's gescheiden lijst met gegevenspartitie-id's van de Azure Data Manager for Energy- of OSDU-instantie waarmee verbinding moet worden gemaakt. Ja
Rechten Domeinnaam De domeinnaam die gebruikt moet worden voor de rechtenbeheer service. Behoud .dataservices.energy voor elke ADME-implementatie, alleen bijwerken als u een andere OSDU-implementatie gebruikt. Ja
Klant-ID De client-id van de app-registratie die moet worden gebruikt voor de gebruikersinterface van de OSDU-beheerder. Ja
Omvang Het bereik van de app-registratie die wordt gebruikt door Azure Data Manager for Energy of OSDU. Als de client-id de REGISTRATIE van de ADME-app is, kunt u deze standaardwaarde behouden. Ja
Eindpunt van connector Optioneel: het API-eindpunt van de OSDU Admin UI Connector dat moet worden gebruikt voor de gebruikersinterface van de beheerder. Nee
GCZ-eindpunt Optionele: Basis-GCZ-eindpunt eindigend op /gcz/. Voorbeeld: https://contoso.energy.azure.com/api/gcz/. GCZ moet al afzonderlijk worden geïmplementeerd. Nee
Privénetwerk inschakelen Optioneel: schakel toegang tot het privénetwerk in voor de gebruikersinterface van osdu-beheerders. Nee
Logboekfunctie inschakelen Optioneel: schakel logboekregistratie in voor de gebruikersinterface van osdu-beheerders. Nee

Aangepaste implementatie met statische website van Azure Storage-account

Uw computer voorbereiden

  • Installeer Visual Studio Code met Dev Containers. U kunt de gebruikersinterface van osdu-beheerders implementeren vanaf uw lokale computer met behulp van Linux of Windows-subsysteem voor Linux (WSL). U wordt aangeraden een Dev-container te gebruiken om hulpprogramma's en omgevingsconflicten te verminderen.

Instellen van de omgeving

  1. Gebruik een Dev-container in Visual Studio Code om conflicten met lokaal geïnstalleerde hulpprogramma's te verminderen.

  2. Selecteer Remote - Containers | Open om een Development Container te openen en de OSDU Admin UI-repository te klonen.

    Openen in Remote - Containers

  3. Accepteer de kloonprompt.

    Schermopname van het klonen van de opslagplaats.

  4. Wanneer u wordt gevraagd om een containerconfiguratiesjabloon:

    1. Selecteer Ubuntu.
    2. Accepteer de standaardversie.
    3. Voeg geen extra functies toe.
  5. Na enkele minuten draait de devcontainer.

    Schermopname van het uitvoeren van devcontainer.

  6. Open de terminal.

    Schermopname van het openen van terminal.

  7. Installeer Angular CLI, Azure CLI, npm en 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
    

    Schermopname van de installatie.

  8. Meld u aan bij Azure CLI door de opdracht in de terminal uit te voeren.

    az login
    
  9. Voer uw referenties in en controleer of de aanmelding is geslaagd.

  10. Controleer of u het juiste abonnement gebruikt.

    az account show
    
  11. Wijzig indien nodig het abonnement.

    az account set --subscription <subscription-id>
    

Omgevingsvariabelen configureren

  1. Voer de vereiste omgevingsvariabelen in de terminal in.

    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"
    

Opslagaccount implementeren

  1. Maak de resourcegroep. Sla deze stap over als de resourcegroep al bestaat.

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Maak het opslagaccount.

    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. Configureer de statische website.

    az storage blob service-properties update \
        --account-name $WEBSITE_NAME \
        --static-website \
        --404-document index.html \
        --index-document index.html
    
  4. Stel $web containermachtigingen in om anonieme toegang toe te staan.

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

De website configureren

  1. Navigeer naar de map OSDUApp.

    cd OSDUApp/
    
  2. Kopieer het Azure routing.ts bestand.

    cp providers/azure/routing.ts src/app/routing.ts
    
  3. Installeer de afhankelijkheden.

    npm install
    
  4. Wijzig de parameters in het configuratiebestand op /src/config/config.json.

Vervang de waarden van de omgevingsvariabele door waarden voor uw implementatie.

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