IoT Edge cihaz ayarlarını yapılandırma

Şunun için geçerlidir:IoT Edge 1.6 onay işareti IoT Edge 1.6

Önemli

IoT Edge 1.6 LTS desteklenen sürümdür. IoT Edge 1.5 LTS desteği 10 Kasım 2026'da sona erer; IoT Edge 1.4 LTS, 12 Kasım 2024'te ömrünün sonuna ulaştı. Önceki bir sürümü kullanıyorsanız bkz. Update IoT Edge.

Bu makalede, IoT Edge cihazın IoT Edge /etc/aziot/config.toml dosyasını yapılandırmaya yönelik ayarlar ve seçenekler gösterilir. IoT Edge, cihazın ayarlarını başlatmak için config.toml dosyasını kullanır. config.toml dosyasının bölümlerinin her birinde çeşitli seçenekler bulunur. Belirli senaryolar için geçerli olduğundan tüm seçenekler zorunlu değildir.

Tüm seçenekleri içeren bir şablon IoT Edge cihazdaki config.toml.edge.template dosyasında /etc/aziot dizininde bulunabilir. Şablonun tamamının veya şablonun bölümlerinin içeriğini config.toml dosyanıza kopyalayabilirsiniz. İhtiyacınız olan bölümleri yorumdan çıkarın. Daha önce tanımladığınız parametrelerin üzerine kopyalamamaya dikkat edin.

Bir cihazın yapılandırmasını değiştirirseniz, değişiklikleri uygulamak için kullanın sudo iotedge config apply .

Genel parametreler

Konak adı, parent_hostname, trust_bundle_cert, allow_elevated_docker_permissions ve auto_reprovisioning_mode parametreleri diğer bölümlerden önce yapılandırma dosyasının başında olmalıdır. Bir ayar koleksiyonundan önce parametre eklemek, bunların doğru şekilde uygulanmasını sağlar. Geçerli söz dizimi hakkında daha fazla bilgi için bkz . toml.io.

Konak adı

Ağ geçidi bulmayı etkinleştirmek için, her IoT Edge ağ geçidi (ana) cihazının, alt cihazların yerel ağda onu bulmak için kullanacağı bir konak adı parametresi belirtmesi gerekir. EdgeHub modülü, sunucu sertifikasıyla eşleştirmek için hostname parametresini de kullanır. Daha fazla bilgi için bkz. EdgeGateway'in neden kendi ana bilgisayar adı hakkında bilgi sahibi olması gerekiyor?

Not

Ana bilgisayar adı değeri ayarlanmamışsa, IoT Edge bunu otomatik olarak bulmaya çalışır. Ancak, ağdaki istemciler ayarlanmadıysa cihazı bulamayabilir.

Cihazın varsayılan bilgisayar adını değiştirmek için bilgisayar adı kısmında fqdn-device-name-or-ip-address değerini cihazınızın adıyla değiştirin. Değer, tam etki alanı adı (FQDN) veya IP adresi olabilir. Bu ayarı bir IoT Edge ağ geçidi cihazında ağ geçidi ana bilgisayar adı olarak kullanın.

hostname = "fqdn-device-name-or-ip-address"

Ana bilgisayar adı

Ana bilgisayar adı, IoT Edge cihazı bir hiyerarşinin parçası olduğunda kullanılır; aksi halde iç içe geçmiş kenar olarak bilinir. Her aşağı akış IoT Edge cihazının üst öğesini belirlemek için bir parent_hostname parametresi belirtmesi gerekir. Tek bir IoT Edge cihazının hem üst hem de alt cihaz olduğu hiyerarşik bir senaryoda, her iki parametreye de ihtiyacı vardır.

fqdn-parent-device-name-or-ip-address ifadesini üst cihazınızın adıyla değiştirin. Sunucu sertifikası ortak adı için karakter sınırı 64'tür, bu nedenle 64 karakterden kısa bir host adı kullanın.

parent_hostname = "fqdn-parent-device-name-or-ip-address"

parent_hostname parametresini ayarlama hakkında daha fazla bilgi için bkz. Bir hiyerarşi oluşturmak için Azure IoT Edge cihazları bağlama.

Paket sertifikasına güven

IoT Edge ve modüller için güven kökü olarak özel bir sertifika yetkilisi (CA) sertifikası sağlamak için bir trust_bundle_cert yapılandırması belirtin. Parametre değerini dosya URI'siyle cihazınızdaki kök CA sertifikasıyla değiştirin.

trust_bundle_cert = "file:///var/aziot/certs/trust-bundle.pem"

IoT Edge güven paketi hakkında daha fazla bilgi için bkz. Güvenilen kök CA'yı yönetme (güven paketi).

Yükseltilmiş Docker İzinleri

Kök erişim kazanmak için bazı docker özellikleri kullanılabilir. Varsayılan olarak, --privileged bayrağı ve docker HostConfig içindeki CapAdd parametresinde listelenen tüm özelliklere izin verilir.

Ayrıcalıklı veya ek özellikler gerektiren modül yoksa, cihazın güvenliğini artırmak için allow_elevated_docker_permissions kullanın.

allow_elevated_docker_permissions = false

Otomatik yeniden provizyon modu

İsteğe bağlı auto_reprovisioning_mode parametresi, bir cihazın Cihaz Sağlama Hizmeti ile otomatik olarak yeniden sağlamayı ne zaman deneyeceğine karar veren koşulları belirtir. Cihaz el ile yapılandırılırsa otomatik yapılandırma modu yoksayılır. DPS sağlama modunu ayarlama hakkında daha fazla bilgi için bu makaledeki Sağlama bölümüne bakın.

Aşağıdaki değerlerden biri ayarlanabilir:

Çalışma Modu Açıklama
Dinamik Cihaz, bir IoT Hub'dan diğerine taşınmış olabileceğini algılandığında yeniden yapılandırma yapılır. Bu mod varsayılandır.
AlwaysOnStartup Cihaz yeniden başlatıldığında veya bir kilitlenme, daemon'ların yeniden başlatılmasına neden olduğunda yeniden sağlama.
OnErrorOnly Cihaz yeniden sağlamayı hiçbir zaman otomatik olarak tetiklemeyin. Cihazın yeniden sağlanması, bağlantı hataları nedeniyle kimlik sağlama sırasında IoT Hub'a bağlanamadığında yalnızca yedek bir çözüm olarak gerçekleştirilir. Bu geri dönüş davranışı, Dinamik ve AlwaysOnStartup modlarında da örtük olarak bulunur.

Örneğin:

auto_reprovisioning_mode = "Dynamic"

Cihaz yeniden sağlama hakkında daha fazla bilgi için bkz. IoT Hub Cihaz yeniden sağlama kavramları.

Sağlama

IoT Edge çözümünüzün gereksinimlerine bağlı olarak, uygun ölçekte tek bir cihaz veya birden çok cihaz sağlayabilirsiniz. IoT Edge cihazlarınız ile IoT hub'larınız arasındaki iletişimlerin kimliğini doğrulamak için kullanılabilen seçenekler, seçtiğiniz sağlama yöntemine bağlıdır.

Bir bağlantı dizesi, simetrik anahtar, X.509 sertifikası, kimlik sertifikası özel anahtarı veya kimlik sertifikası ile tanımlama yapabilirsiniz. DPS sağlama, çeşitli seçeneklere dahildir. Sağlama işleminiz için bir yöntem seçin. Örnek değerleri kendi değerlerinizle değiştirin.

bağlantı dizesi ile manuel sağlama

[provisioning]
source = "manual"
connection_string = "HostName=example.azure-devices.net;DeviceId=my-device;SharedAccessKey=<Shared access key>"

Sağlama bilgilerini alma hakkında daha fazla bilgi için bkz. Simetrik anahtarları kullanarak Linux'ta IoT Edge cihazı oluşturma ve sağlama.

Simetrik anahtarla manuel sağlama

[provisioning]
source = "manual"
iothub_hostname = "example.azure-devices.net"
device_id = "my-device"

[provisioning.authentication]
method = "sas"

device_id_pk = { value = "<Shared access key>" }     # inline key (base64), or...
device_id_pk = { uri = "file:///var/aziot/secrets/device-id.key" }            # file URI, or...
device_id_pk = { uri = "pkcs11:slot-id=0;object=device%20id?pin-value=1234" } # PKCS#11 URI

Sağlama bilgilerini alma hakkında daha fazla bilgi için bkz. Simetrik anahtarları kullanarak Linux'ta IoT Edge cihazı oluşturma ve sağlama.

X.509 sertifikasıyla manuel sağlama

[provisioning]
source = "manual"
iothub_hostname = "example.azure-devices.net"
device_id = "my-device"

[provisioning.authentication]
method = "x509"

X.509 sertifikalarını kullanarak sağlama hakkında daha fazla bilgi için bkz. X.509 sertifikalarını kullanarak Linux'ta IoT Edge cihazı oluşturma ve sağlama.

Simetrik anahtarla DPS sağlama işlemi

[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "<DPS-ID-SCOPE>"

# (Optional) Use to send a custom payload during DPS registration
payload = { uri = "file:///var/secrets/aziot/identityd/dps-additional-data.json" }

[provisioning.attestation]
method = "symmetric_key"
registration_id = "my-device"

symmetric_key = { value = "<Device symmetric key>" } # inline key (base64), or...
symmetric_key = { uri = "file:///var/aziot/secrets/device-id.key" }                                                          # file URI, or...
symmetric_key = { uri = "pkcs11:slot-id=0;object=device%20id?pin-value=1234" }    

Simetrik anahtarla DPS sağlama hakkında daha fazla bilgi için bkz. Simetrik anahtarları kullanarak Linux'ta uygun ölçekte IoT Edge cihazları oluşturma ve sağlama.

X.509 sertifikalarıyla DPS sağlama

[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net/"
id_scope = "<DPS-ID-SCOPE>"

# (Optional) Use to send a custom payload during DPS registration
 payload = { uri = "file:///var/secrets/aziot/identityd/dps-additional-data.json" }

[provisioning.attestation]
method = "x509"
registration_id = "my-device"

# Identity certificate private key
identity_pk = "file:///var/aziot/secrets/device-id.key.pem"        # file URI, or...
identity_pk = "pkcs11:slot-id=0;object=device%20id?pin-value=1234" # PKCS#11 URI

# Identity certificate
identity_cert = "file:///var/aziot/certs/device-id.pem"     # file URI, or...
[provisioning.authentication.identity_cert]                 # dynamically issued via...
method = "est"                                              # - EST
method = "local_ca"                                         # - a local CA
common_name = "my-device"                                   # with the given common name, or...
subject = { L = "AQ", ST = "Antarctica", CN = "my-device" } # with the given DN fields

(İsteğe bağlı) Cihaz kimliği sertifikasının otomatik olarak yenilenmesini etkinleştirme

Autorenewal bilinen bir sertifika verme yöntemi gerektirir. Yöntemi veya est olarak ayarlayın.

Önemli

Otomatik yeniden oluşturmayı yalnızca bu cihaz CA tabanlı DPS kaydı için yapılandırılmışsa etkinleştirin. Bireysel bir kayıt için otomatik yenilemenin kullanılması, cihazın yeniden sağlanamamasına neden olur.

[provisioning.attestation.identity_cert.auto_renew]
rotate_key = true
threshold = "80%"
retry = "4%"

X.509 sertifikalarıyla DPS sağlama hakkında daha fazla bilgi için bkz. X.509 sertifikalarını kullanarak Linux'ta uygun ölçekte IoT Edge cihazları oluşturma ve sağlama.

TPM ile DPS sağlama (Güvenilen Platform Modülü)

[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "<DPS-ID-SCOPE>"

# (Optional) Use to send a custom payload during DPS registration
payload = { uri = "file:///var/secrets/aziot/identityd/dps-additional-data.json" }

[provisioning.attestation]
method = "tpm"
registration_id = "my-device"

TPM ile DPS sağlamayı kullanıyorsanız ve özel yapılandırma gerektiriyorsanız TPM bölümüne bakın.

Daha fazla bilgi için bkz. Linux üzerinde TPM ile IoT Edge cihazları uygun ölçekte oluşturma ve sağlama.

Bulut Zaman Aşımı ve Yeniden Deneme Davranışı

Bu ayarlar, sağlama sırasında Cihaz Sağlama Hizmeti (DPS) ile iletişim veya modül kimliği oluşturma için IoT Hub gibi bulut işlemleri için zaman aşımını ve yeniden denemeleri denetler.

cloud_timeout_sec parametresi, bulut hizmetlerine yönelik bir ağ isteğinin saniyeler içinde son tarihidir. Örneğin, bir HTTP isteği. Bu son tarihten önce bulut hizmetinden bir yanıt alınmalıdır veya istek zaman aşımı olarak başarısız olur.

cloud_retries parametresi, ilk deneme başarısız olduktan sonra isteğin kaç kez yeniden denenebileceğini denetler. İstemci her zaman en az bir kez gönderir, bu nedenle ilk deneme başarısız olduktan sonra değer yeniden deneme sayısıdır. Örneğin, cloud_retries = 2 istemcinin toplam üç deneme yaptığı anlamına gelir.

cloud_timeout_sec = 10
cloud_retries = 1

Sertifika verme

Dinamik olarak verilen sertifikaları yapılandırdıysanız, karşılık gelen verme yönteminizi seçin ve örnek değerleri kendi sertifikanızla değiştirin.

EST aracılığıyla sertifika verme

[cert_issuance.est]
trusted_certs = ["file:///var/aziot/certs/est-id-ca.pem",]

[cert_issuance.est.auth]
username = "estuser"
password = "estpwd"

CIHAZDA zaten est id sertifikası var

identity_cert = "file:///var/aziot/certs/est-id.pem"

identity_pk = "file:///var/aziot/secrets/est-id.key.pem"      # file URI, or...
identity_pk = "pkcs11:slot-id=0;object=est-id?pin-value=1234" # PKCS#11 URI

EST Bootstrap ID sertifikası aracılığıyla istenen EST ID sertifikası

İlk EST Kimliği sertifikasını oluşturmak için bir kez kullanılan bir TLS istemci sertifikasıyla kimlik doğrulaması. İlk sertifikanın verilmesinden sonra, bir identity_cert ve bir identity_pk otomatik olarak oluşturulur ve gelecekteki kimlik doğrulaması ve yenilemeler için kullanılır. Oluşturulan EST Kimliği sertifikasının Konu Ortak Adı (CN), sağlama bölümünde yapılandırılan cihaz kimliğiyle her zaman aynıdır. Bu dosyalar sırasıyla aziotcs ve aziotks kullanıcıları tarafından okunabilir olmalıdır.

bootstrap_identity_cert = "file:///var/aziot/certs/est-bootstrap-id.pem"

bootstrap_identity_pk = "file:///var/aziot/secrets/est-bootstrap-id.key.pem"      # file URI, or...
bootstrap_identity_pk = "pkcs11:slot-id=0;object=est-bootstrap-id?pin-value=1234" # PKCS#11 URI

# The following parameters control the renewal of EST identity certs. These certs are issued by the EST server after initial authentication with the bootstrap cert and managed by Certificates Service.

[cert_issuance.est.identity_auto_renew]
rotate_key = true
threshold = "80%"
retry = "4%"

[cert_issuance.est.urls]
default = "https://example.org/.well-known/est"

Yerel CA aracılığıyla sertifika verme

[cert_issuance.local_ca]
cert = "file:///var/aziot/certs/local-ca.pem"

pk = "file:///var/aziot/secrets/local-ca.key.pem"      # file URI, or...
pk = "pkcs11:slot-id=0;object=local-ca?pin-value=1234" # PKCS#11 URI

TPM (Güvenilen Platform Modülü)

DPS TPM sağlamayı kullanırken TPM için özel yapılandırmaya ihtiyacınız varsa, bu TPM ayarlarını kullanın.

Kabul edilebilir TCTI yükleyici dizeleri için TCG TSS 2.0 TPM Komut İletim Arabirimi (TCTI) API Belirtimi'nin 3.5. bölümüne bakın.

Boş bir dizeye ayarlanması, TCTI yükleyici kitaplığının önceden tanımlanmış bir TCTI modülü kümesini sırayla yüklemeyi denemesine neden olur.

[tpm]
tcti = "swtpm:port=2321"

TPM dizini DPS kimlik doğrulama anahtarını kalıcı hale getirmektedir. Dizin, 0x81000000 gibi kalıcı nesneler için temel adresten bir uzaklık (sapma) olarak alınır ve 0x00_00_00 ile 0x7F_FF_FF arasında yer almalıdır. Varsayılan değer 0x00_01_00 değeridir.

auth_key_index = "0x00_01_00"

Gerekirse onay ve sahip hiyerarşileri için yetkilendirme değerlerini kullanın. Varsayılan olarak, bu değerler boş dizelerdir.

[tpm.hierarchy_authorization]
endorsement = "hello"
owner = "world"

PKCS#11

Herhangi bir PKCS#11 URI'sini kullandıysanız, aşağıdaki parametreleri kullanın ve değerleri PKCS#11 yapılandırmanızla değiştirin.

[aziot_keys]
pkcs11_lib_path = "/usr/lib/libmypkcs11.so"
pkcs11_base_slot = "pkcs11:slot-id=0?pin-value=1234"

Varsayılan Edge Aracısı

IoT Edge ilk kez başlatıldığında, varsayılan bir Edge Aracısı modülünü önyükler. Varsayılan Edge Aracısı modülüne sağlanan parametreleri geçersiz kılmanız gerekiyorsa, bu bölümü kullanın ve değerleri kendi değerlerinizle değiştirin.

Not

agent.config.createOptions parametresi bir TOML satır içi tablosu olarak belirtilir. Bu biçim JSON gibi görünür ancak JSON değildir. Daha fazla bilgi için TOML v1.0.0 belgelerinin Satır içi Tablosu'na bakın.

[agent]
name = "edgeAgent"
type = "docker"
imagePullPolicy = "..."   # "on-create" or "never". Defaults to "on-create"

[agent.config]
image = "mcr.microsoft.com/azureiotedge-agent:1.6"
createOptions = { HostConfig = { Binds = ["/iotedge/storage:/iotedge/storage"] } }

[agent.config.auth]
serveraddress = "example.azurecr.io"
username = "username"
password = "password"

[agent.env]
RuntimeLogLevel = "debug"
UpstreamProtocol = "AmqpWs"
storageFolder = "/iotedge/storage"

Daemon yönetimi ve iş yükü API'si uç noktaları

Yönetim ve iş yükü API'sinin uç noktalarını geçersiz kılmanız gerekiyorsa, bu bölümü kullanın ve değerleri kendi değerlerinizle değiştirin.

[connect]
workload_uri = "unix:///var/run/iotedge/workload.sock"
management_uri = "unix:///var/run/iotedge/mgmt.sock"

[listen]
workload_uri = "unix:///var/run/iotedge/workload.sock"
management_uri = "unix:///var/run/iotedge/mgmt.sock"

Edge Ajanı İzleyici

Varsayılan Edge Aracısı izleme ayarlarını geçersiz kılmanız gerekiyorsa, bu bölümü kullanın ve değerleri kendi değerlerinizle değiştirin.

[watchdog]
max_retries = "infinite"   # the string "infinite" or a positive integer. Defaults to "infinite"

Edge CA sertifikası

Tüm modül sertifikalarınızı veren kendi Edge CA sertifikanız varsa, bu bölümlerden birini kullanın ve değerleri kendi sertifikanızla değiştirin.

Dosyadan yüklenen Edge CA sertifikası

[edge_ca]
cert = "file:///var/aziot/certs/edge-ca.pem"            # file URI

pk = "file:///var/aziot/secrets/edge-ca.key.pem"        # file URI, or...
pk = "pkcs11:slot-id=0;object=edge%20ca?pin-value=1234" # PKCS#11 URI

EST üzerinden verilen Edge CA sertifikası

[edge_ca]
method = "est"

EST sunucusu kullanma hakkında daha fazla bilgi için bkz. Tutorial: Azure IoT Edge için Güvenli Aktarım Sunucusu üzerinden Kaydı Yapılandırma.

Edge CA sertifikasını veren isteğe bağlı EST yapılandırması

Ayarlanmazsa , [cert_issuance.est] içindeki varsayılan değerler kullanılır.

common_name = "aziot-edge CA"
expiry_days = 90
url = "https://example.org/.well-known/est"

username = "estuser"
password = "estpwd"

CIHAZDA zaten est id sertifikası var

identity_cert = "file:///var/aziot/certs/est-id.pem"

identity_pk = "file:///var/aziot/secrets/est-id.key.pem"      # file URI, or...
identity_pk = "pkcs11:slot-id=0;object=est-id?pin-value=1234" # PKCS#11 URI

EST Bootstrap ID sertifikası aracılığıyla istenen EST ID sertifikası

bootstrap_identity_cert = "file:///var/aziot/certs/est-bootstrap-id.pem"

bootstrap_identity_pk = "file:///var/aziot/secrets/est-bootstrap-id.key.pem"      # file URI, or...
bootstrap_identity_pk = "pkcs11:slot-id=0;object=est-bootstrap-id?pin-value=1234" # PKCS#11 URI

Yerel CA sertifikasından verilen Edge CA sertifikası

[cert_issuance.local_ca] Ayarlanması gerekir.

[edge_ca]
method = "local_ca"

# Optional configuration
common_name = "aziot-edge CA"
expiry_days = 90

Edge CA hızlı başlangıç sertifikaları

Tüm modül sertifikalarını vermek için kullanılan kendi Edge CA sertifikanız yoksa, bu bölümü kullanın ve otomatik olarak oluşturulan otomatik olarak imzalanan Edge CA sertifikasının kullanım ömrü için gün sayısını ayarlayın. Süre sonu varsayılan olarak 90 gündür.

Dikkat

Bu ayar üretim kullanımı için ÖNERILMEZ. Edge CA sertifikası bölümlerinde kendi Edge CA sertifikanızı yapılandırın.

[edge_ca]
auto_generated_edge_ca_expiry_days = 90

Edge CA sertifikası otomatik yeniden oluşturma

Bu ayar, Edge CA sertifikasının otomatik olarak yenisini yönetir. Otomatik yenileme, Edge CA'sı hızlı başlangıç olarak yapılandırıldığında veya Edge CA'da bir verme method kümesi olduğunda uygulanır. Edge çalışma zamanı bunları yenilemek için yeterli bilgiye sahip olmadığından, dosyalardan yüklenen Edge CA sertifikaları genellikle otomatik olarak yenilenemez.

Önemli

Edge CA'sının yenilenmesi, bu CA tarafından verilen tüm sunucu sertifikalarının yeniden üretilmesi gerekir. Bu yeniden oluşturma işlemi tüm modüllerin yeniden başlatılmasıyla gerçekleştirilir. Edge CA yenileme süresi garanti edilemiyor. Rastgele modül yeniden başlatmaları kullanım örneğinde kabul edilemezse [edge_ca.auto_renew] bölümünü dahil etmeyerek otomatik yenilemeyi devre dışı bırakın.

[edge_ca.auto_renew]
rotate_key = true
threshold = "80%"
retry = "4%"

Görüntü çöp toplama

Varsayılan görüntü çöp toplama yapılandırmasını geçersiz kılmanız gerekiyorsa, bu bölümü kullanın ve bu bölümdeki değerleri kendi değerlerinizle değiştirin.

Parametre Açıklama
enabled Görüntü çöp toplama işlemini başlatır
cleanup_recurrence Görüntü çöp toplama işleminin ne sıklıkta çalışmasını istiyorsunuz?
image_age_cleanup_threshold Kullanılmayan görüntülerin yaşı. Eşikten daha eski görüntüler kaldırılır
cleanup_time 24 saat HH:MM biçimi. Temizleme işi çalıştırıldığında
[image_garbage_collection]
enabled = true
cleanup_recurrence = "1d"
image_age_cleanup_threshold = "7d"
cleanup_time = "00:00"

Moby çalışma zamanı

Varsayılan Moby çalışma zamanı yapılandırmasını geçersiz kılmanız gerekiyorsa, bu bölümü kullanın ve değerleri kendi değerlerinizle değiştirin.

[moby_runtime]
uri = "unix:///var/run/docker.sock"
network = "azure-iot-edge"