Konfigurieren von IoT Edge-Geräteeinstellungen

Dieser Artikel beschreibt Einstellungen und Optionen zum Konfigurieren der IoT Edge-Datei /etc/aziot/config.toml eines IoT Edge-Geräts. IoT Edge verwendet die Datei config.toml, um Einstellungen für das Gerät zu initialisieren. Jeder Abschnitt der Datei config.toml enthält mehrere Optionen. Nicht alle Optionen sind erforderlich, da sie für bestimmte Szenarien relevant sind.

Eine Vorlage mit allen Optionen finden Sie in der Datei config.toml.edge.template im Verzeichnis /etc/aziot auf einem IoT Edge-Gerät. Sie können den gesamten Inhalt der Vorlage oder Abschnitte davon in Ihre config.toml-Datei kopieren. Heben Sie die Auskommentierung der erforderlichen Abschnitte auf. Achten Sie darauf, bereits definierte Parameter nicht zu kopieren.

Wenn Sie die Konfiguration eines Geräts ändern, verwenden Sie sudo iotedge config apply, um die Änderungen anzuwenden.

Globale Parameter

Die Parameter hostname, parent_hostname, trust_bundle_cert, allow_elevated_docker_permissions und auto_reprovisioning_mode müssen am Anfang der Konfigurationsdatei vor allen anderen Abschnitten stehen. Das Hinzufügen von Parametern vor einer Sammlung von Einstellungen stellt sicher, dass sie korrekt angewendet werden. Weitere Informationen zur gültigen Syntax finden Sie unter toml.io.

Hostname

Damit die Gatewayermittlung möglich ist, muss jedes (übergeordnete) IoT Edge-Gatewaygerät den Parameter „hostname“ angeben, den die untergeordneten Geräte verwenden, um es im lokalen Netzwerk zu finden. Das edgeHub-Modul verwendet auch den Parameter „hostname“ für den Abgleich mit seinem Serverzertifikat. Weitere Informationen finden Sie unter Warum muss EdgeGateway über seinen eigenen Hostnamen informiert werden?.

Hinweis

Wenn der Wert von „hostname“ nicht festgelegt ist, versucht IoT Edge, ihn automatisch zu finden. Doch Clients im Netzwerk können das Gerät eventuell nicht erkennen, wenn er nicht festgelegt ist.

Ersetzen Sie fqdn-device-name-or-ip-address für hostname durch Ihren Gerätenamen, um den Standardhostnamen des Geräts außer Kraft zu setzen. Der Wert kann ein vollqualifizierter Domänenname (FQDN) oder eine IP-Adresse sein. Verwenden Sie diese Einstellung als Gatewayhostname bei einem IoT Edge-Gatewaygerät.

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

Hostname des übergeordneten Geräts

Der Hostname des übergeordneten Geräts wird verwendet, wenn das IoT Edge-Gerät Teil einer Hierarchie ist, auch als Nested Edge bezeichnet. Jedes nachgeschaltete IoT Edge-Gerät muss den Parameter parent_hostname angeben, um das übergeordnete Gerät zu identifizieren. In einem hierarchischen Szenario, in dem ein einzelnes IoT Edge-Gerät sowohl übergeordnetes als auch untergeordnetes Gerät ist, sind beide Parameter erforderlich.

Ersetzen Sie fqdn-parent-device-name-or-ip-address durch den Namen des übergeordneten Geräts. Verwenden Sie einen Hostnamen mit weniger als 64 Zeichen. Dies ist das Zeichenlimit für einen allgemeinen Namen für ein Serverzertifikat.

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

Weitere Informationen zum Festlegen des Parameters parent_hostname finden Sie unter Verknüpfen von Azure IoT Edge-Geräten zum Erstellen einer Hierarchie.

Vertrauenspaketzertifikat

Um ein benutzerdefiniertes Zertifikat einer Zertifizierungsstelle (ZS) als Vertrauensanker für IoT Edge und Module bereitzustellen, geben Sie eine trust_bundle_cert-Konfiguration an. Ersetzen Sie den Parameterwert durch den Datei-URI zum Zertifikat der Stammzertifizierungsstelle auf Ihrem Gerät.

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

Weitere Informationen zum IoT Edge-Vertrauenspaket finden Sie unter Verwalten einer vertrauenswürdigen Stammzertifizierungsstelle.

Erhöhte Docker-Berechtigungen

Einige Docker-Funktionen können verwendet werden, um Stammzugriff zu erhalten. Standardmäßig sind das Flag --privileged und alle Funktionen zulässig, die im Parameter CapAdd von HostConfig vom Docker aufgelistet sind.

Wenn keine Module privilegierte oder zusätzliche Funktionen erfordern, verwenden Sie allow_elevated_docker_permissions, um die Sicherheit des Geräts zu verbessern.

allow_elevated_docker_permissions = false

Modus für automatische erneute Bereitstellung

Der optionale Parameter auto_reprovisioning_mode gibt die Bedingungen an, die entscheiden, wann ein Gerät versucht, mit dem Device Provisioning Service automatisch eine erneute Bereitstellung durchzuführen. Der Modus für die automatische Bereitstellung wird ignoriert, wenn das Gerät manuell bereitgestellt wurde. Weitere Informationen zum Festlegen des DPS-Bereitstellungsmodus finden Sie im Abschnitt Bereitstellung in diesem Artikel.

Einer der folgenden Werte kann festgelegt werden:

Mode Beschreibung
Dynamisch Erneute Bereitstellung, wenn das Gerät erkennt, dass es möglicherweise von einem IoT Hub zu einem anderen verschoben wurde. Dieser Modus ist der Standardmodus.
AlwaysOnStartup Erneute Bereitstellung, wenn das Gerät neu gestartet wird oder ein Absturz dazu führt, dass die Daemons neu gestartet werden.
OnErrorOnly Löst niemals automatisch die erneute Bereitstellung des Geräts aus. Die erneute Bereitstellung des Geräts erfolgt nur als Fallback, wenn es während der Identitätsbereitstellung aufgrund von Verbindungsfehlern keine Verbindung mit IoT Hub herstellen kann. Dieses Fallbackverhalten ist auch in den Modi „Dynamic“ und „AlwaysOnStartup“ implizit.

Beispiel:

auto_reprovisioning_mode = "Dynamic"

Weitere Informationen zur erneuten Bereitstellung von Geräten finden Sie unter IoT Hub Device-Konzepte für die erneute Bereitstellung.

Bereitstellung

Sie können je nach Anforderungen Ihrer IoT-Edge-Lösung ein einzelnes Gerät oder mehrere Geräte im gewünschten Umfang bereitstellen. Die zur Authentifizierung der Kommunikation zwischen Ihren IoT Edge-Geräten und IoT-Hubs verfügbaren Optionen hängen von der gewählten Bereitstellungsmethode ab.

Sie können eine Bereitstellung mit einer Verbindungszeichenfolge, einem symmetrischen Schlüssel, einem X.509-Zertifikat, einem privaten Schlüssel für ein Identitätszertifikat oder einem Identitätszertifikat durchführen. Die DPS-Bereitstellung ist in verschiedenen Optionen enthalten. Wählen Sie eine Methode für die Bereitstellung aus. Ersetzen Sie die Beispielwerte durch Ihre eigenen.

Manuelle Bereitstellung mit Verbindungszeichenfolge

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

Weitere Informationen zum Abrufen von Bereitstellungsinformationen finden Sie unter Erstellen und Bereitstellen eines IoT Edge-Geräts unter Linux mithilfe von symmetrischen Schlüsseln.

Manuelle Bereitstellung mit symmetrischem Schlüssel

[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

Weitere Informationen zum Abrufen von Bereitstellungsinformationen finden Sie unter Erstellen und Bereitstellen eines IoT Edge-Geräts unter Linux mithilfe von symmetrischen Schlüsseln.

Manuelle Bereitstellung mit X.509-Zertifikat

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

[provisioning.authentication]
method = "x509"

Weitere Informationen zum Bereitstellen mit X.509-Zertifikaten finden Sie unter Erstellen und Bereitstellen eines IoT Edge-Geräts mithilfe von X.509-Zertifikaten.

DPS-Bereitstellung mit symmetrischem Schlüssel

[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" }    

Weitere Informationen zur DPS-Bereitstellung mit symmetrischem Schlüssel finden Sie unter Erstellen und Bereitstellen von loT Edge-Geräten in großem Umfang unter Linux mit symmetrischem Schlüssel.

DPS-Bereitstellung mit X.509-Zertifikaten

[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

(Optional) Aktivieren der automatischen Verlängerung des Geräte-ID-Zertifikats

Die automatische Verlängerung erfordert eine bekannte Zertifikatausstellungsmethode. Legen Sie method auf est oder local_ca fest.

Wichtig

Aktivieren Sie die automatische Verlängerung nur, wenn dieses Gerät für die ZS-basierte DPS-Registrierung konfiguriert ist. Wenn die automatische Verlängerung für eine einzelne Registrierung verwendet wird, kann das Gerät nicht erneut bereitgestellt werden.

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

Weitere Informationen zur DPS-Bereitstellung mit X.509-Zertifikaten finden Sie unter Erstellen und Bereitstellen eines IoT Edge-Geräts im großen Stil mithilfe von X.509-Zertifikaten.

DPS-Bereitstellung mit TPM (Trusted Platform Module)

[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"

Wenn Sie die DPS-Bereitstellung mit TPM verwenden und eine benutzerdefinierte Konfiguration benötigen, lesen Sie den Abschnitt TPM.

Weitere Informationen finden Sie unter Bedarfsgerechtes Erstellen und Bereitstellen von IoT Edge-Geräten mit einem TPM unter Linux.

Timeout- und Wiederholungsverhalten für Cloud

Diese Einstellungen steuern das Timeout und Wiederholungen für Cloudvorgänge, wie die Kommunikation mit dem Device Provisioning Service (DPS) während der Bereitstellung oder IoT Hub für die Modulidentitätserstellung.

Der Parameter cloud_timeout_sec ist die Frist in Sekunden für eine Netzwerkanforderung an Clouddienste. Zum Beispiel eine HTTP-Anforderung. Die Antwort des Clouddiensts muss vor Ablauf dieser Frist empfangen werden, sonst schlägt die Anforderung aufgrund eines Timeouts fehl.

Der Parameter cloud_retries steuert, wie oft eine Anforderung nach einem Fehlschlag des ersten Versuchs wiederholt werden kann. Der Client sendet immer mindestens eine Anforderung, deshalb entspricht der Wert der Anzahl an Wiederholungen, nachdem der erste Versuch fehlgeschlagen ist. Beispielsweise bedeutet cloud_retries = 2, dass der Client insgesamt drei Versuche unternimmt.

cloud_timeout_sec = 10
cloud_retries = 1

Zertifikatausstellung

Wenn Sie dynamisch ausgestellte Zertifikate konfiguriert haben, wählen Sie Ihre entsprechende Ausstellungsmethode aus und ersetzen Sie die Beispielwerte durch Ihre eigenen.

Zertifikatausstellung per EST

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

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

EST-ID-Zertifikat bereits auf dem Gerät

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-ID-Zertifikat per EST-Bootstrap-ID-Zertifikat angefordert

Authentifizierung mit einem TLS-Clientzertifikat, das einmal zum Erstellen des ersten EST-ID-Zertifikats verwendet wird. Nach der ersten Zertifikatausstellung werden identity_cert und identity_pk automatisch erstellt und für die zukünftige Authentifizierung und Verlängerungen verwendet. Der allgemeine Name des Antragstellers (Common Name, CN) vom generierten EST-ID-Zertifikat ist immer mit der konfigurierten Geräte-ID im Bereitstellungsabschnitt identisch. Diese Dateien müssen für die Benutzer aziotcs bzw. aziotks lesbar sein.

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"

Zertifikatausstellung über lokale Zertifizierungsstelle

[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 (Trusted Platform Module)

Wenn Sie eine spezielle Konfiguration für das TPM bei Verwendung der DPS-TPM-Bereitstellung benötigen, verwenden Sie diese TPM-Einstellungen.

Informationen zu akzeptablen TCTI-Ladezeichenfolgen finden Sie im Abschnitt 3.5 der TCG TSS 2.0 TPM Command Transmission Interface (TCTI) API Specification.

Wenn Sie eine leere Zeichenfolge festlegen, versucht die TCTI-Ladebibliothek, einen vordefinierten Satz von TCTI-Modulen der Reihe nach zu laden.

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

Der TPM-Index behält den DPS-Authentifizierungsschlüssel bei. Der Index wird als Offset von der Basisadresse für persistente Objekte wie 0x81000000 verwendet und muss im Bereich von 0x00_00_00 bis 0x7F_FF_FF liegen. Der Standardwert ist 0x00_01_00.

auth_key_index = "0x00_01_00"

Verwenden Sie bei Bedarf Autorisierungswerte für Endorsement- und Besitzerhierarchien. Standardmäßig sind diese Werte leere Zeichenfolgen.

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

PKCS#11

Wenn Sie PKCS#11-URIs verwendet haben, verwenden Sie die folgenden Parameter und ersetzen Sie die Werte durch Ihre PKCS#11-Konfiguration.

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

Standardmäßiger Edge-Agent

Wenn IoT Edge erstmals gestartet wird, startet es ein standardmäßiges Edge-Agent-Modul. Wenn Sie die Parameter überschreiben müssen, die für das standardmäßige Edge-Agent-Modul bereitgestellt werden, verwenden Sie diesen Abschnitt und ersetzen Sie die Werte durch Ihre eigenen.

Hinweis

Der Parameter agent.config.createOptions wird als TOML-Inlinetabelle angegeben. Dieses Format sieht wie JSON aus, ist aber nicht JSON. Weitere Informationen finden Sie unter Inline Table in der TOML v1.0.0-Dokumentation.

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

[agent.config]
image = "mcr.microsoft.com/azureiotedge-agent:1.5"
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"

Daemonverwaltungs- und Workload-API-Endpunkte

Wenn Sie die Verwaltungs- und Workload-API-Endpunkte außer Kraft setzen müssen, verwenden Sie diesen Abschnitt und ersetzen Sie die Werte durch Ihre eigenen.

[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-Agent-Watchdog

Wenn Sie die Einstellungen des standardmäßigen Edge-Agent-Watchdog außer Kraft setzen müssen, verwenden Sie diesen Abschnitt und ersetzen Sie die Werte durch Ihre eigenen.

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

Zertifikat der Edgezertifizierungsstelle

Wenn Sie über ein eigenes Edge-ZS-Zertifikat verfügen, das alle Ihre Modulzertifikate ausstellt, verwenden Sie einen dieser Abschnitte und ersetzen Sie die Werte durch Ihre eigenen.

Edge-ZS-Zertifikat aus einer Datei geladen

[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

Edge-ZS-Zertifikat per EST ausgestellt

[edge_ca]
method = "est"

Weitere Informationen zur Verwendung eines EST-Servers finden Sie im Tutorial: Konfigurieren der Registrierung über Secure Transport Server für Azure IoT Edge.

Optionale EST-Konfiguration zum Ausstellen des Edge-ZS-Zertifikats

Wenn dies nicht festgelegt wird, werden die Standardwerte in [cert_issuance.est] verwendet.

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

username = "estuser"
password = "estpwd"

EST-ID-Zertifikat bereits auf dem Gerät

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-ID-Zertifikat per EST-Bootstrap-ID-Zertifikat angefordert

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

Edge-ZS-Zertifikat von einem lokalen ZS-Zertifikat ausgestellt

Erfordert Festlegung von [cert_issuance.local_ca].

[edge_ca]
method = "local_ca"

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

Edge-ZS-Schnellstartzertifikate

Wenn Sie nicht über ein eigenes Edge-ZS-Zertifikat verfügen, das zur Ausstellung aller Modulzertifikate verwendet wird, verwenden Sie diesen Abschnitt und legen Sie die Anzahl der Tage für die Lebensdauer des automatisch generierten, selbstsignierten Edge-ZS-Zertifikats fest. Der Standardwert für den Ablauf ist 90 Tage.

Achtung

Diese Einstellung wird NICHT für die Verwendung in der Produktion empfohlen. Bitte konfigurieren Sie Ihr eigenes Edge-ZS-Zertifikat in den Edge-ZS-Zertifikatsabschnitten.

[edge_ca]
auto_generated_edge_ca_expiry_days = 90

Automatische Verlängerung des Edge-ZS-Zertifikats

Diese Einstellung verwaltet die automatische Verlängerung des Edge-ZS-Zertifikats. Die automatische Verlängerung wird angewandt, wenn Schnellstart für die Edge-ZS konfiguriert ist oder wenn eine method für die Ausstellung von der Edge-ZS festgelegt ist. Edge-ZS-Zertifikate, die aus Dateien geladen werden, können in der Regel nicht automatisch verlängert werden, da die Edge-Runtime nicht über genügend Informationen verfügt, um sie zu verlängern.

Wichtig

Um eine Edge-ZS zu verlängern, müssen alle Serverzertifikate, die von dieser ZS ausgestellt wurden, erneut generiert werden. Diese erneute Generierung erfolgt durch einen Neustart aller Module. Der Zeitpunkt der Edge-ZS-Verlängerung kann nicht garantiert werden. Wenn zufällige Modulneustarts für Ihren Anwendungsfall inakzeptabel sind, deaktivieren Sie die automatische Verlängerung.

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

Automatische Speicherbereinigung für Images

Wenn Sie die Standardkonfiguration der automatischen Speicherbereinigung für Images außer Kraft setzen müssen, verwenden Sie diesen Abschnitt und ersetzen Sie die Werte in diesem Abschnitt durch Ihre eigenen.

Parameter Beschreibung
enabled Führt automatische Speicherbereinigung für Images aus
cleanup_recurrence Häufigkeit der Ausführung der automatischen Speicherbereinigung für Images
image_age_cleanup_threshold Das Alter nicht verwendeter Images. Images, deren Alter den Schwellenwert überschreitet, werden entfernt
cleanup_time 24-Stunden-Format HH:MM. Ausführungszeit des Bereinigungsauftrags
[image_garbage_collection]
enabled = true
cleanup_recurrence = "1d"
image_age_cleanup_threshold = "7d"
cleanup_time = "00:00"

Moby-Runtime

Wenn Sie die standardmäßige Moby-Runtime-Konfiguration außer Kraft setzen müssen, verwenden Sie diesen Abschnitt und ersetzen Sie die Werte durch Ihre eigenen.

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