Implantar a interface do usuário de administração OSDU sobre o Azure Data Manager for Energy

Este guia mostra como implantar a interface do usuário de administração OSDU sobre sua instância do Azure Data Manager for Energy (ADME).

A UI de Administração OSDU permite aos administradores da plataforma gerir a partição de dados Azure Data Manager for Energy a que esta se liga. As tarefas de gestão incluem direitos (gestão de utilizadores e grupos), etiquetas legais, esquemas, dados de referência e visualização e visualização de objetos num mapa.

Pré-requisitos

Opções de implementação

Há duas opções de implantação para a interface do usuário de administração do OSDU:

  1. Implementação rápida com o Azure Container Apps: Implementação com um único clique com o Azure Container Apps. Esta opção é a forma mais rápida de implementar a UI de Administração do OSDU e suporta tanto implantações públicas como privadas.
  2. Implementação personalizada usando o Armazenamento do Azure Account Static Website: Construa e implemente a interface administrativa do OSDU usando o Armazenamento do Azure Account Static Website. Esta opção é mais personalizável e permite-lhe adaptar a implementação às suas necessidades.

Implantação rápida com Aplicativos de Contêiner do Azure

  1. Selecione o Deploy to Azure botão para implantar a interface do usuário de administração OSDU usando os Aplicativos de Contêiner do Azure.

    Implementar no Azure

  2. Preencha os parâmetros necessários no portal do Azure. Para mais informações sobre os parâmetros, consulte a secção de parâmetros.

    Captura de tela que mostra o formulário de implantação do portal do Azure.

  3. Selecione Rever + criar e, em seguida, Criar para implementar a IU de administração OSDU.

  4. Verifique na Outputs seção a URL da interface do usuário de administração do OSDU implantada.

  5. Configure a política ADME CORS e URI de redirecionamento do App Registration SPA utilizando o URL do website.

  6. Abra a URL em um navegador e valide se ela está funcionando corretamente e conectada à instância correta do Azure Data Manager for Energy.

Parâmetros

Parâmetro Descrição Obrigatório
Subscrição A assinatura do Azure para implantar a Interface de Administração do OSDU. Sim
Grupo de recursos O grupo de recursos no qual implantar a interface do usuário de administração do OSDU. Sim
Região A região do Azure na qual implantar a interface do usuário de administração do OSDU. Sim
Nome O nome da instância da interface do usuário de administração do OSDU. Outros recursos utilizam este nome como nome base e acrescentam uma abreviatura de serviço. Sim
Imagem de Contêiner A imagem do contêiner a ser usada para a interface do usuário de administração do OSDU. Consulte OSDU Forum Admin UI Container Registry para obter as imagens disponíveis. Sim
OSDU Endpoint O ponto de extremidade da instância do Azure Data Manager for Energy ou OSDU à qual se conectar. Usa o endpoint base do ADME. A implementação normaliza-o para o tempo de execução do contentor. Sim
IDs de partição de dados Lista separada por vírgulas dos IDs das partições de dados do Azure Data Manager for Energy ou da instância OSDU à qual se pretende ligar. Sim
Entitlements Nome de Domínio O nome de domínio a ser usado para o serviço de direitos. Mantenha .dataservices.energy para qualquer implantação do ADME, atualize apenas se estiver usando outra implementação OSDU. Sim
ID de Cliente O ID do cliente do Registo da Aplicação a ser utilizada para a interface de administração do utilizador do OSDU. Sim
Âmbito O escopo do Registro de Aplicativo usado pelo Azure Data Manager for Energy ou OSDU. Se a ID do Cliente for o Registro do Aplicativo ADME, você poderá deixar esse padrão. Sim
Ponto de extremidade do conector Opcional: O ponto de extremidade da API Connector do OSDU Admin UI a ser usado para a interface do usuário Admin. Não
GCZ Endpoint Opcional: Endpoint de base do GCZ que termina em /gcz/. Exemplo: https://contoso.energy.azure.com/api/gcz/. O GCZ deve já estar implantado separadamente. Não
Ativar rede privada Opcional: Habilite o acesso à rede privada para a interface do usuário de administração do OSDU. Não
Ativar logging Opcional: Habilite o registo de logs para a interface de administração do OSDU. Não

Implantação personalizada usando o site estático da conta de armazenamento do Azure

Prepare o seu computador

  • Instale Visual Studio Code com Dev Containers. Pode implementar a interface de administração OSDU a partir do seu computador local usando Linux ou Subsistema Windows para Linux (WSL). Recomendamos o uso de um Contentor de Desenvolvimento para reduzir conflitos de ferramentas e ambiente.

Configuração do ambiente

  1. Use um Contentor de Desenvolvimento no Visual Studio Code para reduzir conflitos com ferramentas instaladas localmente.

  2. Selecione Remote - Containers | Open para abrir um contêiner de desenvolvimento e clonar o repositório OSDU Admin UI.

    Abrir no controle remoto - Contêineres

  3. Aceite o prompt de clonagem.

    Captura de tela que mostra a clonagem do repositório.

  4. Quando lhe for solicitado um modelo de configuração de um contentor:

    1. Selecione Ubuntu.
    2. Aceite a versão padrão.
    3. Não adicione recursos extras.
  5. Após alguns minutos, o devcontainer está em execução.

    Captura de tela que mostra a execução do devcontainer.

  6. Abra o terminal.

    Captura de ecrã que mostra a abertura do terminal.

  7. Instale a CLI Angular, a CLI do Azure, o npm e o Gerenciador de Versão do Nó (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
    

    Captura de tela que mostra a instalação.

  8. Inicie sessão no CLI do Azure executando o comando no terminal.

    az login
    
  9. Introduza as suas credenciais e verifique se o início de sessão foi bem-sucedido.

  10. Valide se está a utilizar a subscrição correta.

    az account show
    
  11. Se necessário, altera a subscrição.

    az account set --subscription <subscription-id>
    

Configurar variáveis de ambiente

  1. Introduza as variáveis de ambiente necessárias no terminal.

    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"
    

Implantar conta de armazenamento

  1. Crie o grupo de recursos. Ignore este passo se o grupo de recursos já existir.

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Crie a conta de armazenamento.

    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. Configure o site estático.

    az storage blob service-properties update \
        --account-name $WEBSITE_NAME \
        --static-website \
        --404-document index.html \
        --index-document index.html
    
  4. Defina $web permissões de contentores para permitir acesso anónimo.

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

Configurar o site

  1. Navegue para a pasta OSDUApp.

    cd OSDUApp/
    
  2. Copie o ficheiro Azure routing.ts.

    cp providers/azure/routing.ts src/app/routing.ts
    
  3. Instale as dependências.

    npm install
    
  4. Modifique os parâmetros no arquivo de configuração localizado em /src/config/config.json.

Substitua os valores das variáveis de ambiente por valores para a sua implementação.

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