Rychlý start: Nasazení připojeného registru do zařízení IoT Edge (zastaralé)
V tomto rychlém startu pomocí Azure CLI nasadíte připojený registr jako modul na zařízení Azure IoT Edge. Zařízení IoT Edge má přístup k nadřazené registru kontejneru Azure v cloudu.
Přehled použití připojeného registru se službou IoT Edge najdete v tématu Použití připojeného registru se službou Azure IoT Edge. Tento scénář odpovídá zařízení v horní vrstvě hierarchie IoT Edge.
Požadavky
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Azure IoT Hub a zařízení IoT Edge. Postup nasazení najdete v tématu Rychlý start: Nasazení prvního modulu IoT Edge do virtuálního zařízení s Linuxem.
Důležité
Pokud chcete později získat přístup k modulům nasazeným na zařízení IoT Edge, ujistěte se, že na zařízení otevřete porty 8000, 5671 a 8883. Postup konfigurace najdete v tématu Postup otevření portů pro virtuální počítač pomocí webu Azure Portal.
Připojený prostředek registru v Azure. Postup nasazení najdete v rychlých startech pomocí Azure CLI nebo webu Azure Portal.
- V tomto scénáři se dá použít připojený registr v režimu
ReadWrite
neboReadOnly
v jiném režimu. - V příkazech v tomto článku je název připojeného registru uložen v proměnné prostředí CONNECTED_REGISTRY_RW.
- V tomto scénáři se dá použít připojený registr v režimu
Import imagí do cloudového registru
Pomocí příkazu az acr import naimportujte následující image kontejneru do svého cloudového registru. Pokud jste tyto image už naimportovali, tento krok přeskočte.
Připojená image registru
Aby bylo možné podporovat vnořené scénáře IoT Edge, musí být image kontejneru pro připojený modul runtime registru dostupná ve vašem privátním registru kontejneru Azure. Pomocí příkazu az acr import naimportujte image připojeného registru do privátního registru.
# 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
Image proxy služby IoT Edge a rozhraní API
Pokud chcete podporovat připojený registr ve vnořeném IoT Edge, musíte nasadit moduly pro ioT Edge a proxy rozhraní API. Naimportujte tyto image do privátního registru.
Modul proxy rozhraní API služby IoT Edge umožňuje zařízení IoT Edge zpřístupnit více služeb pomocí protokolu HTTPS na stejném portu, jako je například 443.
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
Obrázek Hello World
Pro testování připojeného registru naimportujte hello-world
image. Toto úložiště se bude synchronizovat s připojeným registrem a vyžádá se připojenými klienty registru.
az acr import \
--name $REGISTRY_NAME \
--source mcr.microsoft.com/hello-world:1.1.2
Načtení konfigurace připojeného registru
Před nasazením připojeného registru do zařízení IoT Edge je potřeba načíst nastavení konfigurace z připojeného prostředku registru v Azure.
Pomocí příkazu az acr connected-registry get-settings získejte informace o nastavení potřebné k instalaci připojeného registru. Následující příklad určuje HTTPS jako nadřazený protokol. Tento protokol se vyžaduje v případě, že nadřazený registr je cloudový registr.
az acr connected-registry get-settings \
--registry $REGISTRY_NAME \
--name $CONNECTED_REGISTRY_RW \
--parent-protocol https
Ve výchozím nastavení informace o nastavení neobsahují heslo tokenu synchronizace, které je také potřeba k nasazení připojeného registru. Volitelně můžete vygenerovat jedno z hesel předáním parametru nebo generate-password 2
parametru--generate-password 1
. Uložte vygenerované heslo do bezpečného umístění. Nelze jej znovu načíst.
Upozorňující
Opětovné vygenerování hesla otočí přihlašovací údaje synchronizačního tokenu. Pokud jste nakonfigurovali zařízení pomocí předchozího hesla, musíte konfiguraci aktualizovat.
Výstup příkazu zahrnuje připojovací řetězec registru a související nastavení. Následující příklad výstupu ukazuje připojovací řetězec připojeného registru s názvem myconnectedregistry s nadřazeným registrem contosoregistry:
{
"ACR_REGISTRY_CONNECTION_STRING": "ConnectedRegistryName=myconnectedregistry;SyncTokenName=myconnectedregistry-sync-token;SyncTokenPassword=xxxxxxxxxxxxxxxx;ParentGatewayEndpoint=contosoregistry.eastus.data.azurecr.io;ParentEndpointProtocol=https"
}
Konfigurace manifestu nasazení pro IoT Edge
Manifest nasazení je dokument JSON popisující moduly, které se mají nasadit do zařízení IoT Edge. Další informace najdete v tématu Vysvětlení způsobu použití, konfigurace a opětovného použití modulů IoT Edge.
Pokud chcete nasadit připojené moduly registru a proxy serveru API pomocí Azure CLI, uložte následující manifest nasazení místně jako manifest.json
soubor. Cestu k souboru použijete v další části při spuštění příkazu pro použití konfigurace na zařízení.
Nastavení připojeného modulu registru
Pomocí přihlašovacích údajů tokenu a připojovací řetězec z předchozích částí aktualizujte relevantní hodnoty JSON v
env
uzlu.Následující proměnné prostředí jsou v
env
uzlu volitelné:Proměnná Popis ACR_REGISTRY_LOGIN_SERVER
Určuje jedinečný název hostitele nebo plně kvalifikovaný název domény. Pokud se používá, připojený registr přijímá pouze požadavky provedené na tuto hodnotu přihlašovacího serveru.
Pokud není zadaná žádná hodnota, bude mít připojený registr přístup s libovolnou hodnotou přihlašovacího serveru.ACR_REGISTRY_CERTIFICATE_VOLUME
Pokud bude připojený registr přístupný přes PROTOKOL HTTPS, odkazuje na svazek, ve kterém jsou uložené certifikáty HTTPS.
Pokud není nastaveno, výchozí umístění je/var/acr/certs
.ACR_REGISTRY_DATA_VOLUME
Přepíše výchozí umístění /var/acr/data
, kam budou image uloženy připojeným registrem.
Toto umístění musí odpovídat vazbě svazku pro kontejner.Důležité
Pokud připojený registr naslouchá na portu jiném než 80 a 443,
ACR_REGISTRY_LOGIN_SERVER
musí hodnota (pokud je zadána) obsahovat port. Příklad:192.168.0.100:8080
.Pokud
HostPort
se nepoužívá modul proxy rozhraní API, měla by se nastavit vazba pro připojený registr. Příklad:"createOptions": "{\"HostConfig\":{\"Binds\":[\"/home/azureuser/connected-registry:/var/acr/data\"],\"PortBindings\":{\"8080/tcp\":[{\"HostPort\":\"8080\"}]}}}"
Nastavení modulu proxy rozhraní API
- Proxy rozhraní API bude naslouchat na portu 8000 nakonfigurovaného jako
NGINX_DEFAULT_PORT
. Další informace o nastavení proxy serveru rozhraní API najdete v úložišti GitHubu ioT Edge.
{
"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
}
}
}
}
}
Nasazení připojených modulů registru a proxy serveru rozhraní API ve službě IoT Edge
Pomocí následujícího příkazu nasaďte připojené moduly registru a proxy serveru rozhraní API na zařízení IoT Edge pomocí manifestu nasazení vytvořeného v předchozí části. Zadejte ID zařízení nejvyšší vrstvy IoT Edge a název ioT Hubu, kde je uvedeno.
# Set the IOT_EDGE_TOP_LAYER_DEVICE_ID and IOT_HUB_NAME environment variables for use in the following Azure CLI command
IOT_EDGE_TOP_LAYER_DEVICE_ID=<device-id>
IOT_HUB_NAME=<hub-name>
az iot edge set-modules \
--device-id $IOT_EDGE_TOP_LAYER_DEVICE_ID \
--hub-name $IOT_HUB_NAME \
--content manifest.json
Podrobnosti najdete v tématu Nasazení modulů Azure IoT Edge pomocí Azure CLI.
Pokud chcete zkontrolovat stav připojeného registru, použijte následující příkaz az acr connected-registry show . Název připojeného registru je hodnota $CONNECTED_REGISTRY_RW.
az acr connected-registry show \
--registry $REGISTRY_NAME \
--name $CONNECTED_REGISTRY_RW \
--output table
Po úspěšném nasazení zobrazuje připojený registr stav Online
.
Další kroky
V tomto rychlém startu jste zjistili, jak nasadit připojený registr do zařízení IoT Edge. Pokračujte k dalším průvodcům a zjistěte, jak načítat image z nově nasazeného připojeného registru nebo nasadit připojený registr na vnořená zařízení IoT Edge.