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.
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.
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
- Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot.
- Azure Kubernetes-fürt (AKS) virtuális hálózati integrációval. További útmutatásért tekintse meg az Azure Kubernetes Service-fürt és az Azure Container Networking Interface (CNI) hálózatkezelésének létrehozását ismertető cikket.
- Azure Cloud Shell vagy Azure CLI, kubectl és Git CLI.
Térinformatikai fogyasztási zóna (GCZ) HELM-diagramjának üzembe helyezése
Klónozza a GCZ-adattárat a helyi környezetbe:
git clone https://community.opengroup.org/osdu/platform/consumption/geospatial.git
Módosítsa a könyvtárat a
geospatial
mappára:cd geospatial/devops/azure/charts/geospatial
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
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
Módosítsa a
LoadBalancer
szolgáltatás típusát azprovider
andtransformer
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
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
Tekintse át a szolgáltató konfigurációs fájlját
koop-config.json
.nano ../provider/koop-config.json
Hitelesítés az Azure Kubernetes Service (AKS) fürtben:
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_NAME --admin
AKS-névtér létrehozása:
kubectl create namespace $NAMESPACE
HELM-függőségek üzembe helyezése:
helm dependency build
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"
Ellenőrizze az üzembe helyezést:
kubectl get pods -n $NAMESPACE
Most meg kell jelennie a ,
provider
éstransformer
szolgáltatásokignite
podjainak.Ezután jegyezze fel a külső IP-címeket a szolgáltatásokhoz és
transformer
aprovider
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.
- A telepítési folyamat során győződjön meg arról, hogy hozzáadja
GCZ üzembe helyezése Windows rendszeren
Csatlakozzon a Windows rendszerű virtuális géphez.
Töltse le a következő fájlokat az OSDU GitLab-adattárból:
Nyissa meg a PowerShellt rendszergazdaként, és lépjen arra a mappára, ahová letöltötte a fájlokat.
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\
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.
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.
- Szolgáltató:
(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
Indítsa el a GCZ-átalakítót.
C:\gcz\transformer\transformer.bat local
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
Töltse le a két OpenAPI-specifikációt a helyi számítógépre.
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
Lépjen az Azure API Management szolgáltatáshoz az Azure Portalon.
A bal oldali navigációs panelen válassza az API-kat.
Válassza az + API hozzáadása lehetőséget.
Válassza az OpenAPI lehetőséget.
Válassza a Fájl kiválasztása lehetőséget, és töltse fel a
gcz-openapi-provider.yaml
fájlt.Az API URL-utótag mezőjébe írja be a következőt
ignite-provider
:Válassza a Létrehozás lehetőséget.
Ismételje meg a fájl lépéseit
gcz-openapi-transformer.yaml
, de használjagcz/transformer/admin
API URL-utótagként.
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.
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.A Bejövő feldolgozás területen válassza a ... lehetőséget, majd a Kódszerkesztőt.
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>
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.Válassza a Mentés lehetőséget.
Ismételje meg az API lépéseit
Geospatial Consumption Zone - Transformer
.
A GCZ szolgáltatás tesztelése
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).
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.
-
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.