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-Administratoroberfläche ermöglicht es Plattformadministratoren, die Azure Data Manager for Energy-Datenpartition zu verwalten, mit der Sie eine Verbindung herstellen. Die Verwaltungsaufgaben umfassen Berechtigungen (Benutzer- und Gruppenverwaltung), rechtliche Tags, Schemas, Verweisdaten, Anzeigen sowie Visualisieren von Objekten auf einer Karte.
Voraussetzungen
Eine Microsoft Entra ID-App-Registrierung.
Diese App-Registrierung kann mit der für die Azure Data Manager for Energy-Instanz verwendeten identisch sein. Die folgenden API-Berechtigungen sind für die App-Registrierung erforderlich, damit die Administratorbenutzeroberfläche ordnungsgemäß funktioniert.Bei der ersten Anmeldung auf der Administratorbenutzeroberfläche werden die erforderlichen Berechtigungen angefordert. Sie können die erforderlichen Berechtigungen auch im Voraus erteilen. Weitere Informationen finden Sie unter App-Registrierungs-API-Berechtigungsdokumentation.
Bereitstellungsoptionen
Es gibt zwei Bereitstellungsoptionen für die OSDU-Admin-Benutzeroberfläche:
Schnelle Bereitstellung mit Azure Container Apps: Einmaliges Bereitstellen mithilfe von Azure-Container-Apps. Diese Bereitstellung ist die einfachste und schnellste Möglichkeit, die OSDU-Admin-Benutzeroberfläche bereitzustellen. Sie unterstützt sowohl öffentliche als auch private Einsätze.
Benutzerdefinierte Bereitstellung mithilfe der statischen Azure Storage-Website: Erstellen und Bereitstellen der OSDU-Administrator-Benutzeroberfläche mithilfe des Azure Storage-Kontos. Diese Bereitstellungsoption ist anpassbarer und ermöglicht es Ihnen, die Bereitstellung nach Ihren Bedürfnissen zu konfigurieren.
Schnelle Bereitstellung mit Azure Container Apps
Wählen Sie die Schaltfläche
Deploy to Azure
aus, um die OSDU-Administrator-Benutzeroberfläche mit Azure-Container-Apps bereitzustellen.Geben Sie die erforderlichen Parameter im Azure-Portal ein. Weitere Informationen zu den Parametern finden Sie im Abschnitt Parameter.
Wählen Sie Überprüfen + erstellen und dann Erstellen, um die OSDU-Admin-Benutzeroberfläche bereitzustellen.
Die URL der bereitgestellten OSDU-Admin-Benutzeroberfläche finden Sie im Abschnitt
Outputs
.Konfigurieren Sie die ADME-CORS-Richtlinie und den App-Registrierungs-SPA-Umleitungs-URI mit der Website-URL.
Ö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 des Dataflows | Erforderlich |
---|---|---|
Abonnement | Das Azure-Abonnement, auf dem die OSDU-Admin-Benutzeroberfläche bereitgestellt werden soll. | Ja |
Resource group | 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. | Yes |
Name | Der Name der Instanz der OSDU-Admin-Benutzeroberfläche. Andere Ressourcen verwenden diesen Namen als Basisnamen und fügen eine Dienstabkürzung hinzu. | 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 Endpoint | Der Endpunkt der Azure Data Manager for Energy- oder OSDU-Instanz, mit der eine Verbindung hergestellt werden soll. | Ja |
Datenpartitions-ID | Die Datenpartitions-ID der Azure Data Manager for Energy- oder OSDU-Instanz, mit der eine Verbindung hergestellt werden soll. | Ja |
Domänenname der Berechtigungen | 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 |
`Scope` | 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 |
Connectorendpunkt | Optional: Der Endpunkt der OSDU-Admin-UI-Connector-API, der für die Admin-UI verwendet werden soll. | No |
Privates Netzwerk aktivieren | Optional: Ermöglichen Sie den privaten Netzwerkzugriff auf die OSDU-Admin-Benutzeroberfläche. | No |
Protokollierung aktivieren | Optional: Aktivieren Sie die Protokollierung für die OSDU-Administrator-Benutzeroberfläche. | No |
Benutzerdefinierte Bereitstellung mit statischer Website des Azure-Speicherkontos
Vorbereiten Ihres Computers
- Installieren von Visual Studio Code mit Entwicklungscontainern. Es ist möglich, die OSDU-Administratorbenutzeroberfläche über Ihren lokalen Computer mit Linux oder das Windows-Subsystem für Linux (WSL) bereitzustellen. Es wird die Verwendung eines Entwicklungscontainers empfohlen, um potenzielle Konflikte mit Toolversionen, Umgebungen usw. zu vermeiden.
Einrichten der Umgebung
Verwenden Sie den Entwicklungscontainer in Visual Studio Code, um die OSDU-Administratoroberfläche bereitzustellen und Konflikte auf Ihrem lokalen Computer zu vermeiden.
Wählen Sie
Remote - Containers | Open
aus, um einen Entwicklungscontainer zu öffnen und das Repository für die OSDU-Administratorbenutzeroberfläche zu klonen.Akzeptieren Sie die Eingabeaufforderung zum Klonen.
Wenn Sie zur Eingabe einer Containerkonfigurationsvorlage aufgefordert werden.
- Wählen Sie Ubuntu aus.
- Übernehmen Sie die Standardversion.
- Fügen Sie keine zusätzlichen Features hinzu.
Nach ein paar Minuten wird der Entwicklungscontainer ausgeführt.
Öffnen Sie das Terminal.
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 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
Melden Sie sich bei der Azure CLI an, indem Sie den Befehl im Terminal ausführen. Sie gelangen zum Anmeldebildschirm.
az login
Sie gelangen zum Anmeldebildschirm. Geben Sie Ihre Anmeldeinformationen ein. Ggf. wird eine Erfolgsmeldung angezeigt.
Überprüfen Sie, ob Sie das richtige Abonnement verwenden.
az account show
Verwenden Sie bei Bedarf diesen Code, um das Abonnement zu ändern.
az account set --subscription <subscription-id>
Konfigurieren von Umgebungsvariablen
Geben Sie die erforderlichen Umgebungsvariablen im Terminal ein.
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"
Bereitstellen des Speicherkontos
Erstellen Sie eine Ressourcengruppe. Überspringen Sie diesen Schritt, wenn die Ressourcengruppe bereits vorhanden ist.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION
Erstellen eines Speicherkontos.
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
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
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
Erstellen und Bereitstellen der Web-App
Navigieren Sie zum Ordner
OSDUApp
.cd OSDUApp/
Kopieren Sie die Azure routing.ts-Datei.
cp providers/azure/routing.ts src/app/routing.ts
Installieren Sie die Abhängigkeiten.
npm install
Ändern Sie die Parameter in der Konfigurationsdatei unter
/src/config/config.json
.
Ersetzen Sie die Werte der Umgebungsvariablen durch Ihre Werte.
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