Distribuera OSDU-administratörsgränssnittet ovanpå Azure Data Manager for Energy

Den här guiden visar hur du distribuerar OSDU-administratörsgränssnittet ovanpå adme-instansen (Azure Data Manager for Energy).

Användargränssnittet för OSDU-administratören gör det möjligt för plattformsadministratörer att hantera den Azure Data Manager for Energy-datapartition som den ansluter till. Hanteringsuppgifter omfattar rättigheter (användar- och grupphantering), juridiska taggar, scheman, referensdata och visning och visualisering av objekt på en karta.

Förutsättningar

Distribueringsalternativ

Det finns två distributionsalternativ för OSDU-administratörsgränssnittet:

  1. Snabbdistribution med Azure Container Apps: En distribution med ett klick med Azure Container Apps. Det här alternativet är det snabbaste sättet att distribuera OSDU-administratörsgränssnittet och stöder både offentliga och privata distributioner.
  2. Anpassad distribution med Azure Storage konto statisk webbplats: Skapa och distribuera OSDU-administratörsgränssnittet med hjälp av Azure Storage konto statisk webbplats. Det här alternativet är mer anpassningsbart och gör att du kan anpassa distributionen efter dina behov.

Snabbdistribution med Azure Container Apps

  1. Välj Deploy to Azure-knappen för att distribuera OSDU Admin UI med hjälp av Azure Container Apps.

    Distribuera till Azure

  2. Fyll i de obligatoriska parametrarna i Azure Portal. Mer information om parametrarna finns i avsnittet parametrar.

    Skärmbild som visar distributionsformuläret för Azure Portal.

  3. Välj Granska + skapa och sedan Skapa för att distribuera OSDU-administratörsgränssnittet.

  4. Kontrollera avsnittet Outputs för URL:en för det distribuerade användargränssnittet för OSDU-administratör.

  5. Konfigurera ADME CORS-principen och omdirigerings-URI:n för appregistrerings-SPA med webbplatsens URL.

  6. Öppna URL:en i en webbläsare och kontrollera att den fungerar korrekt och ansluten till rätt Azure Data Manager för Energy-instans.

Parametrar

Parameter Beskrivning Obligatoriskt
Prenumeration Azure-prenumerationen som OSDU Admin UI ska distribueras till. Ja
Resursgrupp Den resursgrupp som osDU-administratörsgränssnittet ska distribueras till. Ja
Region Den Azure-region som osDU-administratörsgränssnittet ska distribueras till. Ja
Name Namnet på OSDU Admin UI-instansen. Andra resurser använder det här namnet som basnamn och lägger till en tjänstförkortning. Ja
Containerbild Containeravbildningen som ska användas för OSDU-administratörsgränssnittet. Se OSDU Forum Admin UI Container Registry för tillgängliga avbildningar. Ja
OSDU-slutpunkt Slutpunkten för att ansluta till Azure Data Manager for Energy eller OSDU-instansen. Använd adme-basslutpunkten. Driftsättningen normaliserar den för containerns körtidsmiljö. Ja
Datapartition ID Kommaseparerad lista över datapartitions-ID:n för Azure Data Manager för energi eller OSDU-instansen som ska anslutas till. Ja
Domännamn för berättiganden Domännamnet som ska användas för rättighetstjänsten. Behåll .dataservices.energy för alla ADME-distributioner, uppdatera endast om du använder en annan OSDU-implementering. Ja
Klient-ID Klient-ID:t för appregistreringen som ska användas för OSDU-administratörsgränssnittet. Ja
Omfattning Omfånget för den appregistrering som används av Azure Data Manager för Energy eller OSDU. Om klient-ID:t är ADME-appregistreringen kan du lämna det här standardvärdet. Ja
Anslutningsslutpunkt Valfritt: OSDU Admin UI Connector API-slutpunkten som ska användas för administratörsgränssnittet. Nej
GCZ-slutpunkt Valfri: Bas-GCZ-slutpunkten slutar med /gcz/. Exempel: https://contoso.energy.azure.com/api/gcz/. GCZ måste redan ha driftsatts separat. Nej
Aktivera privat nätverk Valfritt: Aktivera åtkomst till det privata nätverket till OSDU-administratörsgränssnittet. Nej
Aktivera loggning Valfritt: Aktivera loggning för OSDU-administratörsgränssnittet. Nej

Anpassad driftsättning med Azure Storage-kontots statiska webbplats

Förbereda datorn

  • Installera Visual Studio Code med Dev Containers. Du kan distribuera OSDU-administratörsgränssnittet från din lokala dator med hjälp av antingen Linux eller Podsystém Windowsu pre Linux (WSL). Vi rekommenderar att du använder en Dev Container för att minska verktygs- och miljökonflikter.

Miljöinställningar

  1. Använd en Dev Container i Visual Studio Code för att minska konflikterna med lokalt installerade verktyg.

  2. Välj Remote - Containers | Open för att öppna en utvecklingscontainer och klona OSDU Admin UI-lagringsplatsen.

    Öppna i Fjärr-Containers

  3. Acceptera kloningsprompten.

    Skärmbild som visar kloning av lagringsplatsen.

  4. När du uppmanas att ange en mall för containerkonfiguration:

    1. Välj Ubuntu.
    2. Acceptera standardversionen.
    3. Lägg inte till några extra funktioner.
  5. Efter några minuter körs devcontainern.

    Skärmbild som visar hur devcontainer körs.

  6. Öppna terminalfönstret.

    Skärmbild som visar öppningsterminalen.

  7. Installera Angular CLI, Azure CLI, npm och 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
    

    Skärmbild som visar installationen.

  8. Logga in på Azure CLI genom att köra kommandot i terminalen.

    az login
    
  9. Ange dina autentiseringsuppgifter och kontrollera att inloggningen lyckas.

  10. Kontrollera att du använder rätt prenumeration.

    az account show
    
  11. Ändra prenumerationen om det behövs.

    az account set --subscription <subscription-id>
    

Konfigurera miljövariabler

  1. Ange nödvändiga miljövariabler i terminalen.

    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"
    

Distribuera lagringskonto

  1. Skapa resursgruppen. Hoppa över det här steget om resursgruppen redan finns.

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Skapa lagringskontot.

    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. Konfigurera den statiska webbplatsen.

    az storage blob service-properties update \
        --account-name $WEBSITE_NAME \
        --static-website \
        --404-document index.html \
        --index-document index.html
    
  4. Ange $web containerbehörigheter för att tillåta anonym åtkomst.

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

Konfigurera webbplatsen

  1. Gå till mappen OSDUApp.

    cd OSDUApp/
    
  2. Kopiera Azure-filen routing.ts.

    cp providers/azure/routing.ts src/app/routing.ts
    
  3. Installera beroenden.

    npm install
    
  4. Ändra parametrarna i konfigurationsfilen som finns på /src/config/config.json.

Ersätt miljövariabelvärdena med värden för distributionen.

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