Статьи

Как установить Mono на Raspberry Pi

  • Этот пост существует, чтобы помочь со статьей MSDN Magazine, которую я создаю
  • Он предоставляет некоторые детали низкого уровня для статьи

    • Как установить Mono и корневые сертификаты на Raspberry Pi
    • Как создать мобильный сервис Azure
    • Как создать собственный API-интерфейс внутри мобильных служб Azure, в который может звонить raspberry pi
    • Как создать учетную запись хранения Azure

МОНО — КАК УСТАНОВИТЬ НА РАСПЕРРИ ПИ

  • Почему моно?
  • Как установить Mono на малиновый пи
  • Установка доверенных корневых сертификатов на raspberry pi
  • http://www.mono-project.com/Main_Page
  • Кроссплатформенная реализация с открытым исходным кодом, реализация C # и CLR, двоичная совместимая с Microsoft.NET
  • Mono — это бесплатный проект с открытым исходным кодом, возглавляемый Xamarin (ранее Novell), который предоставляет набор инструментов, совместимый с .NET Framework, включая, среди прочего, компилятор C # и Common Language Runtime.

ПОЧЕМУ МОНО?

  • Потому что это позволяет нам писать код .net, скомпилированный в Windows
  • Мы можем просто скопировать двоичные файлы из Windows в Linux и запустить их как есть
  • На устройстве raspberry pi можно использовать приложение .net, чтобы сделать фотографию и загрузить ее в хранилище Windows Azure.

КАК УСТАНОВИТЬ НА RASPBERRY PI RUNNING LINUX

Вы выдадите следующие команды:

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get install mono-complete

Первая команда проверяет актуальность всех локальных индексов пакетов с учетом изменений, внесенных в репозитории. Вторая команда устанавливает полный инструментарий Mono и время выполнения.

УБЕДИТЕСЬ, ЧТО ВАШИ МОНО ПРИЛОЖЕНИЯ МОГУТ СДЕЛАТЬ ВЫСТАВКИ НА ОСНОВЕ ОТДЫХА HTTPS

Эта команда загружает доверенные корневые сертификаты с веб-сайта Mozilla LXR в хранилище сертификатов Mono. После завершения Raspberry PI сможет отправлять веб-запросы с использованием HTTPS-запросов в Mono.

pi@raspberrypi ~ $ mozroots --import --ask-remove --machine

СОЗДАНИЕ НОВОГО СЧЕТА МОБИЛЬНЫХ УСЛУГ AZURE

  • Учетная запись мобильных сервисов необходима для размещения приложения Node.js, которое предоставляет подписи общего доступа для устройств Raspberry Pi
  • Подпись общего доступа необходима для raspberry pi, чтобы он мог напрямую и безопасно загружать фотографии в хранилище Azure.

ШАГИ ДЛЯ СОЗДАНИЯ АЗУРСКОЙ МОБИЛЬНОЙ СЛУЖБЫ

  • Приведенные ниже действия помогут создать мобильный сервис Azure.

    • Служба будет использоваться для размещения приложения Node.js, взаимодействующего с устройствами raspberry pi
    • Мы предоставим базу данных SQL, хотя изначально она не будет использоваться

СЛЕДУЙТЕ ЭТИМ ШАГАМ ПО СОЗДАНИЮ МОБИЛЬНОЙ СЛУЖБЫ

  • Войдите в портал Azure
  • Выберите МОБИЛЬНЫЕ УСЛУГИ в левой панели меню на портале Azure.
  • В левом нижнем углу выберите «+ NEW», чтобы создать новую мобильную службу Azure.
  • Убедитесь, что вы выбрали «COMPUTE / MOBILE SERVICE / CREATE».
  • Теперь вы введете URL. Мы будем называть эту услугу raspberrymobileservice.
  • Для базы данных мы выберем «Создать новый экземпляр базы данных SQL».
  • РЕГИОН, который мы выбрали, — это «Запад США».
  • BACKEND — это «JavaScript».
  • Нажмите стрелку «->», чтобы перейти к следующему экрану.
  • На этом экране вы увидите «Указать настройки базы данных».
  • ИМЯ вашей базы данных будет основываться на URL, который вы ввели ранее.
  • В этом случае база данных называется «raspberrymobileservice_db».
  • Вам нужно будет выбрать СЕРВЕР. Мы выберем «Новый сервер базы данных SQL» из выпадающего списка.
  • Вам нужно будет указать имя пользователя для входа в систему и пароль для входа в систему.
  • Запишите предоставленный вами логин, так как он понадобится позже

СОЗДАНИЕ ТАМОЖЕННОГО API

  • Мобильные службы Azure позволяют создавать пользовательский API, написанный на JavaScript, который можно вызывать с устройства Raspberry Pi с помощью REST.
  • Этот пользовательский API на самом деле просто приложение Node.js, работающее на сервере.

СОЗДАНИЕ API ДЛЯ ОТВЕТА НА УСТРОЙСТВО, ПЫТАЮЩИЕСЯ ЗАГРУЗИТЬ ФОТОГРАФИИ

  • Теперь, когда служба установлена, мы обратим наше внимание на создание API, к которому устройство может обращаться для загрузки фотографии.
  • Войдите в портал Azure
  • Ваша мобильная услуга займет несколько минут, и вы должны увидеть флаг «Готов» как «Статус» для вашей услуги.
  • Как только он будет готов, вы можете развернуть свой сервис, чтобы настроить его поведение. Справа от названия службы нажмите кнопку со стрелкой вправо «->», чтобы просмотреть подробности службы.

    • Верхняя строка меню будет предлагать много вариантов, но нас интересует один под названием «API».
    • API позволяет создавать серию вызовов API node.JS, к которым устройство может обращаться с использованием основанных на отдыхе подходов.
  • Нажмите на «API». оттуда выберите «CREATE A CUSTOM API». Вам будет предложено указать имя API. Введите «фотографии» для имени API.
  • Ниже вы увидите серию выпадающих списков, которые относятся к разрешению.
  • Мы оставим значение по умолчанию «Любой, у кого есть ключ приложения».

  • Нажмите на галочку, чтобы завершить процесс.
  • Название только что созданной точки доступа «Фотографии» должно отображаться в интерфейсе портала.
  • Чтобы углубиться в API фотографий, нажмите правую клавишу со стрелкой «->». Клавиша со стрелкой вправо будет справа от названия API «Фотографии».
  • На этом этапе вы должны увидеть базовый скрипт, который был предоставлен по умолчанию. Мы перезапишем этот скрипт по умолчанию нашим собственным скриптом, как описано в статье MSDN Magazine.

СОЗДАНИЕ СЧЕТА ХРАНЕНИЯ ДЛЯ ХРАНЕНИЯ ФОТОГРАФИЙ

  • Перейдите на портал и создайте учетную запись хранения
  • Создать контейнер для фотографий
  • Получить:

    • Имя учетной записи хранения (вы предоставите имя)
    • Ключ доступа к учетной записи хранения (генерируется для вас)
    • Имя контейнера (вы создадите)

СОЗДАНИЕ СЧЕТА ХРАНЕНИЯ

  • Нам понадобится учетная запись хранения, чтобы мы могли загружать фотографии в нее.
  • Шаги хорошо задокументированы здесь: http://azure.microsoft.com/en-us/documentation/articles/storage-create-storage-account/
  • В нашем случае мы называем учетную запись хранения raspberrystorage.

  • Выполнив эти шаги, убедитесь, что вы выбрали местоположение учетной записи хранения, которое будет таким же, как и для вашей учетной записи мобильных служб.
  • Это позволяет избежать ненужных задержек или затрат на пропускную способность между центрами обработки данных.
  • Как только учетная запись хранения будет создана, нам нужно будет создать в ней контейнер.
  • Фотографии или любой блоб в этом отношении всегда хранятся в контейнере. Чтобы создать контейнер, просмотрите новую учетную запись хранения и выберите КОНТЕЙНЕРЫ в верхнем меню. Оттуда выберите CREATE A CONTAINER. Диалоговое окно нового контейнера запросит имя для вашего контейнера. Обратите внимание на имя, которое вы предоставляете. Мы называем наш контейнер «Фотоконтейнер».

image001

  • Когда устройство raspberry pi загружает фотографии в учетную запись хранения, оно будет предназначаться для определенного контейнера, такого как тот, который мы только что создали. Затем вас попросят указать права доступа. Для простоты мы выберем права доступа Public Blob.

ВХОД НАСТРОЙКИ ПРИЛОЖЕНИЯ

  • Вместо того, чтобы жестко кодировать информацию об учетной записи хранения в своих приложениях JavaScript / Node.js, вам следует рассмотреть возможность использования параметров приложений внутри портала мобильных служб Azure.
  • Этот пост также обсуждает это хорошо:

    • http://blogs.msdn.com/b/carlosfigueira/archive/2013/12/09/application-settings-in-azure-mobile-services.aspx
      • «Идея настроек приложения — это набор пар ключ-значение, которые можно установить для мобильной службы (либо через портал, либо через интерфейс командной строки), и эти значения затем можно будет прочитать во время выполнения службы».

НАВИГАЦИЯ К ПРИЛОЖЕНИЯМ

  • Перейдите в раздел портала мобильных служб Azure. Детализируйте конкретную службу, нажав стрелку ниже.

image002

  • Выберите из меню настройки вверху

image003

  • Прокрутите вниз до самого дна, чтобы увидеть настройки приложения

image004

  • Обратите внимание, что нам нужно ввести: — Нам нужно получить это из хранилища Azure — PhotoContainerName — AccountName — AccountKey

    • Мы получаем эту информацию из раздела хранилища Azure на портале. Обратите внимание, что вам нужно подготовить учетную запись хранения, чтобы иметь эту информацию.
    • Как получить AccountKey с помощью служб хранилища Azure

image005

  • Теперь вы можете получить ключи доступа

image006

КАК NODE.JS ДОСТУПАЕТСЯ К НАСТРОЙКАМ ПРИЛОЖЕНИЯ

  • Вы создадите приложение Node.js внутри мобильных служб Azure.

    • Смотрите предыдущие шаги

НАСТРОЙКА ЧТЕНИЯ ПРИЛОЖЕНИЯ ПРИЛОЖЕНИЯ NODE.JS

  • Вы начнете с возврата к мобильным службам Azure и углубитесь в свою недавно созданную службу.

    • Мы позвонили в наш raspberrymobileservice

image007

  • Как только вы нажмете API, вы должны увидеть:

    image008

  • Обратите внимание, что настройки приложения читаются в строках с 12 по 14.