Integrações gerenciadas: contêiner Hub SDK Docker no Raspberry Pi - Integrações gerenciadas para AWS IoT Device Management

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Integrações gerenciadas: contêiner Hub SDK Docker no Raspberry Pi

nota

Essa implementação do AWS IoT Hub SDK no Raspberry Pi é um projeto de demonstração destinado apenas para fins de aprendizado e teste e não deve ser usada em ambientes de produção. Para fins desta demonstração, defina as seguintes configurações para facilitar o desenvolvimento:

AWS armazenamento de credenciais: somente para fins de demonstração, as credenciais e os certificados são armazenados em um local acessível para facilitar o teste e o desenvolvimento. Os ambientes de produção devem usar soluções de armazenamento seguro AWS Secrets Manager, como o Systems Manager Parameter Store. Eles devem implementar a criptografia em repouso e seguir as diretrizes AWS IoT de segurança.

Privilégios de contêiner: a demonstração é executada com privilégios elevados para permitir acesso irrestrito aos recursos do host e simplificar os fluxos de trabalho de desenvolvimento. Na produção, os contêineres devem operar com os privilégios mínimos necessários.

Configuração da ponte de rede: a demonstração usa uma configuração de ponte de rede que expõe o tráfego interno da rede para facilitar a depuração e o monitoramento. Em ambientes de produção, implemente o isolamento e a segmentação adequados da rede para evitar o acesso não autorizado ao tráfego interno da rede.

Permissões do dispositivo USB: o acesso irrestrito ao dispositivo USB é ativado para facilitar a conexão dos periféricos de desenvolvimento e dos dispositivos de teste. Para produção, implemente controles e validação rígidos de dispositivos USB para evitar ataques de falsificação de dispositivos.

Essas configurações permitem testes diretos e não devem ser usadas em ambientes de produção. Ao implantar na produção, siga as melhores práticas de segurança para evitar o comprometimento do sistema host e o acesso não autorizado às credenciais.

Pré-requisitos

Os pré-requisitos a seguir são necessários para o contêiner docker.

Use o contêiner Hub SDK Docker de integrações gerenciadas no Raspberry Pi

  1. Baixe integrações gerenciadas Raspberry Pi Hub SDK Docker.

  2. Copie o arquivo para o Raspberry Pi usando o SCP:

    scp ~/path/to/IotMI-HubSDK-Docker-v1.0.0.tar.gz [username]@raspberrypi.local:~
  3. Conecte-se ao Raspberry Pi via SSH:

    ssh hub123456@raspberrypi.local
  4. Instale o Docker se não estiver presente:

    # Install Docker cd curl -fsSL https://get.docker.com | sudo sh # Add your user to docker group sudo usermod -aG docker $USER exit # exit ssh # Log in again
  5. Instale o Docker Compose se não estiver presente:

    # Install Docker Compose sudo apt-get update sudo apt-get install -y docker-compose-plugin
  6. Extraia os arquivos do Hub SDK:

    # Navigate to the home directory cd # Extract the hub-docker.tar.gz file tar -xzf IotMI-HubSDK-Docker-v1.0.0.tar.gz
  7. Navegue até o diretório hub-docker:

    cd IotMI-HubSDK-Docker
  8. Conclua a configuração de integração do Hub para definir a autenticação e as configurações.

    nota

    Você deve estar em YUL nossa DUB região para realizar essa etapa.

  9. Inicie o contêiner Docker:

    # The first time it's called, it will build the container docker compose up -d docker compose logs -f

Saída esperada:

[+] Running 1/1 ✔ Container iotmi-hubsdk-docker-hubsdk-1 Started hubsdk-1 | -\-\-\-\-\-\-Checking USB dongles-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Stopping SDK running processes-\-\- hubsdk-1 | iotmi_mqtt_proxy: no process found hubsdk-1 | ace_eventmgr: no process found hubsdk-1 | ace_zigbee_service: no process found hubsdk-1 | zwave_svc: no process found hubsdk-1 | iotmi_cdmb: no process found hubsdk-1 | iotmi_device_agent: no process found hubsdk-1 | iotmi_lpw_provisioner: no process found hubsdk-1 | iotmi_log_daemon: no process found hubsdk-1 | -\-\-\-\-\-\-Starting Hub SDK-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Creating logs directory-\-\-\-\-\-\-\-\-\- hubsdk-1 | Logs directory created. hubsdk-1 | -\-\-\-\-\-\-Verifying Middleware paths-\-\-\-\-\-\- hubsdk-1 | All middleware libraries exist hubsdk-1 | -\-\-\-\-\-\-Verifying Middleware pre reqs-\-\- hubsdk-1 | AIPC and KVstroage directories exist hubsdk-1 | -\-\-\-\-\-\-Starting HubOnboarding-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting MQTT Proxy-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Staring Log Daemon-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Event Manager-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Zigbee Service-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Zwave Service-\-\-\-\-\-\-\-\-\- hubsdk-1 | /data/aws/iotmi/middleware/AceZwave/bin /data/aws/iotmi hubsdk-1 | /data/aws/iotmi hubsdk-1 | -\-\-\-\-\-\-Starting CDMB-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Agent-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Provisioner-\-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Checking SDK status-\-\-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | root 105 0.2 0.2 1093488 16608 ? Sl 20:51 0:00 ./iotmi_mqtt_proxy -C /data/aws/iotmi/config/iotmi_config.json hubsdk-1 | Process 'iotmi_mqtt_proxy' is running. hubsdk-1 | root 183 0.0 0.0 236272 3152 ? Sl 20:51 0:00 ./middleware/AceCommon/bin/ace_eventmgr hubsdk-1 | Process 'ace_eventmgr' is running. hubsdk-1 | root 190 12.0 0.1 319264 8352 ? Sl 20:51 0:04 ./middleware/AceZigbee/bin/ace_zigbee_service hubsdk-1 | Process 'ace_zigbee_service' is running. hubsdk-1 | root 200 0.0 0.1 1365792 12480 ? Sl 20:51 0:00 ./zwave_svc hubsdk-1 | Process 'zwave_svc' is running. hubsdk-1 | root 233 0.0 0.0 1198704 5760 ? Sl 20:51 0:00 ./iotmi_cdmb hubsdk-1 | Process 'iotmi_cdmb' is running. hubsdk-1 | root 268 0.2 0.2 2017424 21968 ? Sl 20:51 0:00 ./iotmi_device_agent hubsdk-1 | Process 'iotmi_device_agent' is running. hubsdk-1 | root 311 0.1 0.1 1523072 13008 ? Sl 20:51 0:00 ./iotmi_lpw_provisioner hubsdk-1 | Process 'iotmi_lpw_provisioner' is running. hubsdk-1 | root 132 0.0 0.0 875024 7232 ? Sl 20:51 0:00 ./iotmi_log_daemon hubsdk-1 | Process 'iotmi_log_daemon' is running. hubsdk-1 | -\-\-\-\-\-Successfully Started Hub SDK-\-\-\-

Depois de iniciar com sucesso o Hub SDK, continue com a integração e o gerenciamento do dispositivo em. Configuração guiada pelo usuário para integrar e operar dispositivos

nota
  • Para acessar o shell bash do contêiner Docker, execute o seguinte comando:

    docker compose exec hubsdk bash
  • Para reiniciar o contêiner após a reinicialização, execute o seguinte comando:

    docker compose up -d
  • Para atualizar o SDK do Hub, substitua os binários na seguinte pasta:

    hub-docker/iotmi
  • Para reiniciar o contêiner com segurança e, ao mesmo tempo, preservar os dados, faça:

    docker compose down docker compose up -d docker compose logs -f