Tutorial: Implantar um registro conectado em uma hierarquia do IoT Edge aninhada
Neste tutorial, você usará comandos da CLI do Azure para criar uma hierarquia de duas camadas de dispositivos Azure IoT Edge e implantar um registro conectado como um módulo em cada camada. Nesse cenário, um dispositivo na camada superior se comunica com um registro na nuvem. Um dispositivo na camada inferior se comunica com seu registro conectado pai na camada superior.
Para obter uma visão geral do uso de um Registro conectado com o IoT Edge, confira Usar o Registro conectado com o Azure IoT Edge.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Hub IoT do Azure. Para saber as etapas de implantação, confira Como criar um Hub IoT usando o portal do Azure.
Dois recursos de registro conectados no Azure. Para as etapas de implantação, consulte os inícios rápidos usando a CLI do Azure ou o portal do Azure.
- Para a camada superior, o registro conectado pode estar no modo ReadWrite ou ReadOnly. Este artigo pressupõe o modo ReadWrite e o nome do registro conectado é armazenado na variável de ambiente
$CONNECTED_REGISTRY_RW
. - Para a camada inferior, o registro conectado deve estar no modo ReadOnly. Este artigo pressupõe que nome do registro conectado está armazenado na variável de ambiente
$CONNECTED_REGISTRY_RO
.
- Para a camada superior, o registro conectado pode estar no modo ReadWrite ou ReadOnly. Este artigo pressupõe o modo ReadWrite e o nome do registro conectado é armazenado na variável de ambiente
Importar imagens para o registro na nuvem
Importe as seguintes imagens de contêiner para o registro na nuvem usando o comando az acr import. Ignore esta etapa se você já importou essas imagens.
Imagem do registro conectado
Para dar suporte a cenários de IoT Edge aninhados, a imagem de contêiner para o runtime do registro conectado deve estar disponível no registro de contêiner privado do Azure. Use o comando az acr import para importar a imagem de registro conectado para o registro privado.
# 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
Imagens do proxy de API e IoT Edge
Para dar suporte ao registro conectado no IoT Edge aninhado, é necessário implantar módulos para o proxy de API e IoT Edge. Importe essas imagens para o registro privado.
O módulo de proxy de API do IoT Edge permite que um dispositivo de IoT Edge exponha vários serviços usando o protocolo HTTPS na mesma porta, como 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
Imagem de olá, mundo
Para testar o registro conectado, importe a imagem hello-world
. Esse repositório será sincronizado com o registro conectado e enviado para os clientes do registro conectado.
az acr import \
--name $REGISTRY_NAME \
--source mcr.microsoft.com/hello-world:1.1.2
Recuperar a configuração do registro conectado
Para implantar cada registro conectado ao dispositivo de IoT Edge na hierarquia, você precisa recuperar as definições de configuração do recurso de registro conectado no Azure. Se necessário, execute o comando az acr connected-registry get-settings para cada registro conectado para recuperar a configuração.
Por padrão, as informações de configurações não incluem a senha do token de sincronização, que também é necessária para implantar o registro conectado. Opcionalmente, gere uma das senhas passando o parâmetro --generate-password 1
ou --generate-password 2
. Salve a senha gerada em um local seguro. Não será possível realizar novamente a recuperação.
Aviso
A regeneração de uma senha faz a rotação das credenciais do token de sincronização. Se você tiver configurado um dispositivo usando a senha anterior, precisará atualizar a configuração.
# 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
A saída do comando inclui a cadeia de conexão do Registro e as configurações relacionadas. A seguinte saída de exemplo mostra a cadeia de conexão para o Registro conectado chamado myconnectedregistry com o registro pai contosoregistry:
{
"ACR_REGISTRY_CONNECTION_STRING": "ConnectedRegistryName=myconnectedregistry;SyncTokenName=myconnectedregistry-sync-token;SyncTokenPassword=xxxxxxxxxxxxxxxx;ParentGatewayEndpoint=contosoregistry.eastus.data.azurecr.io;ParentEndpointProtocol=https"
}
Configurar manifestos de implantação
Um manifesto de implantação é um documento JSON que descreve quais módulo implantar a um dispositivo IoT Edge. Para obter mais informações, confira Noções básicas sobre como os módulos do IoT Edge podem ser usados, configurados e reutilizados.
Para implantar o módulo do registro conectado em cada dispositivo de IoT Edge usando a CLI do Azure, salve os seguintes manifestos de implantação localmente como arquivos JSON. Use as informações das seções anteriores para atualizar os valores JSON relevantes em cada manifesto. Você usará os caminhos do arquivo na próxima seção quando executar o comando para aplicar a configuração ao dispositivo.
Manifesto de implantação para a camada superior
Para o dispositivo na camada superior, crie um arquivo de manifesto de implantação deploymentTopLayer.json
com o conteúdo a seguir. Esse manifesto é semelhante ao usado no Início rápido: Implantar um registro conectado em um dispositivo IoT Edge.
Observação
Se você já tiver implantado um registro conectado em um dispositivo IoT Edge de camada superior usando o início rápido, será possível usá-lo na camada superior de uma hierarquia aninhada. Modifique as etapas de implantação neste tutorial para configurá-lo na hierarquia (não mostrado).
Configurações do módulo do Registro conectado
Use as credenciais de token e a cadeia de conexão das seções anteriores para atualizar os valores JSON relevantes no nó
env
.As seguintes variáveis de ambiente são opcionais no nó
env
:Variável Descrição ACR_REGISTRY_LOGIN_SERVER
Especifica um nome de host ou FQDN exclusivo. Se usado, o Registro conectado só aceita solicitações feitas a esse valor de servidor de logon.
Se nenhum valor for fornecido, o Registro conectado poderá ser acessado com qualquer valor de servidor de logon.ACR_REGISTRY_CERTIFICATE_VOLUME
Se o Registro conectado for acessível por HTTPS, apontará para o volume em que os certificados HTTPS estão armazenados.
Se não estiver definido, o local padrão será/var/acr/certs
.ACR_REGISTRY_DATA_VOLUME
Substitui o local padrão /var/acr/data
em que as imagens serão armazenadas pelo Registro conectado.
Esse local precisa corresponder à associação de volume para o contêiner.Importante
Se o Registro conectado escutar em uma porta diferente de 80 e 443, o valor
ACR_REGISTRY_LOGIN_SERVER
(se especificado) precisará incluir a porta. Exemplo:192.168.0.100:8080
.Uma associação
HostPort
para o Registro conectado deverá ser definida se o módulo de proxy de API não for usado. Exemplo:"createOptions": "{\"HostConfig\":{\"Binds\":[\"/home/azureuser/connected-registry:/var/acr/data\"],\"PortBindings\":{\"8080/tcp\":[{\"HostPort\":\"8080\"}]}}}"
Configurações do módulo de proxy de API
- O proxy de API escutará na porta 8000 configurada como
NGINX_DEFAULT_PORT
. Para obter mais informações sobre as configurações de proxy de API, confira o repositório GitHub do 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
}
}
}
}
}
Manifesto de implantação para a camada inferior
Para o dispositivo na camada inferior, crie um arquivo de manifesto de implantação deploymentLowerLayer.json com o conteúdo a seguir.
Em geral, o arquivo de implantação de camada inferior é semelhante ao arquivo de implantação de camada superior. As diferenças são:
Ele efetua pull das imagens necessárias do registro conectado da camada superior em vez do registro na nuvem.
Ao configurar o registro conectado da camada superior, verifique se ele sincronizará todas as imagens necessárias localmente, incluindo
azureiotedge-agent
,azureiotedge-hub
,azureiotedge-api-proxy
eacr/connected-registry
. O dispositivo IoT de camada inferior precisa efetuar pull dessas imagens do registro conectado da camada superior.Ele usa o token de sincronização configurado na camada inferior para autenticar com o registro conectado da camada superior.
Ele configura o ponto de extremidade do gateway pai com o endereço IP ou FQDN do registro conectado da camada superior, em vez de configurar com o FQDN do registro de nuvem.
Importante
No manifesto de implantação a seguir, $upstream
é usado como o endereço IP ou FQDN do dispositivo que hospeda o registro conectado pai. No entanto, o $upstream
não tem suporte em uma variável de ambiente. O registro conectado precisa ler a variável de ambiente ACR_PARENT_GATEWAY_ENDPOINT
para obter o ponto de extremidade do gateway pai. Em vez de usar o $upstream
, o registro conectado dá suporte à resolução dinâmica do endereço IP ou FQDN de outra variável de ambiente.
No IoT Edge aninhado, há uma variável de ambiente $IOTEDGE_PARENTHOSTNAME
na camada inferior que é igual ao endereço IP ou FQDN do dispositivo pai. Substitua manualmente a variável de ambiente como o valor de ParentGatewayEndpoint
na cadeia de conexão para evitar hard-coding no endereço IP ou FQDN pai. Como o dispositivo pai neste exemplo está executando nginx
na porta 8000, transmita $IOTEDGE_PARENTHOSTNAME:8000
. Você também precisa selecionar o protocolo adequado no ParentEndpointProtocol
.
{
"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
}
}
}
}
}
Configurar e implantar módulos de registro conectado
As etapas a seguir são adaptadas do Tutorial: Criar uma hierarquia de dispositivos IoT Edge, e são específicas para a implantação de módulos de registro conectados na hierarquia de IoT Edge. Consulte esse tutorial para obter detalhes sobre as etapas individuais.
Criar dispositivos de camada superior e de camada inferior
Crie VMs de camada superior e inferior usando um modelo do ARM existente. O modelo também instala o agente do IoT Edge. Se você quiser implantar a partir de seus próprios dispositivos, consulte Tutorial: Instalar ou desinstalar o Azure IoT Edge para Linux para saber como configurar manualmente o dispositivo.
Importante
Para obter acesso posterior aos módulos implantados no dispositivo de camada superior, certifique-se de abrir as seguintes portas de entrada: 8000, 443, 5671, 8883. Para saber as etapas de configuração, confira Como abrir as portas de uma máquina virtual com o portal do Azure.
Criar e configurar a hierarquia
Use a ferramenta iotedge-config
para criar e configurar sua hierarquia seguindo estas etapas na CLI do Azure ou no Azure Cloud Shell:
Faça o download da ferramenta de configuração.
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
Essa etapa criará a pasta
iotedge_config_cli_release
no diretório do tutorial. O arquivo de modelo usado para criar a hierarquia do dispositivo é o arquivoiotedge_config.yaml
encontrado em~/nested_iot_edge_tutorial/iotedge_config_cli_release/templates/tutorial
. No mesmo diretório, há dois manifestos de implantação para camadas superior e inferior: arquivosdeploymentTopLayer.json
edeploymentLowerLayer.json
.Edite o
iotedge_config.yaml
com suas informações. Edite os nomes de arquivo de manifesto de implantaçãoiothub_hostname
eiot_name
para a camada superior e a camada inferior e as credenciais de token de cliente que você criou para efetuar pull de imagens do upstream de cada camada. O seguinte exemplo mostra um arquivo de configuração de exemplo: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>"
Prepare os arquivos de implantação da camada superior e da camada inferior: deploymentTopLayer.json e deploymentLowerLayer.json. Copie os arquivos de manifesto de implantação criados anteriormente neste artigo para a seguinte pasta:
~/nestedIotEdgeTutorial/iotedge_config_cli_release/templates/tutorial
.Acesse o diretório iotedge_config_cli_release e execute a ferramenta para criar sua hierarquia de dispositivos IoT Edge.
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
Com o parâmetro
--output
, a ferramenta cria os certificados de dispositivo, os pacotes de certificados e um arquivo de log no diretório de sua preferência. Com o parâmetro-f
, a ferramenta procura automaticamente por dispositivos IoT Edge existentes no Hub IoT e os remove para evitar erros e manter o hub limpo.A ferramenta pode ficar em execução por vários minutos.
Copie os arquivos top-layer.zip e lower-layer.zip gerados na etapa anterior para as VMs de camada superior e inferior correspondentes usando
scp
:scp <PATH_TO_CONFIGURATION_BUNDLE> <USER>@<VM_IP_OR_FQDN>:~
Conecte-se ao dispositivo de camada superior para instalar o pacote de configuração.
Descompacte o pacote de configuração. Você precisará instalar o zip primeiro.
sudo apt install zip unzip ~/<PATH_TO_CONFIGURATION_BUNDLE>/<CONFIGURATION_BUNDLE>.zip #unzip top-layer.zip
Execute
sudo ./install.sh
. Insira o endereço IP ou o nome de host. É recomendável usar o endereço IP.Execute
sudo iotedge list
para confirmar que todos os módulos estejam em execução.
Conecte-se ao dispositivo de camada inferior para instalar o pacote de configuração.
Descompacte o pacote de configuração. Você precisará instalar o zip primeiro.
sudo apt install zip unzip ~/<PATH_TO_CONFIGURATION_BUNDLE>/<CONFIGURATION_BUNDLE>.zip #unzip lower-layer.zip
Execute
sudo ./install.sh
. Insira os endereços IP ou nomes de host pai e do dispositivo. É recomendável usar os endereços IP.Execute
sudo iotedge list
para confirmar que todos os módulos estejam em execução.
Se você não especificou um arquivo de implantação para a configuração do dispositivo ou ocorrerem problemas de implantação, como um manifesto de implantação inválido no dispositivo de camada superior ou inferior, implante os módulos manualmente. Veja a seção a seguir.
Implantar manualmente o módulo de registro conectado
Use o comando a seguir para implantar manualmente o módulo de registro conectado em um dispositivo IoT Edge:
az iot edge set-modules \
--device-id <device-id> \
--hub-name <hub-name> \
--content <deployment-manifest-filename>
Para obter os detalhes, confira Implante os módulos do Azure IoT Edge com a CLI do Azure.
Após a implantação bem-sucedida, o registro conectado mostrará um status de Online
.
Para verificar o status do registro conectado, use o comando az acr connected-registry show a seguir:
az acr connected-registry show \
--registry $REGISTRY_NAME \
--name $CONNECTED_REGISTRY_RO \
--output table
Talvez seja necessário aguardar alguns minutos até que a implantação do registro conectado seja concluída.
Após a implantação bem-sucedida, o registro conectado mostrará um status de Online
.
Para solucionar problemas de implantação, execute iotedge check
no dispositivo afetado. Para saber mais, consulte a Solução de problemas.
Próximas etapas
Neste guia de início rápido, você aprendeu a implantar um registro conectado em um dispositivo IoT Edge aninhado. Vá para o próximo guia para saber como efetuar pull de imagens do registro conectado recentemente implantado.