Jeo-Uzamsal Tüketim Bölgesini Dağıtma
Bu kılavuzda, Enerji için Azure Data Manager (ADME) ile tümleştirilmiş Jeo-Uzamsal Tüketim Bölgesi (GCZ) hizmetinin nasıl dağıtılacağı gösterilmektedir.
Önemli
Jeo-Uzamsal Tüketim Bölgesi (GCZ) hizmeti OSDU Forumu'nda mezun bir hizmet olmakla birlikte, güvenlik ve kullanım açısından sınırlamaları vardır. Ortamın güvenliğini sağlamak için bazı ek hizmetler ve ilkeler dağıtacağız, ancak hizmetin OSDU Gitlab'de geliştirilmesini izlemenizi öneririz.
Açıklama
OSDU Jeo-Uzamsal Tüketim Bölgesi (GCZ), jeo-uzamsal verilerin daha iyi yönetilmesini ve kullanımını sağlayan bir hizmettir. GCZ, konum tabanlı bilgilerin işlenmesini kolaylaştırır. Teknik karmaşıklıkları soyutlayarak yazılım uygulamalarının karmaşık ayrıntılarla uğraşmaya gerek kalmadan jeo-uzamsal verilere erişmesini sağlar. GCZ, kullanıma hazır harita hizmetleri sağlayarak OSDU özellikli uygulamalarla sorunsuz tümleştirmeyi kolaylaştırır.
Microsoft Entra Id'de Uygulama Kaydı Oluşturma
GCZ'yi dağıtmak için Microsoft Entra Id'de bir Uygulama Kaydı oluşturmanız gerekir. Uygulama Kaydı, jeo-uzamsal verilerin önbelleğini oluşturabilmek için GCZ API'lerinin kimliğini Enerji için Azure Data Manager ile doğrulamaktır.
- Uygulama Kaydı oluşturma yönergeleri için bkz . Microsoft Entra ID'de Uygulama Kaydı Oluşturma.
- Enerji için Azure Data Manager'da ilgili verileri okumak için Uygulama Kaydı izni verin. Diğer yönergeler için bkz . OSDU grubuna üye ekleme.
Ayarlama
GCZ hizmeti için iki ana dağıtım seçeneği vardır:
- Azure Kubernetes Service (AKS):GCZ hizmetini aks kümesine dağıtın. Bu dağıtım seçeneği üretim ortamları için önerilir. Daha fazla kurulum, yapılandırma ve bakım gerektirir. Ayrıca, sağlanan kapsayıcı görüntülerinde bazı sınırlamalar vardır.
- Windows: GCZ hizmetini bir Windows'a dağıtın. Kurulumu ve yapılandırılması daha kolay olduğundan ve daha az bakım gerektirdiği için geliştirme ve test ortamları için bu dağıtım seçeneği önerilir.
Azure Kubernetes Service'te (AKS) Jeo-Uzamsal Tüketim Bölgesi (GCZ) dağıtma
Azure Kubernetes Service'te (AKS) Jeo-Uzamsal Tüketim Bölgesi'ni (GCZ) dağıtmayı öğrenin.
Önemli
AKS kullanarak GCZ'nin geçerli dağıtımı, eklenen şemaların varsayılan yapılandırmasıyla sınırlıdır. Desteklenen şemalarla ilgili bilgi için lütfen OSDU GitLab'e bakın. Şema eklemek veya değiştirmek için (daha yeni sürümler) özel bir kapsayıcı görüntüsü oluşturulması gerekir.
Önkoşullar
- Azure Aboneliği. Azure aboneliğiniz yoksa ücretsiz hesap oluşturun.
- Sanal ağ tümleştirmesi ile Azure Kubernetes Kümesi (AKS). Daha fazla yönerge için bkz . Azure Kubernetes Service (AKS) kümesi ve Azure Container Networking Interface (CNI) ağı oluşturma.
- Azure Cloud Shell veya Azure CLI, kubectl ve Git CLI.
Jeo-Uzamsal Tüketim Bölgesi (GCZ) HELM GrafiğiNi Dağıtma
GCZ deposunu yerel ortamınıza kopyalayın:
git clone https://community.opengroup.org/osdu/platform/consumption/geospatial.git
Dizini klasör olarak
geospatial
değiştirin:cd geospatial/devops/azure/charts/geospatial
Dağıtım için değişkenleri tanımlayın:
# 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: 557963fb-ede7-4a88-9e3e-19ace7f1e36b AZURE_CLIENT_ID="<clientId>" # App Registration client ID. Example: b149dc73-ed8c-4ad3-bbaf-882a208f87eb AZURE_CLIENT_SECRET="<clientSecret>" # App Registration client secret. CALLBACK_URL="http://localhost:5050" #ie: http://localhost:8080 # 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 VERSION=0.1.0
HELM grafiğini oluşturma:
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: community.opengroup.org:5555/osdu/platform/consumption/geospatial/gridgain-community tag: 8.8.34 configuration: gcz_ignite_namespace: "$GCZ_IGNITE_NAMESPACE" gcz_ignite_service: "$GCZ_IGNITE_SERVICE" provider: namespace: $NAMESPACE image: repository: community.opengroup.org:5555 name: osdu/platform/consumption/geospatial/geospatial-provider-master tag: latest service: type: LoadBalancer annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true" transformer: namespace: $NAMESPACE image: repository: community.opengroup.org:5555 name: osdu/platform/consumption/geospatial/geospatial-transformer-master tag: latest service: type: LoadBalancer annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true" configuration: datapartitionid: $DATA_PARTITION_ID clientId: $AZURE_CLIENT_ID tenantId: $AZURE_TENANT_ID callbackURL: $CALLBACK_URL 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
ve
transformer
hizmetleri yapılandırma dosyaları içinprovider
hizmet türünü olarakLoadBalancer
değiştirin.cat > ../provider/templates/service.yaml << EOF apiVersion: v1 kind: Service metadata: name: gcz-provider namespace: {{ $.Values.global.provider.namespace }} annotations: {{- range $key, $value := $.Values.global.provider.service.annotations }} {{ $key }}: {{ $value | quote }} {{- end }} 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: {{- range $key, $value := $.Values.global.transformer.service.annotations }} {{ $key }}: {{ $value | quote }} {{- end }} spec: selector: app: transformer ports: - port: 80 protocol: TCP targetPort: 8080 type: {{ $.Values.global.transformer.service.type }} EOF
Azure Kubernetes Service (AKS) kümesinde kimlik doğrulaması yapın:
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_NAME --admin
HELM bağımlılıklarını dağıtma:
helm dependency build
GCZ HELM grafiğini dağıtma:
helm install $CHART ../$CHART --values osdu_gcz_custom_values.yaml
Dağıtımı doğrulayın:
kubectl get pods -n $NAMESPACE
Şimdi ,
provider
vetransformer
hizmetlerininignite
podlarını görmeniz gerekir.Ardından ve
transformer
hizmetleri için Dış IP'leriprovider
not alın.kubectl get service -n $NAMESPACE
Bu IP'ler GCZ API uç noktalarına bağlanmak için kullanılır.
Bir Windows Sanal Makinesinde Jeo-Uzamsal Tüketim Bölgesi (GCZ) Dağıtma
Windows'da Jeo-Uzamsal Tüketim Bölgesi'nin (GCZ) nasıl dağıtılacağı hakkında bilgi edinin. Kurulumu ve yapılandırılması daha kolay olduğundan ve daha az bakım gerektirdiği için bu dağıtım seçeneği geliştirme ve test ortamları için önerilir.
Önkoşullar
- Enerji için Azure Data Manager örneği. Enerji için Azure Data Manager örneğine sahip değilseniz bkz . Enerji için Azure Data Manager örneği oluşturma.
- Bir Windows Sanal Makinesi. Windows Sanal Makineniz yoksa bkz . Azure'da Windows Sanal Makinesi oluşturma. Yerel makinenizi de kullanabilirsiniz.
- Windows Sanal Makinesi'ne java JDK 17 yüklendi. Java yüklü değilse bkz . Windows'a Java yükleme.
- Düğüm 18.19.1 (LTS) Windows Sanal Makinesi'ne yüklendi. Node yüklü değilse bkz . Windows'a Node.js ve npm yükleme.
- Python 3.11.4 veya üzeri Windows Sanal Makinesi'ne yüklenmiştir. Python yüklü değilse bkz . Windows'a Python yükleme.
- Yükleme işlemi sırasında eklediğinizden
pip
emin olun. eklemeyipip
unutursanız el ile yükleyebilirsiniz.
- Yükleme işlemi sırasında eklediğinizden
Windows'da GCZ'yi dağıtma
Windows Sanal Makinenize bağlanın.
OSDU GitLab deposundan aşağıdaki dosyaları indirin:
PowerShell'i yönetici olarak açın ve dosyaları indirdiğiniz klasöre gidin.
Dosyaları ayıklamak için aşağıdaki komutları çalıştırın:
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\
Ortam değişkenlerini yapılandırın:
$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
Daha fazla ortam değişkeni için OSDU GitLab belgelerine bakın.
Yapılandırma dosyalarını bir metin düzenleyicisinde açarak ve gerekirse değerleri güncelleştirerek GCZ Sağlayıcısı ve Transformer için yapılandırma dosyalarını doğrulayın.
- Sağlayıcı:
C:\gcz\gcz-provider\gcz-provider-core\config\koop-config.json
- Trafo:
C:\gcz\gcz-transformer-core\config\application.yml
Önemli
Yapılandırma dosyalarındaki şemalarda değişiklik yaparsanız, bu şemaların her iki yapılandırma dosyasında da temsil edildiklerinden emin olmanız gerekir.
- Sağlayıcı:
(isteğe bağlı) Python Bağımlılıklarını yükleyin (yalnızca İyi Günlük İlişkilendirmesi için gereklidir).
pip install -r C:\gcz\gcz-transformer-core\src\main\resources\script\requirements.txt --no-index --find-links python-dependencies
GCZ Transformer'ı başlatın.
C:\gcz\transformer\transformer.bat local
GCZ Sağlayıcısını oluşturun.
cd C:\gcz\gcz-provider\gcz-provider-core npm install npm start
Varsayılan olarak Sağlayıcı açık http://localhost:8083
, Transformer ise üzerinde http://localhost:8080
dinliyordur.
GCZ API'lerini genel olarak yayımlama (isteğe bağlı)
GCZ API'lerini genel kullanıma açmak istiyorsanız Azure API Management'ı (APIM) kullanabilirsiniz. Azure API Management, GCZ hizmetinde henüz yerleşik kimlik doğrulaması ve yetkilendirme olmadığından GCZ hizmetini güvenli bir şekilde İnternet'te kullanıma sunmamıza olanak tanır. APIM aracılığıyla API'leri güvenli hale getirmek, izlemek ve yönetmek için ilkeler ekleyebiliriz.
Önkoşullar
- Azure API Management örneği. Azure API Management örneğine sahip değilseniz bkz . Azure API Management örneği oluşturma.
- GCZ API'leri dağıtılır ve çalışır.
Önemli
Azure API Management örneğinin GCZ API'leriyle iletişim kurabilmesi için AKS kümesine yönlendirilebilen bir sanal ağa eklenmiş olması gerekir.
GCZ API'lerini Azure API Management'a ekleme
GCZ OpenAPI belirtimlerini indirme
İki OpenAPI belirtimini yerel bilgisayarınıza indirin.
Her OpenAPI belirtimi dosyasını bir metin düzenleyicisinde açın ve bölümünü AKS GCZ Services Load Balancer'ın (Dış IP) karşılık gelen IP'leriyle değiştirin
servers
.servers: - url: "http://<GCZ-Service-External-IP>/ignite-provider"
GCZ API'lerini Azure API Management'a ekleme
Sol gezinti bölmesinde API'ler'i seçin.
+ API Ekle'yi seçin.
OpenAPI'yi seçin.
Dosya seçin'i seçin ve dosyayı karşıya yükleyin
gcz-openapi-provider.yaml
.API URL'si soneki alanına girin
ignite-provider
.Oluştur'u belirleyin.
Dosyanın adımlarını
gcz-openapi-transformer.yaml
yineleyin, ancak API URL'si son eki olarak kullanıngcz/transformer/admin
.
İlkeleri yapılandırma
Ardından JSON Web Belirteçlerini (JWT) doğrulamak için ilkeleri yapılandırmamız gerekir.
Aşağıdaki bilgiler gerekir:
- Microsoft Entra ID kiracısı kimliğiniz.
- Enerji için Azure Data Manager istemci kimliği (veya ayrıysa belirteç veren istemci kimliği).
Not
Belirteç veren birden çok Uygulama Kaydınız varsa, öğesine birden çok <application-id>
öğe <client-application-ids>
ekleyebilirsiniz.
Yeni oluşturulan
Geospatial Consumption Zone - Provider
API'de Tüm işlemler'in seçili olduğundan emin olun.Gelen işleme'nin altında ... ve ardından Kod düzenleyicisi'ni seçin.
Aşağıdaki ilke tanımını düzenleyiciye yapıştırın:
<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>
değerini Microsoft Entra Id kiracı kimliğinizle ve
%client-id%
Enerji için Azure Data Manager istemci kimliğiyle değiştirin%tenant-id%
.Kaydet'i seçin.
API için
Geospatial Consumption Zone - Transformer
adımları yineleyin.
GCZ hizmetini test etme
OSDU GitLab'den API istemci koleksiyonunu indirin ve istediğiniz API istemcinize (örneğin Postman) aktarın.
API istemcinize aşağıdaki ortam değişkenlerini ekleyin:
PROVIDER_URL
- GCZ Sağlayıcı API'sinin URL'si.AMBASSADOR_URL
- GCZ Transformer API'sinin URL'si.access_token
- Geçerli bir ADME erişim belirteci.
GCZ'nin beklendiği gibi çalıştığını doğrulamak için api çağrılarını koleksiyonda çalıştırın.
Sonraki adımlar
GCZ'nin başarılı bir dağıtımını yaptıktan sonra şunları yapabilirsiniz:
- OSDU GitLab'den GCZ WebApps'i kullanarak GCZ verilerinizi görselleştirin.
Önemli
GCZ WebApps şu anda geliştirme aşamasındadır ve kimlik doğrulamasını desteklemez. Kimlik doğrulaması ve yetkilendirmeyi etkinleştirmek için WebApps'i özel bir ağa dağıtmanızı ve Azure Uygulaması lication Gateway veya Azure Front Door kullanarak kullanıma sunmanızı öneririz.
Ayrıca Verileri Enerji için Azure Data Manager örneğine de alabilirsiniz:
Başvurular
- Jeo-Uzamsal Tüketim Bölgesi hakkında bilgi için bkz . OSDU GitLab.