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 interface do usuário de administração do OSDU permite que os administradores de plataforma gerenciem a partição de dados do Azure Data Manager for Energy à qual você a conecta. As tarefas de gerenciamento incluem direitos (gerenciamento de usuários e grupos), tags legais, esquemas, dados de referência, visualização e visualização de objetos em um mapa.

Pré-requisitos

  • Instale o Visual Studio Code com contêineres de desenvolvimento. É possível implantar a interface do usuário de administração do OSDU a partir do seu computador local usando Linux ou Windows Subsystem for Linux (WSL), recomendamos o uso de um Dev Container para eliminar possíveis conflitos de versões de ferramentas, ambientes, etc.

  • Uma instância do Azure Data Manager for Energy.

  • Um Registo da Aplicação Microsoft Entra ID.
    Este Registo de Aplicação pode ser o mesmo que o utilizado para o Azure Data Manager for Energy por exemplo.

    Importante

    As seguintes permissões de API são necessárias no Registro do aplicativo para que a interface do usuário do administrador funcione corretamente.

    Após o primeiro login na interface do usuário do administrador, ele solicitará as permissões necessárias. Você também pode conceder as permissões necessárias com antecedência, consulte a documentação de permissão da API de registro de aplicativo.

Configuração do ambiente

  1. Use o contêiner de desenvolvimento no Visual Studio Code para implantar a interface do usuário de administração OSDU para eliminar conflitos de sua máquina local.

  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 solicitado para um modelo de configuração de contêiner.

    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 tela que mostra o terminal de abertura.

  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 14.17.3 && \
    export NG_CLI_ANALYTICS=false && \ 
    npm install -g @angular/cli@13.3.9 && \
    curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
    

    Captura de tela que mostra a instalação.

  8. Faça logon na CLI do Azure executando o comando no terminal. Leva-o ao ecrã de início de sessão.

    az login
    
  9. Leva-o ao ecrã de início de sessão. Insira suas credenciais e, após o sucesso, você verá uma mensagem de sucesso.

    Captura de tela que mostra o login bem-sucedido.

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

    az account show
    
  11. Se necessário, use este código para alterar a assinatura.

    az account set --subscription <subscription-id>
    

Configurar variáveis de ambiente

  1. Insira as variáveis de ambiente necessárias no terminal.
     export ADMINUI_CLIENT_ID="" ## App Registration to be used by OSDU Admin UI, usually the client ID used to provision ADME
     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"
    

Implantar conta de armazenamento

  1. Criar grupo de recursos. Ignore esta etapa se o grupo de recursos já existir.

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Crie uma 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 contêiner para permitir acesso anônimo.

    az storage container set-permission \
        --name '$web' \
        --account-name $WEBSITE_NAME \
        --public-access blob
    
  5. Adicione o URI de redirecionamento ao Registro do aplicativo.

    export REDIRECT_URI=$(az storage account show --resource-group $RESOURCE_GROUP --name $WEBSITE_NAME --query "primaryEndpoints.web") && \
    echo "Redirect URL: $REDIRECT_URI" && \
    echo "Add the redirect URI above to the following App Registration's Single-page Application (SPA) section: https://ms.portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/~/Authentication/appId/$ADMINUI_CLIENT_ID/isMSAApp~/false"
    

    Captura de ecrã a mostrar URIs de redirecionamento de um Registo de Aplicação.

Criar e implementar a aplicação Web

  1. Navegue para a pasta OSDUApp.

    cd OSDUApp/
    
  2. Instale as dependências.

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

    {
        "mapboxKey": "key", // This is optional for the access token from Mapbox.com and used to visualize data on the map feature.
        ...
        "data_partition": "<adme_data_partition>", // ADME Data Partition ID (i.e. opendes)
      "idp": {
         ...
         "tenant_id": "<tenant_id>", // Entra ID tenant ID
         "client_id": "<client_id>", // App Registration ID to use for the admin UI, usually the same as the ADME App Registration ID, i.e. "6ee7e0d6-0641-4b29-a283-541c5d00655a"
         "redirect_uri": "<redirect_uri>", // This is the website URL ($REDIRECT_URI), i.e. "https://contoso.z1.web.core.windows.net"
         "scope": "<client_id>/.default" // Scope of the ADME instance, i.e. "6ee7e0d6-0641-4b29-a283-541c5d00655a/.default"
      },
      "api_endpoints": { // Just replace contoso.energy.azure.com with your ADME_URL after removing https or wwww in all the API endpoints below.
         "entitlement_endpoint": "https://contoso.energy.azure.com/api/", 
         "storage_endpoint": "https://contoso.energy.azure.com/api/",
         "search_endpoint": "https://contoso.energy.azure.com/api/",
         "legal_endpoint": "https://contoso.energy.azure.com/api/",
         "schema_endpoint": "https://contoso.energy.azure.com/api/",
         "osdu_connector_api_endpoint":"osdu_connector", // Optional. API endpoint of the OSDU Connector API*
         "file_endpoint": "https://contoso.energy.azure.com/api/",
         "graphAPI_endpoint": "https://graph.microsoft.com/v1.0/",
         "workflow_endpoint": "https://contoso.energy.azure.com/api/"
      }
      ...
    }
    

    Nota

    OSDU Connector API é construída como uma interface entre consumidores e APIs OSDU envolvendo algumas chamadas e objetos de cadeia de API. Atualmente, ele gerencia todas as operações e ações em objetos de projeto e cenário.

  4. Crie a interface do usuário da Web.

    ng build
    
  5. Carregue a compilação para a Conta de Armazenamento.

    az storage blob upload-batch \
        --account-name $WEBSITE_NAME \
        --source ./dist/OSDUApp \
        --destination '$web' \
        --overwrite
    
  6. Buscar o URL do site.

    echo $REDIRECT_URI
    
  7. Abra a URL do site no navegador e valide se ela está funcionando corretamente e conectada à instância correta do Azure Data Manager for Energy.

Próximos passos

Depois de ter uma interface do usuário de administração bem-sucedida funcionando, você pode:

Você também pode ingerir dados em sua instância do Azure Data Manager for Energy:

Referências

Para obter informações sobre a interface do usuário de administração do OSDU, consulte OSDU GitLab.
Para outros métodos de implantação (Terraform ou pipeline de CI/CD do Azure DevOps), consulte OSDU Admin UI DevOps.