Hızlı Başlangıç: Azure IoT İşlemleri SDK'ları ile geliştirmeye başlama

Azure IoT İşlemleri SDK'ları ile geliştirmeye başlayın. Örnekleri oluşturmak ve çalıştırmak için geliştirme ortamınızı ayarlamanın yanı sıra kendi yüksek oranda kullanılabilir uç uygulamalarınızı oluşturup test etmek için bu adımları izleyin.

GitHub deposu | .NET SDK | Go SDK | Rust SDK

Önkoşullar

Başlamadan önce aşağıdaki önkoşulları hazırlayın:

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir abonelik oluşturun.

Bu makaledeki Azure CLI örnek, her değeri bir kez ayarlayabilmeniz ve ardından komutları kopyalayıp yapıştırmanız için ortam değişkenlerini kullanır as-is. Eğer hızlı başlangıçta Azure IoT İşlemleri Codespaces ortamını kullanıyorsanız, bu değişkenler zaten sizin için ayarlanmış ve bu adımı atlayabilirsiniz. Aksi takdirde, komutları çalıştırmadan önce shell'inizde aşağıdaki ortam değişkenlerini ayarlayın.

Aşağıdaki betikler en sık kullanılan ortam değişkenlerini ayarlar:

Ortam değişkeni Açıklama
SUBSCRIPTION_ID Azure IoT İşlemleri örneğini içeren aboneliğin kimliği.
RESOURCE_GROUP Azure IoT İşlemleri örneğini içeren kaynak grubunun adı.
AIO_INSTANCE_NAME Azure IoT İşlemleri örneğinizin adı. Örneklerinizi listelemek için çalıştırın az iot ops list -o table.
CLUSTER_NAME Azure Arc özellikli Kubernetes kümesinin adı, örneğini barındırıyor.
LOCATION Yeni kaynaklar için kullanılacak Azure bölgesi, örneğin eastus.
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>

Sadece bu makalenin kullandığı değişkenleri ayarlamanız yeterlidir. Bu makale, seçtiğiniz kaynak adları için ek ortam değişkenleri kullanabilir. Makale, tanıtıldıkları yere nasıl yerleştirileceğini açıklıyor.

Bu makale ayrıca seçtiğiniz kaynak adları için aşağıdaki ortam değişkenlerini kullanır: SCHEMA_REGISTRY (şema kayıt listesinin adı), SCHEMA_REGISTRY_NAMESPACE (şema kayıt isim alanının adı), STORAGE_ACCOUNT (depolama hesabının adı). İlgili komutları çalıştırmadan önce her birini istediğiniz bir değere ayarlayın.

Kurulum

Azure IoT İşlemleri SDK'larla geliştirme için Azure IoT İşlemleri dağıtılmış bir Kubernetes kümesi gerekir. Daha fazla yapılandırma, MQTT aracısına doğrudan geliştirici ortamından erişmenizi sağlar.

Önemli

Aşağıdaki geliştirme ortamı kurulum seçenekleri, hafif bir Kubernetes kümesi için K3d'de çalışan K3s'i kullanır. test ayarları ile Azure IoT İşlemleri'ı dağıtırlar. Üretim dağıtımları için güvenli ayarları seçin.
Güvenli ayarları kullanmak için, Ubuntu'da K3s kümesi oluşturmak üzere Azure Arc etkin Kubernetes kümenizi hazırlama yönergelerini izleyin ve güvenli ayarlarla Azure IoT Operasyonlarını bir üretim kümesine dağıtın. Ardından Azure IoT İşlemleri'u geliştirme için yapılandırmaya geçin.

GitHub Codespaces en kolay deneyimi sağlar ve geliştirme ortamını birkaç dakika içinde çalışır duruma getirebilirsiniz.

  1. Azure IoT İşlemleri SDK deposundan GitHub Codespaces içinde codespace oluşturun:

    GitHub Codespaces içinde aç

  2. Kod alanı oluşturulduktan sonra, geliştirici araçlarının ve K3d'de çalışan yerel bir K3s kümesinin önceden yüklenmiş olduğu bir kapsayıcınız vardır.

Azure IoT İşlemlerini dağıtmak

Önceki adımda oluşturulan geliştirme kümesini arc-enable yapacak ve test ayarları ile Azure IoT İşlemleri dağıtacaksınız.

Yeni bir Bash terminali açın ve aşağıdaki adımları tamamlayın:

  1. Depo kök dizinine gidin:

    cd <REPOSITORY ROOT>
    
  2. Kümenizi Arc için etkinleştirip Azure IoT İşlemleri'ı dağıtmak için install-aio-arc.sh betiğini çalıştırın. Yer tutucuları değerlerinizle değiştirin:

    Parametre Değer
    LOCATION Size yakın bir Azure bölgesi. Şu anda desteklenen bölgelerin listesi için bkz . Desteklenen bölgeler.
    RESOURCE_GROUP Kümenizin oluşturulacağı yeni Azure kaynak grubunun adı.
    CLUSTER_NAME Kubernetes kümeniz için bir ad.
    STORAGE_ACCOUNT_NAME Depolama hesabınızın adı. Depolama hesabı adları 3 ila 24 karakter uzunluğunda olmalı ve yalnızca sayı ve küçük harf içermelidir.
    SCHEMA_REGISTRY_NAME Şema kayıt defteriniz için bir ad. Şema kayıt defteri adları yalnızca sayı, küçük harf ve kısa çizgi içerebilir.
    SCHEMA_REGISTRY_NAMESPACE Şema kayıt defteri ad alanınız için bir ad. Ad alanı, kiracı içindeki bir şema kayıt defterini benzersiz olarak tanımlar. Şema kayıt defteri ad alanı adları yalnızca sayı, küçük harf ve kısa çizgi içerebilir.
    DEVICE_REGISTRY_NAMESPACE Cihaz kayıt listesi isim alanınızın bir ismi. Kiracı ortamınız içinde benzersiz olmalı ve 3 ile 24 karakter arasında olmalıdır. Sadece sayılar, harfler, tire ve alt çizgi içerebilir.
    ./tools/deployment/install-aio-arc.sh -l <LOCATION> -g <RESOURCE_GROUP> -c <CLUSTER_NAME> -s <STORAGE_ACCOUNT_NAME> -r <SCHEMA_REGISTRY_NAME> -n <SCHEMA_REGISTRY_NAMESPACE> -d <DEVICE_REGISTRY_NAMESPACE>
    

    Bu betik aşağıdaki komutları çalıştırır:

    1. Azure CLI oturum açma
    2. Bir kaynak grubu oluşturun
    3. Gerekli Azure sağlayıcılarını kaydetme
    4. Kubernetes kümesini Azure Arc bağlama
    5. Azure Arc özelliklerini etkinleştirme
    6. Azure Depolama hesabı oluşturma
    7. Azure IoT İşlemleri şema kayıt defteri oluşturma
    8. Azure device registry namespace oluştur
    9. Azure IoT Operasyonlarını Başlatma
    10. Azure IoT İşlemleri örneği oluşturma
  3. Dağıtım tamamlandıktan sonra az iot ops check kullanarak Azure IoT İşlemleri hizmet dağıtımını sistem durumu, yapılandırma ve kullanılabilirlik açısından değerlendirin. Check komutu, dağıtım ve yapılandırmanızdaki sorunları bulmanıza yardımcı olabilir.

    az iot ops check
    

Geliştirme için Azure IoT Operasyonlarını yapılandırın

Azure IoT İşlemleri'ı dağıttıktan sonra geliştirme için yapılandırın. MQTT aracısını ve kimlik doğrulama yöntemlerini ayarlayın. Geliştirme ortamınız için gerekli ortam değişkenlerini ayarladığınızdan emin olun:

  1. Depo kök dizinine gidin:

    cd <REPOSITORY ROOT>
    
  2. Azure IoT İşlemleri'ı geliştirme için yapılandırmak amacıyla configure-aio.sh betiğini çalıştırın.

    ./tools/deployment/configure-aio.sh
    

    Bu betik aşağıdaki komutları çalıştırır:

    1. Eksikse sertifika hizmetlerini ayarlar
    2. x509 kimlik doğrulaması için kök ve ara CA'lar oluşturur
    3. X509 istemcilerini kimlik doğrulaması için Aracı için ConfigMap güven paketini oluşturur
    4. SAT ve x509 kimlik doğrulaması için BrokerListener ve BrokerAuthentication kaynaklarını yapılandırır

Yüklemeyi test etme

Kurulumu test etmek için MQTT aracısına bağlanmak ve x509 sertifikaları, SAT ve güven paketini doğrulamak için kullanın mosquitto_pub .

  1. Dizini dışarı aktarın .session :

    export SESSION=$(git rev-parse --show-toplevel)/.session
    
  2. TLS veya kimlik doğrulaması olmadan test edin:

    mosquitto_pub -L mqtt://localhost:1883/hello -m world --debug
    
  3. x509 kimlik doğrulaması ile TLS'i test edin:

    mosquitto_pub -L mqtts://localhost:8883/hello -m world --cafile $SESSION/broker-ca.crt --cert $SESSION/client.crt --key $SESSION/client.key --debug
    
  4. SAT kimlik doğrulaması ile TLS'i test edin:

    mosquitto_pub -L mqtts://localhost:8884/hello -m world --cafile $SESSION/broker-ca.crt -D CONNECT authentication-method K8S-SAT -D CONNECT authentication-data $(cat $SESSION/token.txt) --debug
    

Bir örnek çalıştır

Bu örnek, Telemetry ve remote yordam çağrısı (RPC) kullanan bir istemci ile sunucu arasındaki basit iletişimi gösterir. Sunucu bir sayacın değerini izler ve istemciden gelen RPC isteklerini kabul ederek bu sayacı okur veya artırır.

Örnek, WoT Thing model dosyalarıyla v2 protokol derleyicisini kullanır, TestThing klasörüne bakın.

  1. .NET 9.0 SDK yükleyin.

  2. Azure IoT İşlemleri SDK'ları GitHub deposundaki örnekler ortam değişkenlerinden yapılandırma okur. Depo kökü, MQTT aracısına bağlanmak için örnekler tarafından kullanılan değişkenleri dışarı aktaran bir .env dosya sağlar. .env Ortamınızın değerlerini ayarlamak için dosyayı düzenleyin veya dosyada sağlanan varsayılan değerleri kullanın.

  3. Örnek dizine CounterServer gidin:

    cd <REPOSITORY ROOT>/dotnet/samples/Protocol/RPC/CounterServer/
    
  4. Örneği derleyin:

    dotnet build
    
  5. Örneği çalıştırın:

    source `git rev-parse --show-toplevel`/.env; export AIO_MQTT_CLIENT_ID=counter-server; dotnet run
    
  6. Yeni bir kabuk açın ve CounterClient örnek dizinine giderek gezin.

    cd <REPOSITORY ROOT>/dotnet/samples/Protocol/RPC/CounterClient/
    
  7. Örneği derleyin:

    dotnet build
    
  8. Örneği çalıştırın:

    source `git rev-parse --show-toplevel`/.env; export AIO_MQTT_CLIENT_ID=counter-client; export COUNTER_SERVER_ID=counter-server; dotnet run
    
  9. İstemci ve sunucunun iletişim kurduğunu görürsünüz; istemci sayaç değeri okumak ve artırmak için istekler gönderirken, sunucu telemetri gönderiyor. Detaylar için Examine client and server output bkz.

  10. Tamamlandığında CounterClient örnek otomatik olarak çıkar. CounterServer örneğini terminalinde Ctrl+C tuşuna basarak da durdurabilirsiniz.

İstemci ve sunucu çıktısını inceleyin

Bu bölüm, istemci ve sunucu için çıktı örneklerini göstermektedir. İstemci sayaç değeri okumak ve artırmak için çağrılar yapar ve sunucu yanıt verir. Sunucu ayrıca telemetri çıkarır, böylece istemci sayaç değeri takip edebilir. Bu örneklerde mesajlar mantıksal olarak gruplanır, ancak çıktınızda mesajların sırası istemci ve sunucunun zamanlamasına bağlı olarak değişir. Bu örnekler MQTT mesajlarının çıktısını gösterir, ancak bu çıktıyı paket mqttDiag içindeki sunucu ve istemci için dosyalarda ortam değişkeni olarak falseappsettings.json ayarlayarak bastırabilirsiniz.

Sayaç okuma

Aşağıdaki örnek, okuma sayacı için çıktı mesajlarını göstermektedir. İstemci ve sunucu arasındaki talepler ve yanıtlar, bu örnekte olan korelasyon kimliği 5b282690-8c59-4bf2-9926-9236582ce4b3ile eşleştirilir.

Müşteri çıktısı:

# Subscribe once on startup.
CounterClient Information: 0 : >> [2026-07-29T17:35:53.4663363Z] [11]: TX (51 bytes) >>> Subscribe: [PacketIdentifier=2] [TopicFilters=clients/+/rpc/command-samples/+/readCounter@AtLeastOnce]
CounterClient Information: 0 : >> [2026-07-29T17:35:53.4689212Z] [6]: RX (6 bytes) <<< SubAck: [PacketIdentifier=2] [ReasonCode=GrantedQoS1]
CounterClient Information: 0 : Subscribed to topic filter 'clients/+/rpc/command-samples/+/readCounter' for command invoker 'readCounter'

# Invoke readCounter once on startup and once at end -- only one shown.
info: CounterClient.RpcCommandRunner[0] Calling ReadCounter with 5b282690-8c59-4bf2-9926-9236582ce4b3
CounterClient Information: 0 : >> [2026-07-29T17:35:53.4777793Z] [11]: TX (335 bytes) >>> Publish: [Topic=rpc/command-samples/counter-server/readCounter] [PayloadLength=0] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=3]
CounterClient Information: 0 : >> [2026-07-29T17:35:53.4818287Z] [10]: RX (4 bytes) <<< PubAck: [PacketIdentifier=3] [ReasonCode=Success]
CounterClient Information: 0 : Invoked command 'readCounter' with correlation ID 5b282690-8c59-4bf2-9926-9236582ce4b3 to topic 'rpc/command-samples/counter-server/readCounter'
CounterClient Information: 0 : >> [2026-07-29T17:35:53.5861515Z] [10]: RX (260 bytes) <<< Publish: [Topic=clients/counter-client/rpc/command-samples/counter-server/readCounter] [PayloadLength=21] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=1]
info: CounterClient.RpcCommandRunner[0] called read 0 with id 5b282690-8c59-4bf2-9926-9236582ce4b3
CounterClient Information: 0 : >> [2026-07-29T17:35:53.6572000Z] [10]: TX (4 bytes) >>> PubAck: [PacketIdentifier=1] [ReasonCode=Success]

Sunucu çıktısı:

# Subscribe to readCounter topic on startup.
CounterServer Information: 0 : >> [2026-07-29T17:35:12.3456281Z] [7]: TX (54 bytes) >>> Subscribe: [PacketIdentifier=1] [TopicFilters=rpc/command-samples/counter-server/readCounter@AtLeastOnce]
CounterServer Information: 0 : >> [2026-07-29T17:35:12.3553742Z] [11]: RX (6 bytes) <<< SubAck: [PacketIdentifier=1] [ReasonCode=GrantedQoS1]
CounterServer Information: 0 : Command executor for 'readCounter' started.

# Multiple (2) invocations occur - only one shown.
CounterServer Information: 0 : >> [2026-07-29T17:35:53.4842146Z] [11]: RX (334 bytes) <<< Publish: [Topic=rpc/command-samples/counter-server/readCounter] [PayloadLength=0] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=1]
<6>17:35:53CounterServer.CounterService[0] --> Executing Counter.ReadCounter with id 5b282690-8c59-4bf2-9926-9236582ce4b3 for counter-client
<6>17:35:53CounterServer.CounterService[0] --> Executed Counter.ReadCounter with id 5b282690-8c59-4bf2-9926-9236582ce4b3 for counter-client
CounterServer Information: 0 : >> [2026-07-29T17:35:53.5815820Z] [7]: TX (261 bytes) >>> Publish: [Topic=clients/counter-client/rpc/command-samples/counter-server/readCounter] [PayloadLength=21] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=4]
CounterServer Information: 0 : >> [2026-07-29T17:35:53.5854665Z] [11]: RX (4 bytes) <<< PubAck: [PacketIdentifier=4] [ReasonCode=Success]
CounterServer Information: 0 : >> [2026-07-29T17:35:53.5881430Z] [12]: TX (4 bytes) >>> PubAck: [PacketIdentifier=1] [ReasonCode=Success]

Artış sayacı

Aşağıdaki örnek, artış sayacı için çıktı mesajlarını gösterir. İstekler ve yanıtlar, istemci ve sunucu arasında korelasyon kimliği ile eşleştirilir; bu örnekte bu ad, ' 5a4da7c4-3922-4049-8065-77f344c3478fdir.

Müşteri çıktısı:

# Invoke increment multiple times -- only one shown.
info: CounterClient.RpcCommandRunner[0] calling counter.incr  with id 5a4da7c4-3922-4049-8065-77f344c3478f
CounterClient Information: 0 : >> [2026-07-29T17:35:53.6375578Z] [11]: TX (49 bytes) >>> Subscribe: [PacketIdentifier=4] [TopicFilters=clients/+/rpc/command-samples/+/increment@AtLeastOnce]
CounterClient Information: 0 : >> [2026-07-29T17:35:53.6399406Z] [10]: RX (6 bytes) <<< SubAck: [PacketIdentifier=4] [ReasonCode=GrantedQoS1]
CounterClient Information: 0 : Subscribed to topic filter 'clients/+/rpc/command-samples/+/increment' for command invoker 'increment'
CounterClient Information: 0 : >> [2026-07-29T17:35:53.6461370Z] [11]: TX (372 bytes) >>> Publish: [Topic=rpc/command-samples/counter-server/increment] [PayloadLength=20] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=21]
CounterClient Information: 0 : >> [2026-07-29T17:35:53.6552803Z] [10]: RX (4 bytes) <<< PubAck: [PacketIdentifier=21] [ReasonCode=Success]
CounterClient Information: 0 : Invoked command 'increment' with correlation ID 5a4da7c4-3922-4049-8065-77f344c3478f to topic 'rpc/command-samples/counter-server/increment'
CounterClient Information: 0 : >> [2026-07-29T17:35:53.6960747Z] [13]: RX (259 bytes) <<< Publish: [Topic=clients/counter-client/rpc/command-samples/counter-server/increment] [PayloadLength=22] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=12]
info: CounterClient.RpcCommandRunner[0] called counter.incr 10 with id 5a4da7c4-3922-4049-8065-77f344c3478f
CounterClient Information: 0 : >> [2026-07-29T17:35:53.7138884Z] [10]: TX (4 bytes) >>> PubAck: [PacketIdentifier=12] [ReasonCode=Success]

Sunucu çıktısı:

# Subscribe to increment once on startup.
CounterServer Information: 0 : >> [2026-07-29T17:35:12.3548320Z] [7]: TX (52 bytes) >>> Subscribe: [PacketIdentifier=2] [TopicFilters=rpc/command-samples/counter-server/increment@AtLeastOnce]
CounterServer Information: 0 : >> [2026-07-29T17:35:12.3613847Z] [11]: RX (6 bytes) <<< SubAck: [PacketIdentifier=2] [ReasonCode=GrantedQoS1]
CounterServer Information: 0 : Command executor for 'increment' started.

# Multiple invocations are received -- only one shown.
CounterServer Information: 0 : >> [2026-07-29T17:35:53.6502886Z] [13]: RX (371 bytes) <<< Publish: [Topic=rpc/command-samples/counter-server/increment] [PayloadLength=20] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=2]
<6>17:35:53CounterServer.CounterService[0] --> Executing Counter.Increment with id 5a4da7c4-3922-4049-8065-77f344c3478f for counter-client
<6>17:35:53CounterServer.CounterService[0] --> Executed Counter.Increment with id 5a4da7c4-3922-4049-8065-77f344c3478f for counter-client
CounterServer Information: 0 : >> [2026-07-29T17:35:53.6924040Z] [7]: TX (260 bytes) >>> Publish: [Topic=clients/counter-client/rpc/command-samples/counter-server/increment] [PayloadLength=22] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=15]
CounterServer Information: 0 : >> [2026-07-29T17:35:53.6983722Z] [18]: RX (4 bytes) <<< PubAck: [PacketIdentifier=15] [ReasonCode=Success]
CounterServer Information: 0 : >> [2026-07-29T17:35:53.6992783Z] [12]: TX (4 bytes) >>> PubAck: [PacketIdentifier=2] [ReasonCode=Success]

CounterValue telemetrisi

Aşağıdaki örnek, CounterValue telemetrisi için çıktı mesajlarını göstermektedir. Sunucu çıktısı ilk gösterilir çünkü telemetri gönderir.

Sunucu çıktısı:

# Telemetry data is published multiple times. 
CounterServer Information: 0 : >> [2026-07-29T17:35:53.6805980Z] [7]: TX (203 bytes) >>> Publish: [Topic=telemetry/telemetry-samples/counterValue] [PayloadLength=18] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=5]
CounterServer Information: 0 : >> [2026-07-29T17:35:53.6843445Z] [11]: RX (4 bytes) <<< PubAck: [PacketIdentifier=5] [ReasonCode=Success]
CounterServer Information: 0 : Telemetry sent successfully to the topic 'telemetry/telemetry-samples/counterValue'

Müşteri çıktısı:

# Subscribe performed once on startup.
CounterClient Information: 0 : >> [2026-07-29T17:35:53.4283758Z] [11]: TX (48 bytes) >>> Subscribe: [PacketIdentifier=1] [TopicFilters=telemetry/telemetry-samples/counterValue@AtLeastOnce]
CounterClient Information: 0 : >> [2026-07-29T17:35:53.4355484Z] [10]: RX (6 bytes) <<< SubAck: [PacketIdentifier=1] [ReasonCode=GrantedQoS1]
CounterClient Information: 0 : Telemetry receiver subscribed for topic telemetry/telemetry-samples/counterValue.

# Multiple telemetry values received - only one shown.
CounterClient Information: 0 : >> [2026-07-29T17:35:53.6820692Z] [6]: RX (202 bytes) <<< Publish: [Topic=telemetry/telemetry-samples/counterValue] [PayloadLength=18] [QoSLevel=AtLeastOnce] [Dup=False] [Retain=False] [PacketIdentifier=2]
CounterClient Information: 0 : Telemetry received from telemetry/telemetry-samples/counterValue
info: CounterClient.CounterClient[0] Telemetry received from counter-server: CounterValue=4
CounterClient Information: 0 : >> [2026-07-29T17:35:53.7131604Z] [10]: TX (4 bytes) >>> PubAck: [PacketIdentifier=2] [ReasonCode=Success]

Yapılandırma özeti

MQTT aracı yapılandırması

Yazılımı yükledikten sonra küme aşağıdaki MQTT aracı tanımlarını içerir:

Bileşen Türü İsim Açıklama
Broker varsayılan MQTT aracısı
BrokerListener varsayılan MQTT aracısı için küme erişimi sağlar
BrokerListener varsayılan-harici MQTT aracısı için küme dışı erişim sağlar
BrokerAuthentication varsayılan SAT kimlik doğrulaması tanımı
BrokerAuthentication default-x509 x509 kimlik doğrulaması tanımı

MQTT aracı erişimi

Aşağıdaki tabloda açıklanan bağlantı bilgilerini kullanarak hem küme içi hem de küme dışı MQTT aracısı'na erişebilirsiniz. Uygulamanızı yapılandırırken hangi ortam değişkenlerinin kullanılacağı hakkında bilgi için bkz. Bağlantı Ayarları.

Uyarı

MQTT aracı küme dışı erişilirken, konak adı, kurulumunuza bağlı olarak localhost konumdan farklı olabilir.

Konak adı Kimlik doğrulama TLS Küme bağlantı noktasında Küme bağlantı noktası kapalı
aio-broker CUMARTESİ 18883 -
localhost Hiç kimse 1883 1883
localhost x509 8883 8883
localhost CUMARTESİ 8884 8884

Geliştirme artefaktları

Dağıtım betiğinin bir parçası olarak, yerel ortam MQTT aracısı ile bağlantıyı ve kimlik doğrulamayı kolaylaştırmak için aşağıdaki dosyaları oluşturur. Bu dosyaları depo kökündeki .session dizinde bulabilirsiniz.

Dosya Açıklama
broker-ca.crt MQTT aracısını 8883 ve 8884 bağlantı noktalarında doğrulamak için gereken MQTT aracısı güven paketi.
token.txt MQTT aracı üzerinde kimlik doğrulaması için hizmet kimlik doğrulama belirteci (SAT) 8884
client.crt Bağlantı noktasında MQTT aracısı ile kimlik doğrulaması için bir x509 istemci sertifikası 8883
client.key Bağlantı noktasında MQTT aracısı ile kimlik doğrulaması için bir x509 istemci özel anahtarı 8883

Sorun giderme

Azure IoT İşlemleri SDK'lar GitHub deposundaki yaygın sorunlar için sorun giderme kılavuzuna bakın.

Sonraki Adımlar

Bu hızlı başlangıçta, Azure IoT İşlemleri SDK'ları ayarladınız ve örnek bir uygulama çalıştıracaksınız. SDK'larla geliştirme hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara göz atın: