Öğretici: Bağlı kayıt defterini iç içe IoT Edge hiyerarşisine dağıtma
Bu öğreticide, Azure CLI komutlarını kullanarak Azure IoT Edge cihazlarının iki katmanlı hiyerarşisini oluşturacak ve bağlı bir kayıt defterini her katmanda modül olarak dağıtacaksınız. Bu senaryoda , üst katmandaki bir cihaz bir bulut kayıt defteriyle iletişim kurar. Alt katmandaki bir cihaz, üst katmandaki bağlı kayıt defteri üst öğesiyle iletişim kurar.
IoT Edge ile bağlı kayıt defterini kullanmaya genel bakış için bkz. Azure IoT Edge ile bağlı kayıt defterini kullanma.
Önkoşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell'de Bash için Hızlı Başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yi yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz. Azure CLI'yi Docker kapsayıcısında çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
Azure IoT Hub. Dağıtım adımları için bkz. Azure portal kullanarak IoT hub'ı oluşturma.
Azure'da iki bağlı kayıt defteri kaynağı. Dağıtım adımları için bkz. Azure CLI veya Azure portal kullanarak hızlı başlangıçlar.
- En üst katman için bağlı kayıt defteri ReadWrite veya ReadOnly modunda olabilir. Bu makalede ReadWrite modu varsayılır ve bağlı kayıt defteri adı ortam değişkeninde
$CONNECTED_REGISTRY_RW
depolanır. - Alt katman için bağlı kayıt defterinin ReadOnly modunda olması gerekir. Bu makalede, bağlı kayıt defteri adının ortam değişkeninde
$CONNECTED_REGISTRY_RO
depolandığı varsayılır.
- En üst katman için bağlı kayıt defteri ReadWrite veya ReadOnly modunda olabilir. Bu makalede ReadWrite modu varsayılır ve bağlı kayıt defteri adı ortam değişkeninde
Görüntüleri bulut kayıt defterinize aktarma
az acr import komutunu kullanarak aşağıdaki kapsayıcı görüntülerini bulut kayıt defterinize aktarın. Bu görüntüleri zaten içeri aktardıysanız bu adımı atlayın.
Bağlı kayıt defteri görüntüsü
İç içe IoT Edge senaryolarını desteklemek için, bağlı kayıt defteri çalışma zamanının kapsayıcı görüntüsü özel Azure kapsayıcı kayıt defterinizde kullanılabilir olmalıdır. Bağlı kayıt defteri görüntüsünü özel kayıt defterinize aktarmak için az acr import komutunu kullanın.
# Use the REGISTRY_NAME variable in the following Azure CLI commands to identify the registry
REGISTRY_NAME=<container-registry-name>
az acr import \
--name $REGISTRY_NAME \
--source mcr.microsoft.com/acr/connected-registry:0.8.0
IoT Edge ve API proxy görüntüleri
İç içe IoT Edge bağlı kayıt defterini desteklemek için IoT Edge ve API ara sunucusu için modülleri dağıtmanız gerekir. Bu görüntüleri özel kayıt defterinize aktarınız.
IoT Edge API ara sunucusu modülü, bir IoT Edge cihazının HTTPS protokolünü kullanarak 443 gibi aynı bağlantı noktasında birden çok hizmeti kullanıma sunmasına olanak tanır.
az acr import \
--name $REGISTRY_NAME \
--source mcr.microsoft.com/azureiotedge-agent:1.2.4
az acr import \
--name $REGISTRY_NAME \
--source mcr.microsoft.com/azureiotedge-hub:1.2.4
az acr import \
--name $REGISTRY_NAME \
--source mcr.microsoft.com/azureiotedge-api-proxy:1.1.2
az acr import \
--name $REGISTRY_NAME \
--source mcr.microsoft.com/azureiotedge-diagnostics:1.2.4
Hello-world resmi
Bağlı kayıt defterini test için görüntüyü içeri aktarın hello-world
. Bu depo, bağlı kayıt defteriyle eşitlenir ve bağlı kayıt defteri istemcileri tarafından çekilir.
az acr import \
--name $REGISTRY_NAME \
--source mcr.microsoft.com/hello-world:1.1.2
Bağlı kayıt defteri yapılandırmasını alma
Her bağlı kayıt defterini hiyerarşideki IoT Edge cihazına dağıtmak için Azure'daki bağlı kayıt defteri kaynağından yapılandırma ayarlarını almanız gerekir. Gerekirse, yapılandırmayı almak için her bağlı kayıt defteri için az acr connected-registry get-settings komutunu çalıştırın.
Varsayılan olarak, ayarlar bilgileri, bağlı kayıt defterini dağıtmak için de gereken eşitleme belirteci parolasını içermez. İsteğe bağlı olarak, veya --generate-password 2
parametresini geçirerek --generate-password 1
parolalardan birini oluşturun. Oluşturulan parolayı güvenli bir konuma kaydedin. Yeniden alınamaz.
Uyarı
Parolayı yeniden oluşturmak, eşitleme belirteci kimlik bilgilerini döndürür. Önceki parolayı kullanarak bir cihaz yapılandırdıysanız yapılandırmayı güncelleştirmeniz gerekir.
# Use the REGISTRY_NAME variable in the following Azure CLI commands to identify the registry
REGISTRY_NAME=<container-registry-name>
# Run the command for each registry resource in the hierarchy
az acr connected-registry get-settings \
--registry $REGISTRY_NAME \
--name $CONNECTED_REGISTRY_RW \
--parent-protocol https
az acr connected-registry get-settings \
--registry $REGISTRY_NAME \
--name $CONNECTED_REGISTRY_RO \
--parent-protocol https
Komut çıkışı kayıt defteri bağlantı dizesini ve ilgili ayarları içerir. Aşağıdaki örnek çıktıda, contosoregistry üst kayıt defteriyle myconnectedregistry adlı bağlı kayıt defterinin bağlantı dizesi gösterilmektedir:
{
"ACR_REGISTRY_CONNECTION_STRING": "ConnectedRegistryName=myconnectedregistry;SyncTokenName=myconnectedregistry-sync-token;SyncTokenPassword=xxxxxxxxxxxxxxxx;ParentGatewayEndpoint=contosoregistry.eastus.data.azurecr.io;ParentEndpointProtocol=https"
}
Dağıtım bildirimlerini yapılandırma
Dağıtım bildirimi, bir IoT Edge cihazına dağıtılacak modülleri açıklayan bir JSON belgesidir. Daha fazla bilgi için bkz. IoT Edge modüllerinin nasıl kullanılabileceğini, yapılandırılabileceğini ve yeniden kullanılabileceğini anlama.
Bağlı kayıt defteri modülünü Azure CLI kullanarak her IoT Edge cihazına dağıtmak için aşağıdaki dağıtım bildirimlerini yerel olarak JSON dosyaları olarak kaydedin. Her bildirimdeki ilgili JSON değerlerini güncelleştirmek için önceki bölümlerde yer alan bilgileri kullanın. Yapılandırmayı cihazınıza uygulamak için komutunu çalıştırdığınızda sonraki bölümde yer alan dosya yollarını kullanın.
Üst katman için dağıtım bildirimi
En üst katmandaki cihaz için aşağıdaki içeriğe sahip bir dağıtım bildirim dosyası deploymentTopLayer.json
oluşturun. Bu bildirim, Hızlı Başlangıç'ta kullanılana benzer: Bağlı kayıt defterini bir IoT Edge cihazına dağıtma.
Not
Hızlı başlangıcı kullanarak bağlı bir kayıt defterini bir üst katmana IoT Edge cihaza dağıttıysanız, bunu iç içe hiyerarşinin en üst katmanında kullanabilirsiniz. Hiyerarşide yapılandırmak için bu öğreticideki dağıtım adımlarını değiştirin (gösterilmez).
Bağlı kayıt defteri modülü ayarları
Düğümdeki ilgili JSON değerlerini güncelleştirmek için önceki bölümlerde yer alan belirteç kimlik bilgilerini ve bağlantı dizesini
env
kullanın.Aşağıdaki ortam değişkenleri düğümde
env
isteğe bağlıdır:Değişken Açıklama ACR_REGISTRY_LOGIN_SERVER
Benzersiz bir konak adı veya FQDN belirtir. Kullanılırsa, bağlı kayıt defteri yalnızca bu oturum açma sunucusu değerine yapılan istekleri kabul eder.
Değer sağlanmazsa, bağlı kayıt defterine herhangi bir oturum açma sunucusu değeriyle erişilebilir.ACR_REGISTRY_CERTIFICATE_VOLUME
Bağlı kayıt defterinize HTTPS üzerinden erişilebilir olacaksa, HTTPS sertifikalarının depolandığı birime işaret eder.
Ayarlanmadıysa, varsayılan konum şeklindedir/var/acr/certs
.ACR_REGISTRY_DATA_VOLUME
Görüntülerin bağlı kayıt defteri tarafından depolandığı varsayılan konumun /var/acr/data
üzerine yazar.
Bu konum, kapsayıcının birim bağlaması ile eşleşmelidir.Önemli
Bağlı kayıt defteri 80 ve 443'ten farklı bir bağlantı noktasında dinliyorsa, değerin
ACR_REGISTRY_LOGIN_SERVER
(belirtildiyse) bağlantı noktasını içermesi gerekir. Örnek:192.168.0.100:8080
.HostPort
API ara sunucusu modülü kullanılmıyorsa bağlı kayıt defteri için bir bağlama ayarlanmalıdır. Örnek:"createOptions": "{\"HostConfig\":{\"Binds\":[\"/home/azureuser/connected-registry:/var/acr/data\"],\"PortBindings\":{\"8080/tcp\":[{\"HostPort\":\"8080\"}]}}}"
API proxy modülü ayarları
- API proxy'si olarak
NGINX_DEFAULT_PORT
yapılandırılan 8000 numaralı bağlantı noktasını dinler. API proxy ayarları hakkında daha fazla bilgi için github deposunun IoT Edge bakın.
{
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"modules": {
"connected-registry": {
"settings": {
"image": "<REPLACE_WITH_CLOUD_REGISTRY_NAME>.azurecr.io/acr/connected-registry:0.8.0",
"createOptions": "{\"HostConfig\":{\"Binds\":[\"/home/azureuser/connected-registry:/var/acr/data\"]}}"
},
"type": "docker",
"env": {
"ACR_REGISTRY_CONNECTION_STRING": {
"value": "ConnectedRegistryName=<REPLACE_WITH_CONNECTED_REGISTRY_NAME>;SyncTokenName=<REPLACE_WITH_SYNC_TOKEN_NAME>;SyncTokenPassword=REPLACE_WITH_SYNC_TOKEN_PASSWORD;ParentGatewayEndpoint=<REPLACE_WITH_CLOUD_REGISTRY_NAME>.<REPLACE_WITH_CLOUD_REGISTRY_REGION>.data.azurecr.io;ParentEndpointProtocol=https"
}
},
"status": "running",
"restartPolicy": "always",
"version": "1.0"
},
"IoTEdgeAPIProxy": {
"settings": {
"image": "<REPLACE_WITH_CLOUD_REGISTRY_NAME>.azurecr.io/azureiotedge-api-proxy:1.1.2",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"8000/tcp\":[{\"HostPort\":\"8000\"}]}}}"
},
"type": "docker",
"env": {
"NGINX_DEFAULT_PORT": {
"value": "8000"
},
"CONNECTED_ACR_ROUTE_ADDRESS": {
"value": "connected-registry:8080"
},
"BLOB_UPLOAD_ROUTE_ADDRESS": {
"value": "AzureBlobStorageonIoTEdge:11002"
}
},
"status": "running",
"restartPolicy": "always",
"version": "1.0"
}
},
"runtime": {
"settings": {
"minDockerVersion": "v1.25",
"registryCredentials": {
"cloudregistry": {
"address": "<REPLACE_WITH_CLOUD_REGISTRY_NAME>.azurecr.io",
"password": "<REPLACE_WITH_SYNC_TOKEN_PASSWORD>",
"username": "<REPLACE_WITH_SYNC_TOKEN_NAME>"
}
}
},
"type": "docker"
},
"schemaVersion": "1.1",
"systemModules": {
"edgeAgent": {
"settings": {
"image": "<REPLACE_WITH_CLOUD_REGISTRY_NAME>.azurecr.io/azureiotedge-agent:1.2.4",
"createOptions": ""
},
"type": "docker",
"env": {
"SendRuntimeQualityTelemetry": {
"value": "false"
}
}
},
"edgeHub": {
"settings": {
"image": "<REPLACE_WITH_CLOUD_REGISTRY_NAME>.azurecr.io/azureiotedge-hub:1.2.4",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"443/tcp\":[{\"HostPort\":\"443\"}],\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}]}}}"
},
"type": "docker",
"status": "running",
"restartPolicy": "always"
}
}
}
},
"$edgeHub": {
"properties.desired": {
"routes": {
"route": "FROM /messages/* INTO $upstream"
},
"schemaVersion": "1.1",
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
}
}
}
Alt katman için dağıtım bildirimi
Alt katmandaki cihaz için aşağıdaki içeriğe sahip deploymentLowerLayer.json dağıtım bildirim dosyası oluşturun.
Genel olarak, alt katman dağıtım dosyası üst katman dağıtım dosyasına benzer. Farklar şunlardır:
Gerekli görüntüleri bulut kayıt defterinden değil üst katmana bağlı kayıt defterinden çeker.
En üst katmana bağlı kayıt defterini ayarlarken , ,
azureiotedge-hub
azureiotedge-api-proxy
veacr/connected-registry
dahil olmak üzereazureiotedge-agent
tüm gerekli görüntüleri yerel olarak eşitlediğinden emin olun. Alt katman IoT cihazının bu görüntüleri üst katman bağlantılı kayıt defterinden çekmesi gerekir.Üst katmana bağlı kayıt defteriyle kimlik doğrulaması yapmak için alt katmanda yapılandırılan eşitleme belirtecini kullanır.
Üst ağ geçidi uç noktasını bulut kayıt defterinin FQDN'siyle değil, üst katman bağlı kayıt defterinin IP adresi veya FQDN ile yapılandırıyor.
Önemli
Aşağıdaki dağıtım bildiriminde, $upstream
üst bağlı kayıt defterini barındıran cihazın IP adresi veya FQDN'i olarak kullanılır. Ancak ortam $upstream
değişkeninde desteklenmez. Bağlı kayıt defterinin üst ağ geçidi uç noktasını almak için ortam değişkenini ACR_PARENT_GATEWAY_ENDPOINT
okuması gerekir. Bağlı kayıt defteri, kullanmak $upstream
yerine IP adresini veya FQDN'yi başka bir ortam değişkeninden dinamik olarak çözümlemeyi destekler.
İç içe IoT Edge, alt katmanda üst cihazın IP adresine veya FQDN'sine eşit bir ortam değişkeni $IOTEDGE_PARENTHOSTNAME
vardır. Üst IP adresini veya FQDN'yi sabit kodlamaktan kaçınmak için ortam değişkenini bağlantı dizesinde değeri ParentGatewayEndpoint
olarak el ile değiştirin. Bu örnekteki üst cihaz 8000 numaralı bağlantı noktasında çalıştığından nginx
geçirin $IOTEDGE_PARENTHOSTNAME:8000
. ayrıca içinde ParentEndpointProtocol
uygun protokolü seçmeniz gerekir.
{
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"modules": {
"connected-registry": {
"settings": {
"image": "$upstream:8000/acr/connected-registry:0.8.0",
"createOptions": "{\"HostConfig\":{\"Binds\":[\"/home/azureuser/connected-registry:/var/acr/data\"]}}"
},
"type": "docker",
"env": {
"ACR_REGISTRY_CONNECTION_STRING": {
"value": "ConnectedRegistryName=<REPLACE_WITH_CONNECTED_REGISTRY_NAME>;SyncTokenName=<REPLACE_WITH_SYNC_TOKEN_NAME>;SyncTokenPassword=<REPLACE_WITH_SYNC_TOKEN_PASSWORD>;ParentGatewayEndpoint=$IOTEDGE_PARENTHOSTNAME:8000;ParentEndpointProtocol=https"
}
},
"status": "running",
"restartPolicy": "always",
"version": "1.0"
},
"IoTEdgeApiProxy": {
"settings": {
"image": "$upstream:8000/azureiotedge-api-proxy:1.1.2",
"createOptions": "{\"HostConfig\": {\"PortBindings\": {\"8000/tcp\": [{\"HostPort\": \"8000\"}]}}}"
},
"type": "docker",
"version": "1.0",
"env": {
"NGINX_DEFAULT_PORT": {
"value": "8000"
},
"CONNECTED_ACR_ROUTE_ADDRESS": {
"value": "connected-registry:8080"
},
"NGINX_CONFIG_ENV_VAR_LIST": {
"value": "NGINX_DEFAULT_PORT,BLOB_UPLOAD_ROUTE_ADDRESS,CONNECTED_ACR_ROUTE_ADDRESS,IOTEDGE_PARENTHOSTNAME,DOCKER_REQUEST_ROUTE_ADDRESS"
},
"BLOB_UPLOAD_ROUTE_ADDRESS": {
"value": "AzureBlobStorageonIoTEdge:11002"
}
},
"status": "running",
"restartPolicy": "always",
"startupOrder": 3
}
},
"runtime": {
"settings": {
"minDockerVersion": "v1.25",
"registryCredentials": {
"connectedregistry": {
"address": "$upstream:8000",
"password": "<REPLACE_WITH_SYNC_TOKEN_PASSWORD>",
"username": "<REPLACE_WITH_SYNC_TOKEN_NAME>"
}
}
},
"type": "docker"
},
"schemaVersion": "1.1",
"systemModules": {
"edgeAgent": {
"settings": {
"image": "$upstream:8000/azureiotedge-agent:1.2.4",
"createOptions": ""
},
"type": "docker",
"env": {
"SendRuntimeQualityTelemetry": {
"value": "false"
}
}
},
"edgeHub": {
"settings": {
"image": "$upstream:8000/azureiotedge-hub:1.2.4",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"443/tcp\":[{\"HostPort\":\"443\"}],\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}]}}}"
},
"type": "docker",
"status": "running",
"restartPolicy": "always"
}
}
}
},
"$edgeHub": {
"properties.desired": {
"routes": {
"route": "FROM /messages/* INTO $upstream"
},
"schemaVersion": "1.1",
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
}
}
}
Bağlı kayıt defteri modüllerini ayarlama ve dağıtma
Aşağıdaki adımlar Öğretici'den uyarlanmıştır: IoT Edge cihaz hiyerarşisi oluşturma ve bağlı kayıt defteri modüllerini IoT Edge hiyerarşisinde dağıtmaya özeldir. Tek tek adımlar hakkındaki ayrıntılar için bu öğreticiye bakın.
Üst ve alt katman cihazları oluşturma
Mevcut arm şablonunu kullanarak üst ve alt katman sanal makineleri oluşturun. Şablon ayrıca IoT Edge aracısını yükler. Bunun yerine kendi cihazlarınızdan dağıtmak istiyorsanız, cihazı el ile ayarlamayı öğrenmek için öğretici: Linux için Azure IoT Edge yükleme veya kaldırma bölümüne bakın.
Önemli
Üst katman cihazda dağıtılan modüllere daha sonra erişmek için şu gelen bağlantı noktalarını açtığınızdan emin olun: 8000, 443, 5671, 8883. Yapılandırma adımları için bkz. Azure portal ile sanal makineye bağlantı noktaları açma.
Hiyerarşiyi oluşturma ve yapılandırma
iotedge-config
Azure CLI veya Azure Cloud Shell aşağıdaki adımları izleyerek hiyerarşinizi oluşturmak ve yapılandırmak için aracı kullanın:
Yapılandırma aracını indirin.
mkdir nested_iot_edge_tutorial cd ~/nested_iot_edge_tutorial wget -O iotedge_config.tar "https://github.com/Azure-Samples/iotedge_config_cli/releases/download/latest/iotedge_config_cli.tar.gz" tar -xvf iotedge_config.tar
Bu adım, öğretici dizininizde klasörü oluşturur
iotedge_config_cli_release
. Cihaz hiyerarşinizi oluşturmak için kullanılan şablon dosyası, içinde~/nested_iot_edge_tutorial/iotedge_config_cli_release/templates/tutorial
bulunan dosyadıriotedge_config.yaml
. Aynı dizinde, üst ve alt katmanlar için iki dağıtım bildirimi vardır:deploymentTopLayer.json
vedeploymentLowerLayer.json
dosyaları.Bilgilerinizle düzenleyin
iotedge_config.yaml
.iothub_hostname
Üst katman ve alt katman için ,iot_name
, dağıtım bildirimi dosya adlarını ve her katmandan yukarı akıştan görüntü çekmek için oluşturduğunuz istemci belirteci kimlik bilgilerini düzenleyin. Aşağıdaki örnek örnek bir yapılandırma dosyasıdır:config_version: "1.0" iothub: iothub_hostname: <REPLACE_WITH_HUB_NAME>.azure-devices.net iothub_name: <REPLACE_WITH_HUB_NAME> ## Authentication method used by IoT Edge devices: symmetric_key or x509_certificate authentication_method: symmetric_key ## Root certificate used to generate device CA certificates. Optional. If not provided a self-signed CA will be generated # certificates: # root_ca_cert_path: "" # root_ca_cert_key_path: "" ## IoT Edge configuration template to use configuration: template_config_path: "./templates/tutorial/device_config.toml" default_edge_agent: "$upstream:8000/azureiotedge-agent:1.2.4" ## Hierarchy of IoT Edge devices to create edgedevices: device_id: top-layer edge_agent: "<REPLACE_WITH_REGISTRY_NAME>.azurecr.io/azureiotedge-agent:1.2.4" ## Optional. If not provided, default_edge_agent will be used deployment: "./templates/tutorial/deploymentTopLayer.json" ## Optional. If provided, the given deployment file will be applied to the newly created device # hostname: "FQDN or IP" ## Optional. If provided, install.sh will not prompt user for this value nor the parent_hostname value container_auth: ## The token used to pull the image from cloud registry serveraddress: "<REPLACE_WITH_REGISTRY_NAME>.azurecr.io" username: "<REPLACE_WITH_SYNC_TOKEN_NAME_FOR_TOP_LAYER>" password: "<REPLACE_WITH_SYNC_TOKEN_PASSWORD_FOR_TOP_LAYER>" child: - device_id: lower-layer deployment: "./templates/tutorial/deploymentLowerLayer.json" ## Optional. If provided, the given deployment file will be applied to the newly created device # hostname: "FQDN or IP" ## Optional. If provided, install.sh will not prompt user for this value nor the parent_hostname value container_auth: ## The token used to pull the image from parent connected registry serveraddress: "$upstream:8000" username: "<REPLACE_WITH_SYNC_TOKEN_NAME_FOR_LOWER_LAYER>" password: "<REPLACE_WITH_SYNC_TOKEN_PASSWORD_FOR_LOWER_LAYER>"
Üst ve alt katman dağıtım dosyalarını hazırlayın: deploymentTopLayer.json ve deploymentLowerLayer.json. Bu makalenin önceki bölümlerinde oluşturduğunuz dağıtım bildirim dosyalarını şu klasöre kopyalayın:
~/nestedIotEdgeTutorial/iotedge_config_cli_release/templates/tutorial
.iotedge_config_cli_release dizininize gidin ve IoT Edge cihaz hiyerarşinizi oluşturmak için aracı çalıştırın.
cd ~/nestedIotEdgeTutorial/iotedge_config_cli_release ./iotedge_config --config ~/nestedIotEdgeTutorial/iotedge_config_cli_release/templates/tutorial/iotedge_config.yaml --output ~/nestedIotEdgeTutorial/iotedge_config_cli_release/outputs -f
parametresiyle
--output
araç, cihaz sertifikalarını, sertifika paketlerini ve günlük dosyasını istediğiniz bir dizinde oluşturur. parametresiyle-f
araç, hataları önlemek ve hub'ınızı temiz tutmak için IoT Hub mevcut IoT Edge cihazları otomatik olarak arar ve kaldırır.Araç birkaç dakika çalışabilir.
Önceki adımda oluşturulan top-layer.zip ve lower-layer.zip dosyalarını kullanarak
scp
ilgili üst ve alt katman sanal makinelerine kopyalayın:scp <PATH_TO_CONFIGURATION_BUNDLE> <USER>@<VM_IP_OR_FQDN>:~
Yapılandırma paketini yüklemek için üst katman cihaza bağlanın.
Yapılandırma paketinin sıkıştırmasını açın. Önce zip'i yüklemeniz gerekir.
sudo apt install zip unzip ~/<PATH_TO_CONFIGURATION_BUNDLE>/<CONFIGURATION_BUNDLE>.zip #unzip top-layer.zip
sudo ./install.sh
öğesini çalıştırın. IP adresini veya ana bilgisayar adını girin. IP adresini kullanmanızı öneririz.Tüm modüllerin çalıştığını onaylamak için komutunu çalıştırın
sudo iotedge list
.
Yapılandırma paketini yüklemek için alt katman cihaza bağlanın.
Yapılandırma paketinin sıkıştırmasını açın. Önce zip'i yüklemeniz gerekir.
sudo apt install zip unzip ~/<PATH_TO_CONFIGURATION_BUNDLE>/<CONFIGURATION_BUNDLE>.zip #unzip lower-layer.zip
sudo ./install.sh
öğesini çalıştırın. Cihazı ve üst IP adreslerini veya ana bilgisayar adlarını girin. IP adreslerini kullanmanızı öneririz.Tüm modüllerin çalıştığını onaylamak için komutunu çalıştırın
sudo iotedge list
.
Cihaz yapılandırması için bir dağıtım dosyası belirtmediyseniz veya üst veya alt katman cihazında geçersiz bir dağıtım bildirimi gibi dağıtım sorunları oluşuyorsa modülleri el ile dağıtın. Aşağıdaki bölüme bakın.
Bağlı kayıt defteri modülünü el ile dağıtma
Bağlı kayıt defteri modülünü IoT Edge bir cihaza el ile dağıtmak için aşağıdaki komutu kullanın:
az iot edge set-modules \
--device-id <device-id> \
--hub-name <hub-name> \
--content <deployment-manifest-filename>
Ayrıntılar için bkz. Azure CLI ile Azure IoT Edge modüllerini dağıtma.
Başarılı bir dağıtımdan sonra, bağlı kayıt defteri durumunu Online
gösterir.
Bağlı kayıt defterinin durumunu denetlemek için aşağıdaki az acr connected-registry show komutunu kullanın:
az acr connected-registry show \
--registry $REGISTRY_NAME \
--name $CONNECTED_REGISTRY_RO \
--output table
Bağlı kayıt defterinin dağıtımı tamamlanana kadar birkaç dakika beklemeniz gerekebilir.
Başarılı bir dağıtımdan sonra, bağlı kayıt defteri durumunu Online
gösterir.
Dağıtım sorunlarını gidermek için etkilenen cihazda komutunu çalıştırın iotedge check
. Daha fazla bilgi için bkz. Sorun giderme.
Sonraki adımlar
Bu hızlı başlangıçta, bağlı bir kayıt defterini iç içe IoT Edge bir cihaza dağıtmayı öğrendiniz. Yeni dağıtılan bağlı kayıt defterinden görüntü çekmeyi öğrenmek için sonraki kılavuza geçin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin