다음을 통해 공유


Azure Data Manager for Energy 위에 OSDU 관리 UI 배포

이 가이드에서는 ADME(Azure Data Manager for Energy) 인스턴스 위에 OSDU 관리 UI를 배포하는 방법을 보여 줍니다.

OSDU 관리 UI를 사용하면 플랫폼 관리자가 연결된 Azure Data Manager for Energy 데이터 파티션을 관리할 수 있습니다. 관리 작업에는 권한 부여(사용자 및 그룹 관리), 법적 태그, 스키마, 참조 데이터, 보기 및 맵의 개체 시각화가 포함됩니다.

필수 조건

배포 옵션

OSDU 관리 UI에는 두 가지 배포 옵션이 있습니다.

  1. Azure Container Apps를 사용하여 빠른 배포: Azure Container Apps를 사용하여 원클릭으로 배포합니다. 이 배포는 OSDU 관리 UI를 배포하는 가장 쉽고 빠른 방법입니다. 퍼블릭 및 프라이빗 배포를 모두 지원합니다.

  2. Azure Storage 계정 정적 웹 사이트를 사용한 사용자 지정 배포: Azure Storage 계정을 사용하여 OSDU 관리자 UI를 빌드하고 배포합니다. 이 배포 옵션은 사용자 지정할 수 있으며 필요에 따라 배포를 구성할 수 있습니다.

Azure Container Apps를 사용하여 빠른 배포

  1. Deploy to Azure Azure Container Apps를 사용하여 OSDU 관리 UI를 배포하는 단추를 선택합니다.

    Azure에 배포

  2. Azure Portal에서 필요한 매개 변수를 입력합니다. 매개 변수에 대한 자세한 내용은 매개 변수 섹션참조하세요.

    Azure Portal 배포 양식을 보여 주는 스크린샷.

  3. 검토 + 만들기를 선택한 다음 만들기를 선택하여 OSDU 관리 UI를 배포합니다.

  4. Outputs 배포된 OSDU 관리자 UI의 URL에 대한 섹션을 확인합니다.

  5. 웹 사이트 URL을 사용하여 ADME CORS 정책앱 등록 SPA 리디렉션 URI 를 구성합니다.

  6. 브라우저에서 URL을 열고 올바르게 작동하고 올바른 Azure Data Manager for Energy 인스턴스에 연결되어 있는지 확인합니다.

매개 변수

매개 변수 설명 필수
구독 OSDU 관리 UI를 배포할 Azure 구독입니다.
Resource group OSDU 관리자 UI를 배포할 리소스 그룹입니다.
지역 OSDU 관리 UI를 배포할 Azure 지역입니다.
속성 OSDU 관리자 UI 인스턴스의 이름입니다. 다른 리소스는 이 이름을 기본 이름으로 사용하고 서비스 약어를 추가합니다.
컨테이너 이미지 OSDU 관리자 UI에 사용할 컨테이너 이미지입니다. 사용 가능한 이미지는 OSDU 포럼 관리자 UI 컨테이너 레지스트리를 참조하세요.
Osdu 엔드포인트 연결할 Azure Data Manager for Energy 또는 OSDU 인스턴스의 엔드포인트입니다.
데이터 파티션 ID 연결할 Azure Data Manager for Energy 또는 OSDU 인스턴스의 데이터 파티션 ID입니다.
권한 도메인 이름 권한 서비스에 사용할 도메인 이름입니다. 다른 OSDU 구현을 사용하는 경우에만 업데이트하여 ADME 배포를 유지 .dataservices.energy 합니다.
클라이언트 ID OSDU 관리자 UI에 사용할 앱 등록의 클라이언트 ID입니다.
범위 에너지 또는 OSDU용 Azure Data Manager에서 사용하는 앱 등록의 범위입니다. 클라이언트 ID가 ADME 앱 등록인 경우 이 기본값을 그대로 둘 수 있습니다.
커넥터 엔드포인트 선택 사항: 관리 UI에 사용할 OSDU 관리 UI 커넥터 API 엔드포인트입니다. 아니요
프라이빗 네트워크 사용 선택 사항: OSDU 관리자 UI에 대한 프라이빗 네트워크 액세스를 사용하도록 설정합니다. 아니요
로깅 사용 선택 사항: OSDU 관리자 UI에 대한 로깅을 사용하도록 설정합니다. 아니요

Azure Storage 계정 정적 웹 사이트를 사용한 사용자 지정 배포

컴퓨터 준비

  • 개발자 컨테이너가 포함된 Visual Studio Code를 설치합니다. Linux 또는 WSL(Linux용 Windows 하위 시스템)을 사용하여 로컬 시스템에서 OSDU 관리 UI를 배포할 수 있습니다. 도구 버전, 환경 등의 잠재적 충돌을 제거하려면 Dev 컨테이너를 사용하는 것이 좋습니다.

환경 설정

  1. Visual Studio Code의 Dev 컨테이너를 사용하여 OSDU 관리 UI를 배포하면 로컬 컴퓨터에서 충돌을 제거할 수 있습니다.

  2. 개발 컨테이너를 열고 OSDU 관리 UI 리포지토리를 복제하려면 Remote - Containers | Open을 선택합니다.

    원격으로 열기 - 컨테이너

  3. 복제 프롬프트를 수락합니다.

    리포지토리 복제를 보여 주는 스크린샷.

  4. 컨테이너 구성 템플릿을 묻는 메시지가 표시되는 경우.

    1. Ubuntu를 선택합니다.
    2. 기본 버전을 수락합니다.
    3. 추가 기능을 추가하지 마세요.
  5. 몇 분 후에 devcontainer가 실행됩니다.

    devcontainer 실행을 보여 주는 스크린샷.

  6. 터미널을 엽니다.

    터미널 열기를 보여 주는 스크린샷.

  7. Angular CLI, Azure CLI, npmNVM(노드 버전 관리자)을 설치합니다.

    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 && \
    apt-get install jq -y && \
    curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
    

    설치를 보여 주는 스크린샷.

  8. 터미널에서 명령을 실행하여 Azure CLI에 로그인합니다. 로그인 화면으로 이동됩니다.

    az login
    
  9. 로그인 화면으로 이동됩니다. 자격 증명을 입력하고 성공하면 성공 메시지가 표시됩니다.

    성공적인 로그인을 보여 주는 스크린샷.

  10. 올바른 구독을 사용하고 있는지 유효성을 검사합니다.

    az account show
    
  11. 필요한 경우 이 코드를 사용하여 구독을 변경합니다.

    az account set --subscription <subscription-id>
    

환경 변수 구성

  1. 터미널에 필요한 환경 변수를 입력합니다.

    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"
    

스토리지 계정 배포

  1. 리소스 그룹을 만듭니다. 리소스 그룹이 이미 존재하는 경우 이 단계를 건너뛰세요.

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  2. 스토리지 계정을 생성합니다.

    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. 정적 웹 사이트를 구성합니다.

    az storage blob service-properties update \
        --account-name $WEBSITE_NAME \
        --static-website \
        --404-document index.html \
        --index-document index.html
    
  4. 익명 액세스를 허용하도록 $web 컨테이너 권한을 설정합니다.

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

웹앱 빌드 및 배포

  1. OSDUApp 폴더로 이동합니다.

    cd OSDUApp/
    
  2. Azure routing.ts 파일을 복사합니다.

    cp providers/azure/routing.ts src/app/routing.ts
    
  3. 종속성을 설치합니다.

    npm install
    
  4. /src/config/config.json에 있는 구성 파일에서 매개 변수를 수정합니다.

환경 변수의 값을 값으로 바꿉니다.

export OSDU_ENDPOINT="" # Endpoint of the Azure Data Manager for Energy or OSDU instance to connect to
export DATA_PARTITION_ID="" # ADME Data Partition ID (i.e. opendes)
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, i.e. "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


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 appinnsights "$APPINSIGHTS_INSTRUMENTATIONKEY" \
--arg connectorapi "$OSDU_CONNECTOR_API_ENDPOINT" \
'.settings.appInsights.instrumentationKey = $appinnsights |
    .settings.data_partition = $data | 
    .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.secrets_endpoint = $endpoint | 
    .settings.api_endpoints.wddms_endpoint = $endpoint' \
src/config/config.json > src/config/temp.json
mv src/config/temp.json src/config/config.json