Implantar a interface administrativa do OSDU no Gerenciador de Dados do Azure para o Setor de Energia

Este guia mostra como implantar a interface do usuário administrador do OSDU na instância do ADME (Gerenciador de Dados do Azure para Energia).

A interface do usuário do administrador do OSDU permite que os administradores da plataforma gerenciem a partição de dados do Azure Data Manager for Energy à qual ele se conecta. As tarefas de gerenciamento incluem direitos (gerenciamento de usuário e grupo), marcas legais, esquemas, dados de referência e exibição e visualização de objetos em um mapa.

Pré-requisitos

Opções de implantação

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

  1. Implantação rápida usando Aplicativos de Contêiner do Azure: uma implantação de um clique usando Aplicativos de Contêiner do Azure. Essa opção é a maneira mais rápida de implantar a interface do usuário do administrador do OSDU e dá suporte a implantações públicas e privadas.
  2. Implantação personalizada usando o Site Estático da Conta de Armazenamento do Azure: Compile e implante a interface administrativa do OSDU usando o Site Estático da Conta de Armazenamento do Azure. Essa opção é mais personalizável e permite que você adapte a implantação aos seus requisitos.

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

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

    Implantar no Azure

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

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

  3. Selecione Examinar + criar e, em seguida, Criar para implantar a interface do usuário do administrador do OSDU.

  4. Verifique a seção Outputs para obter a URL da interface do usuário de administrador do OSDU implantada.

  5. Configure a política ADME CORS e o URI de redirecionamento do SPA de Registro de Aplicativo com a URL do site.

  6. Abra a URL em um navegador e valide se ela está funcionando corretamente e conectada à instância correta do Gerenciador de Dados do Azure para Energia.

Parâmetros

Parâmetro Descrição Obrigatório
Assinatura A assinatura do Azure na qual será implantada a interface de administração do OSDU. Sim
Grupo de recursos O grupo de recursos no qual implantar a interface do usuário do administrador do OSDU. Sim
Região A região do Azure na qual implantar a interface de administração do OSDU. Sim
Nome O nome da instância da UI do administrador do OSDU. Outros recursos usam esse nome como o nome base e acrescentam uma abreviação de serviço. Sim
Imagem do contêiner A imagem de contêiner a ser usada para a UI de administração do OSDU. Consulte o Registro de Contêiner da Interface do Usuário Administrativo do Fórum OSDU para ver imagens disponíveis. Sim
Ponto de Extremidade de OSDU O ponto de extremidade da instância do Gerenciador de Dados do Azure para Energia ou do OSDU à qual se conectar. Use o ponto de extremidade ADME base. A implantação o normaliza para o ambiente de execução do contêiner. Sim
IDs da Partição de Dados Lista de IDs de partição de dados, separada por vírgulas, do Azure Data Manager for Energy ou da instância do OSDU à qual se conectar. Sim
Nome de domínio de direitos O nome de domínio a ser usado para o serviço de autorizações. Mantenha .dataservices.energy para qualquer implantação do ADME, atualize somente se você estiver usando outra implementação de OSDU. Sim
ID do Cliente O ID do cliente do registro do aplicativo a ser usado na interface administrativa do OSDU. Sim
Scope O escopo do Registro de Aplicativo utilizado pelo Azure Data Manager for Energy ou OSDU. Se a ID do cliente for o Registro de Aplicativo do ADME, você poderá deixar esse padrão. Sim
Ponto de extremidade do conector Opcional: O ponto de extremidade da API do conector da interface administrativa do OSDU a ser usado para a interface administrativa. Não
Ponto de Extremidade de GCZ Opcional: ponto de extremidade GCZ base terminando com /gcz/. Exemplo: https://contoso.energy.azure.com/api/gcz/. O GCZ já deve estar implantado separadamente. Não
Habilitar Rede Privada Opcional: habilite o acesso à rede privada para a interface do usuário do administrador do OSDU. Não
Habilitar Registro em Log Opcional: habilite o registro de log para a interface do usuário administrador do OSDU. Não

Implantação personalizada usando o Site Estático da Conta de Armazenamento do Microsoft Azure

Preparar o computador

  • Instale o Visual Studio Code com Contêineres de Desenvolvimento. Você pode implantar a interface do usuário do administrador do OSDU em seu computador local usando Linux ou Subsistema do Windows para Linux (WSL). É recomendável usar um Contêiner de Desenvolvimento para reduzir os conflitos de ferramentas e de ambiente.

Configuração do ambiente

  1. Use um contêiner de desenvolvimento em 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 de interface do usuário do Administrador do OSDU.

    Abrir no Remoto – Contêineres

  3. Aceite o prompt de clonagem.

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

  4. Quando for solicitado um modelo de configuração de contêiner:

    1. Selecione Ubuntu.
    2. Aceite o valor padrão.
    3. Não adicione nenhum recurso extra.
  5. Após alguns minutos, o devcontainer estará em execução.

    Captura de tela que mostra a execução do contêiner de desenvolvimento.

  6. Abra o terminal.

    Captura de tela que mostra a abertura do terminal.

  7. Instale a CLI do Angular, a CLI do Azure, o npm e o NVM (Node Version Manager).

    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. Faça logon na CLI do Azure executando o comando no terminal.

    az login
    
  9. Insira suas credenciais e verifique se a entrada foi bem-sucedida.

  10. Valide se você está usando a assinatura correta.

    az account show
    
  11. Se necessário, altere 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 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 esta etapa caso o grupo de recursos já exista.

    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 contêiner para permitir acesso anônimo.

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

Configuração do site

  1. Navegue até a pasta OSDUApp.

    cd OSDUApp/
    
  2. Copie o arquivo do 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 da variável de ambiente por valores para sua implantaçã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