Какова правильная конфигурация для сохранения хранилища edgeAgent? - PullRequest
0 голосов
/ 24 апреля 2020

Я работаю над Azure проектом IoT Edge. В настоящее время я проверяю список готовности к производству . Я следовал документации, чтобы использовать хранилище в файловой системе хоста для модулей edgeAgent и edgeHub.

Когда я запускаю sudo iotedge check edgeHub в порядке, но edgeAgent выдает предупреждение:

‼ production readiness: Edge Agent's storage directory is persisted on the host filesystem - Warning
    The edgeAgent module is not configured to persist its /tmp/edgeAgent directory on the host filesystem.
    Data might be lost if the module is deleted or updated.
    Please see https://aka.ms/iotedge-storage-host for best practices.
√ production readiness: Edge Hub's storage directory is persisted on the host filesystem - OK

Вот фрагмент из шаблона развертывания:

"systemModules": {
  "edgeAgent": {
    "type": "docker",
    "settings": {
      "image": "mcr.microsoft.com/azureiotedge-agent:1.0",
      "createOptions": {
        "HostConfig": {
          "Binds": [
            "/home/pi/iotedge/edgeAgent/storage/:/iotedge/storage/"
          ]
        }
      }
    },
    "env": {
      "storageFolder": {
        "value": "/iotedge/storage/"
      }
    }
  },
  "edgeHub": {
    "type": "docker",
    "status": "running",
    "restartPolicy": "always",
    "settings": {
      "image": "mcr.microsoft.com/azureiotedge-hub:1.0",
      "createOptions": {
        "HostConfig": {
          "Binds": [
            "/home/pi/iotedge/edgeHub/storage:/iotedge/storage/"
          ],
          "PortBindings": {
            "5671/tcp": [
              {
                "HostPort": "5671"
              }
            ],
            "8883/tcp": [
              {
                "HostPort": "8883"
              }
            ],
            "443/tcp": [
              {
                "HostPort": "443"
              }
            ]
          }
        }
      }
    },
    "env": {
      "storageFolder": {
        "value": "/iotedge/storage/"
      }
    }
  }
},

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Начиная с версии 1.0.9, существует проблема, при которой конфигурация edgeAgent не обновляется, если не обновлен тег изображения. Два варианта из вашего текущего состояния:

  • Используйте в настройках изображения тег c (всегда рекомендуется). Например, mcr.microsoft.com/azureiotedge-agent:1.0.9

  • Удалить контейнер edgeAgent на устройстве: docker rm -f edgeAgent. Он будет перезапущен менее чем через 30 секунд, и будет выбрана новая storageFolder env var.

Запустите 'iotedge check' снова после обновления контейнера, и это предупреждение должно go прочь.

0 голосов
/ 25 апреля 2020

Я следовал той же документации и смог избежать предупреждений о проверке готовности к работе на моем Raspberry Pi 3.

1) Я настроил «Связки» согласно документации Хранилище модуля связи к хранилищу устройства

"Binds":["/etc/iotedge/storage/:/iotedge/storage/"]

2) Я предоставил пользователю доступ на HostStoragePath с терминала S SH.

sudo chown 1000 /etc/iotedge/storage/
sudo chmod 700 /etc/iotedge/storage/

3) Перезапустил Raspberry Pi 3, чтобы убедиться, что разрешающий доступ вступает в силу.

  • Убедитесь, что на вашем пограничном устройстве есть доступные папки хранилища хоста.
  • Убедитесь, что вы предоставили пользователю полный доступ к этим папкам.
  • Попробуйте выполнить развертывание с обновленным манифестом, вероятно, оно должно работать.
...