Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure IoT Operations veri akışı grafikleri, uçta özel veri işleme için WebAssembly (WASM) modüllerini destekler. Veri akışı işlem hatlarınızın bir parçası olarak özel iş mantığı ve veri dönüştürmeleri dağıtabilirsiniz.
Önemli
Veri akışı grafikleri şu anda yalnızca MQTT, Kafka ve OpenTelemetry uç noktalarını desteklemektedir. Data Lake, Microsoft Fabric OneLake, Azure Data Explorer ve Yerel Depolama gibi diğer uç nokta türleri desteklenmez. Daha fazla bilgi için bkz. Bilinen sorunlar.
Önemli
Şu anda özel işleme için grafik tanımlarını destekleyen tek bağlayıcı HTTP/REST bağlayıcıdır.
Önkoşullar
- Arc özellikli Kubernetes kümesinde Azure IoT Operations örneği dağıtın. Daha fazla bilgi için bkz. Deploy Azure IoT Operations.
- Azure IoT Operations örneğinizin bir kapsayıcı kayıt defterine erişmesini sağlamak için bir kayıt defteri uç noktası yapılandırın. Daha fazla bilgi için bkz. Kayıt defteri uç noktalarını yapılandırma.
Azure Container Registry (ACR) gibi özel bir kayıt defteri kullanmak istiyorsanız, şunları da yapmanız gerekir:
- WASM modüllerini ve grafiklerini depolamak için ACR gibi bir kapsayıcı kayıt defterine erişim.
- WASM modüllerini kayıt defterine göndermek için OCI Kayıt Defteri Depolama (ORAS) CLI'sini yükleyin.
Tavsiye
Özel kayıt defteri ayarlamadan hızlı bir başlangıç için, önceden oluşturulmuş örnek modülleri doğrudan genel GitHub Container Registry'den (ghcr.io) kullanabilirsiniz. Yönergeler için bkz. Genel kayıt defterinden önceden oluşturulmuş modülleri kullanma .
Genel Bakış
veri akışı grafları ve bağlayıcıları Azure IoT Operations WASM modülleri, verileri uçta yüksek performans ve güvenlikle işlemenizi sağlar. WASM korumalı bir ortamda çalışır ve Rust ile Python destekler.
Genel kayıt defterinden önceden oluşturulmuş modülleri kullanma
Kullanmaya başlamanın en hızlı yolu, önceden oluşturulmuş örnek WASM modüllerini ve graf tanımlarını doğrudan genel GitHub Container Registry'den kullanmaktır. Bu yaklaşım için özel bir kayıt defteri, ORAS CLI veya herhangi bir çekme/gönderme adımı ayarlanması gerekmez.
Açık kayıt defteri için bir uç nokta oluşturma
Örnek modüllerin barındırıldığı genel kayıt defterine işaret eden bir kayıt defteri uç noktası oluşturun:
resource publicRegistryEndpoint 'Microsoft.IoTOperations/instances/registryEndpoints@2025-10-01-preview' = {
parent: aioInstance
name: 'public-ghcr'
extendedLocation: {
name: customLocation.id
type: 'CustomLocation'
}
properties: {
host: 'ghcr.io/azure-samples/explore-iot-operations'
authentication: {
method: 'Anonymous'
anonymousSettings: {}
}
}
}
Bu kayıt defteri uç noktasını oluşturduktan sonra, veri akışı graflarınızda registryEndpointRef: public-ghcr kullanarak buna başvurabilirsiniz. Aşağıdaki örnek modüller ve grafik tanımları kullanılabilir:
| Yapıt | Description |
|---|---|
graph-simple:1.0.0 |
Basit sıcaklık dönüştürme grafı tanımı |
graph-complex:1.0.0 |
Çok sensörlü işleme grafı tanımı |
temperature:1.0.0 |
Sıcaklık dönüştürme modülü (Fahrenheit to Celsius) |
window:1.0.0 |
Zamana dayalı pencereleme modülü |
snapshot:1.0.0 |
Görüntü işleme ve nesne algılama modülü |
format:1.0.0 |
Görüntü biçimi dönüştürme modülü |
humidity:1.0.0 |
Nem veri işleme modülü |
collection:1.0.0 |
Çok sensörlü veri toplama modülü |
enrichment:1.0.0 |
Meta veri zenginleştirme modülü |
filter:1.0.0 |
Veri filtreleme modülü |
Basit grafiği açık kayıt defteriyle kullanmak için bkz.: Örnek 1: Bir WASM modülüyle temel dağıtım ve public-ghcr kaydı defteri uç noktası adı olarak kullanın.
Özel kayıt defteri kullanma
Özel modüller kullanmanız gerekiyorsa veya örnek modüllerin kendi kopyalarını barındırmak istiyorsanız, Azure Container Registry (ACR) gibi özel bir kapsayıcı kayıt defteri ayarlayın.
Kapsayıcı kayıt defterini ayarlama
Azure IoT Operations, WASM modüllerini ve grafik tanımlarını çekmek için bir kapsayıcı kayıt defteri gerektirir. Azure Container Registry (ACR) veya başka bir OCI uyumlu kayıt defteri kullanabilirsiniz.
Azure Container Registry oluşturmak ve yapılandırmak için bkz. Deploy Azure Container Registry.
ORAS CLI'yi yükleme
WASM modüllerini ve graf tanımlarını kapsayıcı kayıt defterinize göndermek için ORAS CLI'yi kullanın. Yükleme yönergeleri için bkz. ORAS'ı yükleme.
Genel kayıt defterinden örnek modülleri çekme
Önceden oluşturulmuş örnek modülleri kullanın:
# Pull sample modules and graphs
oras pull ghcr.io/azure-samples/explore-iot-operations/graph-simple:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/graph-complex:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/temperature:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/window:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/snapshot:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/format:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/humidity:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/collection:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/enrichment:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/filter:1.0.0
Modülleri kayıt defterinize gönderme
**
Örnek modülleri ve grafikleri aldıktan sonra bunları konteyner kayıt defterinize yükleyin.
<YOUR_ACR_NAME> değerini Azure Container Registry adıyla değiştirin.
Önemli
Operasyonlar deneyimi sayesinde yapıtlar, katman medya türüne göre değil, OCI yapılandırma medya türüne göre keşfedilir. Yapıtları bir kayıt defterine gönderdiğinizde, doğru medya türlerini ayarlamanız gerekir, aksi durumda yapıtlar işlem deneyimi kullanıcı arabiriminde görünmez:
| Yapıt türü | Gerekli OCI yapılandırma medya türü | Gerekli katman medya türü |
|---|---|---|
| Graf tanımı | application/vnd.microsoft.aio.graph.v1+yaml |
application/yaml |
| WASM modülü | application/vnd.module.wasm.content.layer.v1+wasm |
application/wasm |
Kayıt defterleri arasında yapıtları kopyalamak için CI/CD işlem hattı veya başka bir araç kullanıyorsanız, bu medya türlerini koruduğunu doğrulayın. Bazı araçlar aktarım sırasında yapıt meta verilerini kaldırır veya değiştirir ve bu da yapıtların işlem deneyiminden sessizce kaybolmasına neden olur. Daha fazla bilgi için Kayıt defteri artifakt gereksinimleri kısmına bakın.
İşlemler deneyimi web kullanıcı arabiriminde grafiklerin ve modüllerin görünür olmasını sağlamak için, aşağıdaki örnekte gösterildiği gibi --config ve --artifact-type bayraklarını ekleyin.
# Log in to your ACR
az acr login --name <YOUR_ACR_NAME>
# Push modules to your registry
oras push <YOUR_ACR_NAME>.azurecr.io/graph-simple:1.0.0 --config /dev/null:application/vnd.microsoft.aio.graph.v1+yaml graph-simple.yaml:application/yaml --disable-path-validation
oras push <YOUR_ACR_NAME>.azurecr.io/graph-complex:1.0.0 --config /dev/null:application/vnd.microsoft.aio.graph.v1+yaml graph-complex.yaml:application/yaml --disable-path-validation
oras push <YOUR_ACR_NAME>.azurecr.io/temperature:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm temperature.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/window:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm window.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/snapshot:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm snapshot.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/format:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm format.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/humidity:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm humidity.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/collection:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm collection.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/enrichment:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm enrichment.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/filter:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm filter.wasm:application/wasm
Tavsiye
Ayrıca kendi modüllerinizi göndererek özel grafikler oluşturabilirsiniz. Bkz . Özel veri akışı grafiklerini yapılandırma.
Çalışan bir grafikte modülü güncelleştirme
Çalışan bir grafikteki WASM modülünü, grafiği durdurmadan güncelleştirebilirsiniz. Bu, veri akışını durdurmadan bir işlecin mantığını güncelleştirmek istediğinizde kullanışlıdır. Örneğin, sıcaklık dönüştürme modülünü 1.0.0 sürümünden 2.0.0 sürümüne güncellemek için yeni sürümü aşağıdaki gibi yükleyin:
oras push <YOUR_ACR_NAME>.azurecr.io/temperature:2.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm temperature.wasm:application/wasm
Uyarı
Aynı etikete yeni içerik gönderirseniz (örneğin, üzerine yazarsanıztemperature:1.0.0), veri akışı grafiği ek yapılandırma olmadan güncelleştirilmiş modülü otomatik olarak alır. Ancak, yeni bir etikete (örneğin, temperature:2.0.0) iterseniz, grafik tanımı YAML'yi yeni sürüme başvuracak şekilde güncelleştirmeniz ve grafik nesnesini yeniden göndermeniz gerekir.
Özel WASM modülleri geliştirme
Veri akışı grafikleriniz için özel veri işleme mantığı oluşturmak için Rust veya Python'da WebAssembly modülleri geliştirin. Özel modüller yerleşik işleçlerde bulunmayan özelleştirilmiş iş mantığı, veri dönüştürmeleri ve analizler uygulamanızı sağlar.
Şunları içeren kapsamlı geliştirme yönergeleri için:
- Geliştirme ortamınızı ayarlama
- Rust ve Python'da işleçler oluşturma
- Veri modelini ve arabirimleri anlama
- Modüllerinizi oluşturma ve test etme
Bkz . Veri akışı grafikleri için WebAssembly modülleri geliştirme.
Veri işleme iş akışlarınızı tanımlayan YAML graf tanımlarını oluşturma ve yapılandırma hakkında ayrıntılı bilgi için bkz. WebAssembly graf tanımlarını yapılandırma.
Kayıt defteri artefakt gereklilikleri
İşlem deneyimi, grafları ve modülleri bulmak ve görüntülemek için OCI yapı meta verilerini kullanır. Özel CI/CD işlem hatları oluştururken, kayıt defterleri arasında yapıtları kopyalarken veya kullanıcı arabirimindeki eksik yapıtlarla ilgili sorunları giderirken bu gereksinimleri anlamak önemlidir.
Artefakt keşfi nasıl gerçekleştirilir?
ORAS ile bir yapıtı kayıt defterine gönderdiğinizde, OCI bildirimi iki ilgili alan içerir:
- Yapılandırma medya türü: Bunun ne tür bir yapıt olduğunu tanımlar. İşlem deneyimi, grafikleri ve modülleri bulmak için bu alanda filtre uygular.
- Katman medya türü: Gerçek dosyanın (YAML veya WASM) içerik biçimini açıklar.
İşlem deneyimi, keşif için katman medya türü yerine yapılandırma medya türünü kullanır. Yapılandırma medya türü eksik veya yanlışsa, yapıt kayıt defterinde bulunur ancak kullanıcı arabiriminde görünmez.
Gerekli medya türleri
| Yapıt türü | Yapılandırma medya türü (--config veya --artifact-type) |
Katman medya türü |
|---|---|---|
| Graf tanımı | application/vnd.microsoft.aio.graph.v1+yaml |
application/yaml |
| WASM modülü | application/vnd.module.wasm.content.layer.v1+wasm |
application/wasm |
Grafik tanımları için yapılandırma medya türünü şu bayrakla --config geçirin:
oras push <REGISTRY>/my-graph:1.0.0 \
--config /dev/null:application/vnd.microsoft.aio.graph.v1+yaml \
graph.yaml:application/yaml \
--disable-path-validation
WASM modülleri için --artifact-type bayrağını kullanarak geçirin.
oras push <REGISTRY>/my-module:1.0.0 \
--artifact-type application/vnd.module.wasm.content.layer.v1+wasm \
module.wasm:application/wasm
CI/CD işlem hattında dikkat edilmesi gerekenler
Kayıt defterleri arasında yapıtları kopyalamak veya yükseltmek için otomatik işlem hatları kullanıyorsanız (örneğin, hazırlama kayıt defterinden üretim kayıt defterine), işlem hattının OCI yapıt meta verilerini koruduğunu doğrulayın. Bazı araçlar aktarım sırasında yapılandırma medya türünü kaldırır veya değiştirir ve bu da yapıtların işlem deneyiminden sessizce kaybolmasına neden olur.
Bir yapıtın aktarımdan sonra doğru meta veriye sahip olduğunu doğrulamak için bildirimini inceleyin:
oras manifest fetch <REGISTRY>/my-graph:1.0.0 | jq '{mediaType, configMediaType: .config.mediaType}'
Çıktı şunları göstermelidir:
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"configMediaType": "application/vnd.microsoft.aio.graph.v1+yaml"
}
Eğer configMediaType genel bir değer application/vnd.oci.empty.v1+json gibi gösteriyorsa, meta veri çıkarılır ve yapıtın doğru bayraklarla yeniden gönderilmesi gerekir.
İlgili içerik
- Rust ve Python'da işleç yazmak üzere WebAssembly modülleri geliştirin (uçtan uca hızlı başlangıç içerir)
- Grafik YAML yapısı ve yapılandırma parametreleri için WebAssembly graf tanımlarını yapılandırma
- DataflowGraph kaynak yapılandırması ve örnekleri için veri akışı graflarıyla WebAssembly kullanma
- IDE tabanlı geliştirme için VS Code uzantısıyla WASM modülleri oluşturma
- Kayıt defteri uç noktalarını yapılandırma