Megosztás a következőn keresztül:


Térinformatikai használati zóna üzembe helyezése

Az OSDU térinformatikai fogyasztási zónája (GCZ) egy olyan szolgáltatás, amely lehetővé teszi a térinformatikai adatok fokozott kezelését és használatát. A GCZ leegyszerűsíti a helyalapú információk kezelését. Elvonta a technikai összetettségeket, lehetővé téve a szoftveralkalmazások számára a térinformatikai adatok elérését anélkül, hogy bonyolult részletekkel kellene foglalkozniuk. A használatra kész térképszolgáltatások biztosításával a GCZ megkönnyíti az OSDU-kompatibilis alkalmazásokkal való zökkenőmentes integrációt.

Ez az útmutató bemutatja, hogyan helyezheti üzembe az Azure Data Manager for Energy (ADME) szolgáltatással integrált térinformatikai fogyasztási zónát (GCZ).

Alkalmazásregisztráció létrehozása a Microsoft Entra-azonosítóban

A GCZ telepítéséhez létre kell hoznia egy alkalmazásregisztrációt a Microsoft Entra ID-ban. Az alkalmazásregisztrációval hitelesíthetők a GCZ API-k az Azure Data Manager for Energy szolgáltatással, hogy létrehozhassák a térinformatikai adatok gyorsítótárát.

  1. Az alkalmazásregisztráció létrehozásával kapcsolatos útmutatásért tekintse meg az alkalmazásregisztráció létrehozása a Microsoft Entra-azonosítóban című témakört.

  2. Adjon engedélyt az alkalmazásregisztrációnak a vonatkozó adatok olvasására az Azure Data Manager for Energy szolgáltatásban. További útmutatásért tekintse meg a Tagok hozzáadása OSDU-csoportokhoz című témakört.

Beállítás

A GCZ szolgáltatásnak két fő üzembehelyezési lehetősége van:

  • Azure Kubernetes Service (AKS): A GCZ szolgáltatás üzembe helyezése egy AKS-fürtön. Ez az üzembe helyezési lehetőség éles környezetekhez ajánlott. Több erőfeszítést igényel a beállítás, a konfigurálás és a karbantartás.
  • Windows: A GCZ szolgáltatás üzembe helyezése Windows rendszeren. Ez az üzembe helyezési lehetőség fejlesztési és tesztelési környezetekhez ajánlott.

Térinformatikai fogyasztási zóna (GCZ) üzembe helyezése az Azure Kubernetes Service-ben (AKS)

Megtudhatja, hogyan helyezhet üzembe térinformatikai fogyasztási zónát (GCZ) az Azure Kubernetes Service-ben (AKS).

Előfeltételek

Térinformatikai fogyasztási zóna (GCZ) HELM-diagramjának üzembe helyezése

  1. Klónozza a GCZ-adattárat a helyi környezetbe:

    git clone https://community.opengroup.org/osdu/platform/consumption/geospatial.git
    
  2. Módosítsa a könyvtárat a geospatial mappára:

    cd geospatial/devops/azure/charts/geospatial
    
  3. Változók definiálása az üzembe helyezéshez:

    # Define the variables for Azure Data Manager for Energy
    AZURE_DNS_NAME="<instanceName>.energy.azure.com"  # Example: demo.energy.azure.com
    DATA_PARTITION_ID="<dataPartitionId>" # Data partition ID. Example: opendes
    AZURE_TENANT_ID="<tenantId>" # Entra ID tenant ID. Example: aaaabbbb-0000-cccc-1111-dddd2222eeee
    AZURE_CLIENT_ID="<clientId>" # App Registration client ID. Example: 00001111-aaaa-2222-bbbb-3333cccc4444
    AZURE_CLIENT_SECRET="<clientSecret>" # App Registration client secret. Example: Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2
    SCOPE="<scope>" # Scope of the App Registration. Example: 00001111-aaaa-2222-bbbb-3333cccc4444/.default
    CALLBACK_URL="http://localhost:8080" # Redirect URI of the ADME App Registration (from scope) ie: http://localhost:8080
    PRIVATE_NETWORK="true" # Set to false if you want to expose the service publicly using a LoadBalancer. You can still expose the service using an Ingress Controller or Azure API Management at a later stage.
    
    # Define the variables for AKS
    AKS_NAME="<aksName>" # Name of the AKS cluster. Example: gcz-aks-cluster.
    RESOURCE_GROUP="<resourceGroupName>" # Name of the resource group. Example: gcz-rg.
    NAMESPACE="ignite" # Name of the AKS namespace you want to deploy to. We recommend to leave it default.
    GCZ_IGNITE_SERVICE="ignite-service" # Name of the ignite service. We recommend to leave it default.
    GCZ_IGNITE_NAMESPACE=$NAMESPACE
    CHART=osdu-gcz-service
    CHART_VERSION=1.27.0
    VERSION=0.27.0
    
  4. A HELM-diagram létrehozása:

    cat > osdu_gcz_custom_values.yaml << EOF
    # This file contains the essential configs for the gcz on azure helm chart
    
    ################################################################################
    # Specify the values for each service.
    #
    global:
        ignite:
            namespace: $NAMESPACE
            name: ignite
            image:
                name: gridgain/community
                tag: 8.8.43
            configuration:
                gcz_ignite_namespace: "$GCZ_IGNITE_NAMESPACE"
                gcz_ignite_service: "$GCZ_IGNITE_SERVICE"
        provider:
            namespace: $NAMESPACE
            entitlementsGroupsURL: "https://$AZURE_DNS_NAME/api/entitlements/v2/groups"
            image:
                repository: community.opengroup.org:5555
                name: osdu/platform/consumption/geospatial/geospatial-provider-master
                tag: latest
            service:
                type: LoadBalancer
            configuration:
                privateNetwork: "$PRIVATE_NETWORK"
        transformer:
            namespace: $NAMESPACE
            image:
                repository: community.opengroup.org:5555
                name: osdu/platform/consumption/geospatial/geospatial-transformer-master
                tag: latest
            service:
                type: LoadBalancer
            configuration:
                privateNetwork: "$PRIVATE_NETWORK"
                datapartitionid: $DATA_PARTITION_ID
                clientId: $AZURE_CLIENT_ID
                tenantId: $AZURE_TENANT_ID
                callbackURL: $CALLBACK_URL
                scope: $SCOPE
                searchQueryURL: "https://$AZURE_DNS_NAME/api/search/v2/query"
                searchCursorURL: "https://$AZURE_DNS_NAME/api/search/v2/query_with_cursor"
                schemaURL: "https://$AZURE_DNS_NAME/api/schema-service/v1/schema"
                entitlementsURL: "https://$AZURE_DNS_NAME/api/entitlements/v2"
                fileRetrievalURL: "https://$AZURE_DNS_NAME/api/dataset/v1/retrievalInstructions"
                crsconvertorURL: "https://$AZURE_DNS_NAME/api/crs/converter/v3/convertTrajectory"
                storageURL: "https://$AZURE_DNS_NAME/api/storage/v2/records"
                clientSecret: $(echo "$AZURE_CLIENT_SECRET" | base64)
                gcz_ignite_namespace: "$GCZ_IGNITE_NAMESPACE"
                gcz_ignite_service: "$GCZ_IGNITE_SERVICE"
    EOF
    
  5. Módosítsa a LoadBalancer szolgáltatás típusát az provider and transformer services konfigurációs fájljaira.

    cat > ../provider/templates/service.yaml << EOF
    apiVersion: v1
    kind: Service
    metadata:
        name: gcz-provider
        namespace: {{ $.Values.global.provider.namespace }}
        annotations:
            service.beta.kubernetes.io/azure-load-balancer-internal: "{{ $.Values.global.provider.configuration.privateNetwork }}"
    spec:
        selector:
            app: provider
        ports:
        - port: 80
          protocol: TCP
          targetPort: 8083
        type: {{ $.Values.global.provider.service.type }}
    EOF
    
    cat > ../transformer/templates/service.yaml << EOF
    apiVersion: v1
    kind: Service
    metadata:
        name: gcz-transformer
        namespace: {{ $.Values.global.transformer.namespace }}
        annotations:
            service.beta.kubernetes.io/azure-load-balancer-internal: "{{ $.Values.global.transformer.configuration.privateNetwork }}"
    spec:
        selector:
            app: transformer
        ports:
        - port: 80
          protocol: TCP
          targetPort: 8080
        type: {{ $.Values.global.transformer.service.type }}
    EOF
    
  6. Tekintse át a transzformátor konfigurációs fájlját application.yml , és győződjön meg arról, hogy a megfelelő sémák szerepelnek benne.

    nano ../transformer/application.yml
    
  7. Tekintse át a szolgáltató konfigurációs fájlját koop-config.json.

    nano ../provider/koop-config.json
    
  8. Hitelesítés az Azure Kubernetes Service (AKS) fürtben:

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_NAME --admin
    
  9. AKS-névtér létrehozása:

    kubectl create namespace $NAMESPACE
    
  10. HELM-függőségek üzembe helyezése:

    helm dependency build
    
  11. A GCZ HELM-diagram üzembe helyezése:

    helm upgrade -i $CHART . -n $NAMESPACE -f osdu_gcz_custom_values.yaml --set-file global.provider.configLoaderJs="../../../../gcz-provider/gcz-provider-core/config/configLoader.js"
    
  12. Ellenőrizze az üzembe helyezést:

    kubectl get pods -n $NAMESPACE
    

    Most meg kell jelennie a , providerés transformer szolgáltatások ignitepodjainak.

  13. Ezután jegyezze fel a külső IP-címeket a szolgáltatásokhoz és transformer a provider szolgáltatásokhoz.

    kubectl get service -n $NAMESPACE
    

    Ezek az IP-címek a GCZ API-végpontokhoz való csatlakozásra szolgálnak.

Fontos

Ha frissíteni szeretné a konfigurációs fájlokat (pl. application.yml vagy koop-config.json), frissítenie kell az AKS-konfigurációt (konfigurációtérképet), majd törölnie kell a meglévő podokat a és transformer szolgáltatásokhozprovider. A podok újra létre lesznek hozva az új konfigurációval. Ha a konfigurációt a GCZ API-k használatával módosítja, a módosítások nem maradnak meg a pod újraindítása után.

Térinformatikai fogyasztási zóna (GCZ) üzembe helyezése Windows rendszerű virtuális gépen

Megtudhatja, hogyan helyezhet üzembe térinformatikai fogyasztási zónát (GCZ) Windows rendszeren. Ez az üzembe helyezési lehetőség fejlesztési és tesztelési környezetekhez ajánlott, mivel egyszerűbb beállítani és konfigurálni, és kevesebb karbantartást igényel.

Előfeltételek

  • Egy Azure Data Manager for Energy-példány. Ha nem rendelkezik Azure Data Manager for Energy-példánnyal, tekintse meg az Azure Data Manager for Energy-példány létrehozását.
  • Windows rendszerű virtuális gép. Ha nem rendelkezik Windows rendszerű virtuális géppel, olvassa el a Windows rendszerű virtuális gép létrehozása az Azure-ban című témakört. A helyi gépet is használhatja.
  • A Windows rendszerű virtuális gépen telepített Java JDK 17. Ha nincs telepítve a Java, olvassa el a Java telepítése Windows rendszeren című témakört.
  • A Windows rendszerű virtuális gépen telepített 18.19.1-s csomópont (LTS). Ha nincs telepítve a Node, olvassa el a Node.js és az npm telepítése Windows rendszeren című témakört.
  • A Windows rendszerű virtuális gépen telepített Python 3.11.4 vagy újabb. Ha nincs telepítve a Python, olvassa el a Python telepítése Windows rendszeren című témakört.
    • A telepítési folyamat során győződjön meg arról, hogy hozzáadja pip . Ha elfelejti hozzáadnipip, manuálisan is telepítheti.

GCZ üzembe helyezése Windows rendszeren

  1. Csatlakozzon a Windows rendszerű virtuális géphez.

  2. Töltse le a következő fájlokat az OSDU GitLab-adattárból:

    1. GCZ-szolgáltató
    2. GCZ-átalakító
    3. Python-függőségek
  3. Nyissa meg a PowerShellt rendszergazdaként, és lépjen arra a mappára, ahová letöltötte a fájlokat.

  4. Futtassa a következő parancsokat a fájlok kinyeréséhez:

    Expand-Archive -Path .\GCZ_PROVIDER.zip -DestinationPath C:\gcz\
    Expand-Archive -Path .\GCZ_TRANSFORMER.zip -DestinationPath C:\gcz\
    Expand-Archive -Path .\GCZ_PYTHON_DEPENDENCIES.zip -DestinationPath C:\gcz\
    
  5. A környezeti változók konfigurálása:

    $ADME_HOSTNAME = "<adme-hostname>" # ADME Hostname, e.g. "https://contoso.energy.azure.com"
    $GCZ_DATA_PARTITION_ID = "<data-partition-id>" # ADME Data Partition ID, e.g. "opendes"
    $GCZ_QUERY_URL = "$ADME_HOSTNAME/api/search/v2/query" # ADME Query Endpoint
    $GCZ_QUERY_CURSOR_URL = "$ADME_HOSTNAME/api/search/v2/query_with_cursor" # ADME Query with Cursor Endpoint
    $GCZ_SCHEMA_URL = "$ADME_HOSTNAME/api/schema-service/v1/schema" # ADME Schema Endpoint
    $GCZ_ENTITLEMENT_SERVICE_URL = "$ADME_HOSTNAME/api/entitlements/v2" # ADME Entitlement Service Endpoint
    $GCZ_FILE_RETRIEVAL_URL = "$ADME_HOSTNAME/api/dataset/v1/retrievalInstructions" # ADME File Retrieval Endpoint
    $GCZ_CONVERT_TRAJECTORY_URL = "$ADME_HOSTNAME/api/crs/converter/v3/convertTrajectory" # ADME Convert Trajectory Endpoint
    $GCZ_STORAGE_URL = "$ADME_HOSTNAME/api/storage/v2/records/" # ADME Storage Endpoint
    

    További környezeti változókért tekintse meg az OSDU GitLab dokumentációját.

  6. Ellenőrizze a GCZ-szolgáltató és a transzformátor konfigurációs fájljait a konfigurációs fájlok szövegszerkesztőben való megnyitásával és szükség esetén az értékek frissítésével.

    • Szolgáltató: C:\gcz\gcz-provider\gcz-provider-core\config\koop-config.json
    • Transzformátor: C:\gcz\gcz-transformer-core\config\application.yml

    Fontos

    Ha módosítja a konfigurációs fájlok sémáit, győződjön meg arról, hogy ezek a sémák mindkét konfigurációs fájlban szerepelnek.

  7. (nem kötelező) Telepítse a Python-függőségeket (csak a well log interpolációhoz szükséges).

    pip install -r C:\gcz\gcz-transformer-core\src\main\resources\script\requirements.txt --no-index --find-links python-dependencies
    
  8. Indítsa el a GCZ-átalakítót.

    C:\gcz\transformer\transformer.bat local
    
  9. Hozza létre a GCZ-szolgáltatót.

    cd C:\gcz\gcz-provider\gcz-provider-core
    npm install
    npm start
    

Alapértelmezés szerint a szolgáltató figyel, http://localhost:8083 és a transzformátor figyel.http://localhost:8080

GCZ API-k nyilvános közzététele (nem kötelező)

Ha nyilvánosan szeretné elérhetővé tenni a GCZ API-kat, használhatja az Azure API Managementet (APIM). Az Azure API Management lehetővé teszi, hogy biztonságosan elérhetővé tegyük a GCZ szolgáltatást az interneten, mivel a GCZ szolgáltatás még nem rendelkezik beépített hitelesítéssel és engedélyezéssel. Az APIM-eken keresztül szabályzatokat adhatunk az API-k védelméhez, figyeléséhez és kezeléséhez.

Előfeltételek

  • Egy Azure API Management-példány. Ha nincs Azure API Management-példánya, olvassa el az Azure API Management-példány létrehozása című témakört.
  • A GCZ API-k üzembe vannak helyezve és futnak.

Fontos

Az Azure API Management-példányt egy olyan virtuális hálózatba kell injektálni, amely az AKS-fürt számára elérhető ahhoz, hogy kommunikálni tudjon a GCZ API-kkal.

GCZ API-k hozzáadása az Azure API Managementhez

A GCZ OpenAPI specifikációinak letöltése

  1. Töltse le a két OpenAPI-specifikációt a helyi számítógépre.

  2. Nyissa meg az egyes OpenAPI-specifikációs fájlokat egy szövegszerkesztőben, és cserélje le a servers szakaszt az AKS GCZ Services Load Balancer megfelelő IP-címére.

    servers:
      - url: "http://<GCZ-Service-LoadBalancer-IP>/ignite-provider"
    

GCZ API-k hozzáadása az Azure API Managementhez

  1. Lépjen az Azure API Management szolgáltatáshoz az Azure Portalon.

  2. A bal oldali navigációs panelen válassza az API-kat.

  3. Válassza az + API hozzáadása lehetőséget.

  4. Válassza az OpenAPI lehetőséget.

  5. Válassza a Fájl kiválasztása lehetőséget, és töltse fel a gcz-openapi-provider.yaml fájlt.

  6. Az API URL-utótag mezőjébe írja be a következőtignite-provider:

  7. Válassza a Létrehozás lehetőséget.

  8. Ismételje meg a fájl lépéseit gcz-openapi-transformer.yaml , de használja gcz/transformer/admin API URL-utótagként.

    GCZ API hozzáadása az APIM-hoz

Szabályzatok konfigurálása

Ezután konfigurálnunk kell a szabályzatokat a JSON webes jogkivonatok (JWT) érvényesítéséhez.

A következő adatokra lesz szüksége:

  • A Microsoft Entra-azonosító bérlőazonosítója.
  • Az Azure Data Manager for Energy-ügyfél azonosítója (vagy tokenkibocsátó ügyfélazonosító, ha külön van).

Feljegyzés

Ha több alkalmazásregisztráció is kibocsát jogkivonatokat, több <application-id> elemet is hozzáadhat az <client-application-ids> elemhez.

  1. Az újonnan létrehozott Geospatial Consumption Zone - Provider API-ban győződjön meg arról, hogy minden művelet ki van jelölve.

  2. A Bejövő feldolgozás területen válassza a ... lehetőséget, majd a Kódszerkesztőt.

  3. Illessze be a következő szabályzatdefiníciót a szerkesztőbe:

    <policies>
        <!-- Throttle, authorize, validate, cache, or transform the requests -->
        <inbound>
            <base />
            <validate-azure-ad-token tenant-id="%tenant-id%" failed-validation-httpcode="401">
            <client-application-ids>
                <application-id>%client-id%</application-id>
            </client-application-ids>
        </inbound>
        <!-- Control if and how the requests are forwarded to services  -->
        <backend>
            <base />
        </backend>
        <!-- Customize the responses -->
        <outbound>
            <base />
        </outbound>
        <!-- Handle exceptions and customize error responses  -->
        <on-error>
            <base />
        </on-error>
    </policies>
    
  4. Cserélje le %tenant-id% a Microsoft Entra-azonosító bérlőazonosítóját és %client-id% az Azure Data Manager for Energy-ügyfélazonosítót.

  5. Válassza a Mentés lehetőséget.

  6. Ismételje meg az API lépéseit Geospatial Consumption Zone - Transformer .

A GCZ szolgáltatás tesztelése

  1. Töltse le az API-ügyfélgyűjteményt az OSDU GitLab-ből , és importálja a választott API-ügyfélbe (pl. Bruno, Postman).

  2. Adja hozzá a következő környezeti változókat az API-ügyfélhez:

    • PROVIDER_URL - A GCZ Provider API URL-címe.
    • AMBASSADOR_URL - A GCZ Transformer API URL-címe.
    • access_token - Érvényes ADME hozzáférési jogkivonat.
  3. Annak ellenőrzéséhez, hogy a GCZ a várt módon működik-e, futtassa az API-hívásokat a gyűjteményben.

Következő lépések

A GCZ sikeres üzembe helyezése után a következőt teheti:

  • A GCZ-adatok vizualizációja az OSDU GitLab GCZ WebApps használatával.

Fontos

A GCZ WebApps jelenleg fejlesztés alatt áll, és nem támogatja a hitelesítést. Javasoljuk, hogy helyezze üzembe a WebAppset egy magánhálózaton, és tegye ki őket Azure-alkalmazás Gateway vagy Az Azure Front Door használatával a hitelesítés és engedélyezés engedélyezéséhez.

Adatokat is betölthet az Azure Data Manager for Energy-példányba:

Hivatkozások

  • A térinformatikai fogyasztási zónával kapcsolatos információkért lásd: OSDU GitLab.