Wdrażanie interfejsu użytkownika administratora OSDU na bazie Azure Data Manager for Energy

W tym przewodniku pokazano, jak wdrożyć interfejs użytkownika administratora OSDU na bazie instancji usługi Azure Data Manager for Energy (ADME).

Interfejs użytkownika administratora OSDU umożliwia administratorom platformy zarządzanie partycją danych Azure Data Manager for Energy, z którą nawiązuje połączenie. Zadania zarządzania obejmują uprawnienia (zarządzanie użytkownikami i grupami), tagi prawne, schematy, dane referencyjne oraz wyświetlanie i wizualizowanie obiektów na mapie.

Wymagania wstępne

Opcje wdrażania

Istnieją dwie opcje wdrażania dla interfejsu użytkownika administratora OSDU:

  1. Szybkie wdrażanie przy użyciu Azure Container Apps: wdrożenie jednym kliknięciem przy użyciu Azure Container Apps. Ta opcja to najszybszy sposób wdrażania interfejsu użytkownika administratora OSDU i obsługi wdrożeń publicznych i prywatnych.
  2. Wdrożenie niestandardowe za pomocą funkcji Statyczna witryna internetowa konta usługi Azure Storage: Kompilowanie i wdrażanie interfejsu administracyjnego OSDU za pomocą funkcji Statyczna witryna internetowa konta usługi Azure Storage. Ta opcja jest bardziej dostosowywalna i umożliwia dostosowanie wdrożenia do wymagań.

Szybkie wdrażanie za pomocą usługi Azure Container Apps

  1. Deploy to Azure Wybierz przycisk , aby wdrożyć interfejs użytkownika administratora OSDU przy użyciu usługi Azure Container Apps.

    Wdróż na platformie Azure

  2. Wypełnij wymagane parametry w witrynie Azure Portal. Aby uzyskać więcej informacji na temat parametrów, zobacz sekcję parametry.

    Zrzut ekranu przedstawiający formularz wdrażania witryny Azure Portal.

  3. Wybierz Przejrzyj i utwórz, a następnie Utwórz, aby wdrożyć interfejs użytkownika administratora OSDU.

  4. Sprawdź sekcję Outputs pod kątem adresu URL wdrożonego interfejsu użytkownika administratora OSDU.

  5. Skonfiguruj zasady CORS polityki ADME oraz identyfikator URI przekierowania SPA dla rejestracji aplikacji za pomocą adresu URL witryny internetowej.

  6. Otwórz adres URL w przeglądarce i zweryfikuj, czy działa prawidłowo oraz czy jest połączony z właściwą instancją Azure Data Manager for Energy.

Parametry

Parametr opis Wymagane
Subskrypcja Subskrypcja platformy Azure do wdrożenia interfejsu użytkownika administratora OSDU. Tak
Grupa zasobów Grupa zasobów do wdrożenia interfejsu administratora OSDU. Tak
Region Region Azure, do którego zostanie wdrożony interfejs użytkownika administratora OSDU. Tak
Nazwisko Nazwa wystąpienia OSDU Admin UI. Inne zasoby wykorzystują tę nazwę jako nazwę bazową i dołączają skrót usługi. Tak
Obraz kontenera Obraz kontenera do użycia w interfejsie użytkownika administratora OSDU. Zobacz Rejestr kontenerów interfejsu użytkownika administratora forum OSDU w celu uzyskania dostępnych obrazów. Tak
Punkt końcowy OSDU Punkt końcowy wystąpienia usługi Azure Data Manager for Energy lub OSDU do nawiązania połączenia. Użyj podstawowego punktu końcowego ADME. Wdrożenie normalizuje je dla środowiska uruchomieniowego kontenera. Tak
Identyfikatory partycji danych Rozdzielona przecinkami lista identyfikatorów partycji danych wystąpienia Azure Data Manager for Energy lub OSDU w celu nawiązania połączenia. Tak
Nazwa domeny uprawnień Nazwa domeny do użycia dla usługi uprawnień. Zachowaj .dataservices.energy w przypadku każdego wdrożenia ADME, aktualizuj tylko w przypadku użycia innej implementacji OSDU. Tak
ID klienta Identyfikator klienta rejestracji aplikacji do użycia dla interfejsu użytkownika administratora OSDU. Tak
Scope Zakres rejestracji aplikacji używany przez usługę Azure Data Manager for Energy lub OSDU. Jeśli identyfikator klienta jest rejestracją aplikacji ADME, możesz pozostawić tę wartość domyślną. Tak
Punkt końcowy łącznika Opcjonalnie: punkt końcowy API Connector do użycia dla interfejsu użytkownika administratora OSDU. Nie.
Punkt końcowy GCZ Opcjonalne: Podstawowy punkt końcowy GCZ kończący się ciągiem /gcz/. Przykład: https://contoso.energy.azure.com/api/gcz/. GCZ musi być już wdrożony oddzielnie. Nie.
Włączanie sieci prywatnej Opcjonalnie: Włącz dostęp do sieci prywatnej do interfejsu użytkownika administratora OSDU. Nie.
Włączanie rejestrowania Opcjonalnie: włącz rejestrowanie dla interfejsu użytkownika administratora OSDU. Nie.

Wdrażanie niestandardowe przy użyciu statycznej witryny internetowej konta usługi Azure Storage

Przygotowywanie komputera

  • Instalowanie programu Visual Studio Code za pomocą kontenerów deweloperskich. Interfejs użytkownika administratora OSDU można wdrożyć z komputera lokalnego przy użyciu systemu Linux lub Podsystem Windows dla systemu Linux (WSL). Zalecamy użycie kontenera deweloperskiego w celu zmniejszenia konfliktów narzędzi i środowiska.

Konfigurowanie środowiska

  1. Użyj kontenera deweloperskiego w Visual Studio Code, aby zmniejszyć konflikty z lokalnie zainstalowanymi narzędziami.

  2. Wybierz Remote - Containers | Open, aby otworzyć kontener deweloperski i sklonować repozytorium interfejsu użytkownika administratora OSDU.

    Otwórz w Zdalne - Kontenery

  3. Zaakceptuj komunikat klonowania.

    Zrzut ekranu przedstawiający klonowanie repozytorium.

  4. Gdy pojawi się monit o szablon konfiguracji kontenera:

    1. Wybierz pozycję Ubuntu.
    2. Zaakceptuj wersję domyślną.
    3. Nie dodawaj żadnych dodatkowych funkcji.
  5. Po kilku minutach devcontainer jest uruchomiony.

    Zrzut ekranu przedstawiający uruchamianie devcontainer.

  6. Otwórz terminal.

    Zrzut ekranu przedstawiający otwieranie terminalu.

  7. Zainstaluj interfejs wiersza polecenia platformy Angular, interfejs wiersza polecenia platformy Azure, narzędzie npm i program 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
    

    Zrzut ekranu przedstawiający instalację.

  8. Zaloguj się do Azure CLI, wykonując polecenie w terminalu.

    az login
    
  9. Wprowadź poświadczenia i sprawdź, czy logowanie zakończyło się pomyślnie.

  10. Sprawdź, czy używasz odpowiedniej subskrypcji.

    az account show
    
  11. W razie potrzeby zmień subskrypcję.

    az account set --subscription <subscription-id>
    

Skonfiguruj zmienne środowiskowe

  1. Wprowadź wymagane zmienne środowiskowe w terminalu.

    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"
    

Wdrażanie konta magazynowego

  1. Utwórz grupę zasobów. Pomiń ten krok, jeśli grupa zasobów już istnieje.

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Utwórz konto magazynowe.

    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. Skonfiguruj statyczną witrynę internetową.

    az storage blob service-properties update \
        --account-name $WEBSITE_NAME \
        --static-website \
        --404-document index.html \
        --index-document index.html
    
  4. Ustaw $web uprawnienia kontenera, aby zezwolić na dostęp anonimowy.

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

Konfigurowanie witryny internetowej

  1. Przejdź do folderu OSDUApp.

    cd OSDUApp/
    
  2. Skopiuj plik Azurerouting.ts.

    cp providers/azure/routing.ts src/app/routing.ts
    
  3. Zainstaluj zależności.

    npm install
    
  4. Zmodyfikuj parametry w pliku konfiguracji znajdującym się w lokalizacji /src/config/config.json.

Zastąp wartości zmiennych środowiskowych wartościami dla wdrożenia.

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