Bereitstellen der OSDU-Administratoroberfläche auf Basis von Azure Data Manager for Energy

In diesem Leitfaden wird gezeigt, wie Sie die OSDU-Administratorbenutzeroberfläche zusätzlich zu Ihrer ADME-Instanz (Azure Data Manager for Energy) bereitstellen.

Die OSDU-Admin-Benutzeroberfläche ermöglicht Plattformadministratoren, die Datenpartition von Azure Data Manager for Energy zu verwalten, mit der die Benutzeroberfläche verbunden ist. Verwaltungsaufgaben umfassen Berechtigungen (Benutzer- und Gruppenverwaltung), rechtliche Tags, Schemas, Referenzdaten sowie das Anzeigen und Visualisieren von Objekten auf einer Karte.

Voraussetzungen

Bereitstellungsoptionen

Es gibt zwei Bereitstellungsoptionen für die OSDU-Admin-Benutzeroberfläche:

  1. Schnelle Bereitstellung mit Azure Container Apps: Eine Einklickbereitstellung mit Azure Container Apps. Diese Option ist die schnellste Möglichkeit, die OSDU-Administratorbenutzeroberfläche bereitzustellen und sowohl öffentliche als auch private Bereitstellungen zu unterstützen.
  2. Benutzerdefinierte Bereitstellung unter Verwendung von Azure Storage Account Static Website: Erstellen und bereitstellen Sie die OSDU-Admin-Benutzeroberfläche mithilfe von Azure Storage Account Static Website. Diese Option ist anpassbarer und ermöglicht es Ihnen, die Bereitstellung an Ihre Anforderungen anzupassen.

Schnelle Bereitstellung mit Azure Container Apps

  1. Wählen Sie die Schaltfläche Deploy to Azure aus, um die OSDU-Administrator-Benutzeroberfläche mit Azure-Container-Apps bereitzustellen.

    Bereitstellung in Azure

  2. Geben Sie die erforderlichen Parameter im Azure-Portal ein. Weitere Informationen zu den Parametern finden Sie im Abschnitt "Parameter".

    Screenshot, der das Azure-Portal-Bereitstellungsformular zeigt.

  3. Wählen Sie Überprüfen + erstellen und dann Erstellen, um die OSDU-Admin-Benutzeroberfläche bereitzustellen.

  4. Die URL der bereitgestellten OSDU-Admin-Benutzeroberfläche finden Sie im Abschnitt Outputs.

  5. Konfigurieren Sie die ADME CORS-Richtlinie und den App-Registrierungs-SPA-Umleitungs-URI mit der Website-URL.

  6. Öffnen Sie die URL in einem Browser, und überprüfen Sie, ob sie ordnungsgemäß funktioniert und mit der richtigen Azure Data Manager for Energy-Instanz verbunden ist.

Parameter

Parameter Beschreibung Erforderlich
Abonnement Das Azure-Abonnement, auf dem die OSDU-Admin-Benutzeroberfläche bereitgestellt werden soll. Ja
Ressourcengruppe Die Ressourcengruppe, für die die OSDU-Admin-Benutzeroberfläche bereitgestellt werden soll. Ja
Region Die Azure-Region, in der die OSDU-Admin-Benutzeroberfläche bereitgestellt werden soll. Ja
Name Der Name der Instanz der OSDU-Admin-Benutzeroberfläche. Andere Ressourcen verwenden diesen Namen als Basisnamen und fügen eine Dienstkürzel an. Ja
Containerimage Das für die OSDU-Admin-Benutzeroberfläche zu verwendende Containerimage. Verfügbare Images finden Sie unter OSDU Forum Admin UI Container Registry. Ja
OSDU-Endpunkt Der Endpunkt der Azure Data Manager for Energy- oder OSDU-Instanz, mit der eine Verbindung hergestellt werden soll. Verwenden Sie den AdME-Basisendpunkt. Die Bereitstellung sorgt für eine Normalisierung für die Containerlaufzeit. Ja
Datenpartitions-IDs Durch Trennzeichen getrennte Liste der Datenpartition-IDs der Azure Data Manager für Energie- oder OSDU-Instanz, mit der eine Verbindung hergestellt werden soll. Ja
Berechtigungs-Domänenname Der Domänenname, der für den Berechtigungsdienst verwendet werden soll. Behalten Sie .dataservices.energy für jede ADME-Bereitstellung bei und aktualisieren Sie es nur, wenn Sie eine andere OSDU-Implementierung verwenden. Ja
Client-ID Die Client-ID der App-Registrierung, die für die OSDU-Admin-Benutzeroberfläche verwendet werden soll. Ja
Umfang Der Umfang der App-Registrierung, die von Azure Data Manager for Energy oder OSDU verwendet wird. Wenn die Client-ID die ADME-App-Registrierung ist, können Sie diese Standardeinstellung beibehalten. Ja
Steckverbinder-Endpunkt Optional: Der Endpunkt der OSDU-Admin-UI-Connector-API, der für die Admin-UI verwendet werden soll. Nein
GCZ-Endpunkt Optional: GCZ-Basisendpunkt endet mit /gcz/. Beispiel: https://contoso.energy.azure.com/api/gcz/. GCZ muss bereits separat bereitgestellt werden. Nein
Privates Netzwerk aktivieren Optional: Ermöglichen Sie den privaten Netzwerkzugriff auf die OSDU-Admin-Benutzeroberfläche. Nein
Protokollierung aktivieren Optional: Aktivieren Sie die Protokollierung für die OSDU-Administrator-Benutzeroberfläche. Nein

Benutzerdefinierte Bereitstellung mit einer statischen Website im Azure-Speicherkonto

Vorbereiten Ihres Computers

  • Installieren Sie Visual Studio Code with Dev Containers. Sie können die OSDU-Administrator-Benutzeroberfläche auf Ihrem lokalen Computer mithilfe von Linux oder Windows-Subsystem für Linux (WSL) bereitstellen. Es wird empfohlen, einen Dev-Container zu verwenden, um Tool- und Umgebungskonflikte zu reduzieren.

Einrichten der Umgebung

  1. Verwenden Sie einen Dev-Container in Visual Studio Code, um Konflikte mit lokal installierten Tools zu reduzieren.

  2. Wählen Sie Remote - Containers | Open aus, um einen Entwicklungscontainer zu öffnen und das Repository für die OSDU-Administratorbenutzeroberfläche zu klonen.

    Öffnen in Remote-Containern

  3. Akzeptieren Sie die Eingabeaufforderung zum Klonen.

    Screenshot des Klonens des Repositorys

  4. Wenn Sie zur Eingabe einer Containerkonfigurationsvorlage aufgefordert werden:

    1. Wählen Sie Ubuntu aus.
    2. Übernehmen Sie die Standardversion.
    3. Fügen Sie keine zusätzlichen Features hinzu.
  5. Nach ein paar Minuten läuft der Entwicklungscontainer.

    Screenshot der Ausführung von devcontainer

  6. Öffnen Sie das Terminal.

    Screenshot des Öffnens des Terminals

  7. Installieren Sie die Angular CLI, die Azure-Befehlszeilenschnittstelle, npm und 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 der Installation

  8. Melden Sie sich bei Azure CLI an, indem Sie den Befehl im Terminal ausführen.

    az login
    
  9. Geben Sie Ihre Anmeldeinformationen ein, und überprüfen Sie, ob die Anmeldung erfolgreich ist.

  10. Überprüfen Sie, ob Sie das richtige Abonnement verwenden.

    az account show
    
  11. Ändern Sie bei Bedarf das Abonnement.

    az account set --subscription <subscription-id>
    

Konfigurieren von Umgebungsvariablen

  1. Geben Sie die erforderlichen Umgebungsvariablen im Terminal ein.

    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"
    

Speicherkonto bereitstellen

  1. Erstellen Sie die Ressourcengruppe. Überspringen Sie diesen Schritt, wenn die Ressourcengruppe bereits vorhanden ist.

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Erstellen Sie das Speicherkonto.

    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. Konfigurieren Sie die statische Website.

    az storage blob service-properties update \
        --account-name $WEBSITE_NAME \
        --static-website \
        --404-document index.html \
        --index-document index.html
    
  4. Legen Sie $web Containerberechtigungen fest, um anonymen Zugriff zu ermöglichen.

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

Konfigurieren der Website

  1. Navigieren Sie zum Ordner OSDUApp.

    cd OSDUApp/
    
  2. Kopieren Sie die Azure routing.ts Datei.

    cp providers/azure/routing.ts src/app/routing.ts
    
  3. Installieren Sie die Abhängigkeiten.

    npm install
    
  4. Ändern Sie die Parameter in der Konfigurationsdatei unter /src/config/config.json.

Ersetzen Sie die Umgebungsvariablenwerte durch Werte für Ihre Bereitstellung.

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