ЛР3.Ч3.Основи роботи з Cloud Foundry в IBM Cloud
3. Зв'язок застосунку Node-RED з сервісом Cloudant
3.1. Робота застосунку Node-RED з сервісом Cloudant
Хмарний застосунок Node-RED зі стартового набору Node-RED Starter побудований таким чином, що зберігає усі необхідні налаштування в Cloudant. Зокрема, це перелік встановлених модулів та потоки (програма користувача). Необхідність такого збереження пов’язана з тим, що при кожному розгортанні застосунку в droplet, весь його зміст замінюється, тому увесь довготривалий контент необхідно зберігати в зовнішньому сховищі. Cloudant для цього добре підходить, так як Node-RED увесь зміст зберігає в форматі JSON. Щоб переконатися в цьому, достатньо відкрити базу даних Cloudant, що відповідає за Node-RED.
Використовуючи список ресурсів перейдіть на вікно керування сервісом Cloudant (Cloudant Dashboard). У вікні Manage, натисніть “Launch Cloudant Dashboard” для запуску сторінки адміністрування сервісу. У переліку баз даних знайдіть ту, що відповідає за Node-RED, як правило її назва відповідає назві застосунку Node-RED, або має назву «nodered». Структура БД повинна мати три документи (див.рис.7).
рис.7
Відкрийте документ з назвою, що закнічується на «/settings». У ньому вміщуються налаштування модулів. Там також будуть модулі, які Ви встановлювали в минулій частині лабораторної роботи: "node-red-dashboard" та "node-red-contrib-cos".
Відкрийте документ з назвою, що закнічується на «/flow». У ньому вміщується зміст потоків, які Ви розробляли на минулій частині лабораторної роботи.
Нижче розглянемо як відбувається зв'язок застосунку Node-RED із сервісом Cloudant.
3.2. Доступ до сервісів Cloud Foundry
У частині 3.2 лабораторної роботи було показано, що доступ до сервісів IBM відбувається за схемою IAM (IBM Cloud Identity and Access Management). Однак з точки зору Cloud Foundry доступ до сервісів відбувається за іншою схемою, яка показана на рис.8.
рис.8
Ролі Cloud Foundry надають доступ до організацій (organizations) і просторів (spaces) у межах облікового запису. Ролі Cloud Foundry не дозволяють користувачам виконувати дії в контексті сервісу в обліковому записі, як це робиться в IAM. На рівні організації можна призначити такі ролі:
Таблиця 2. Ролі на рівні org.
Organization role |
Permissions (Дозволи) |
Manager |
Керівники організацій можуть створювати, переглядати, редагувати або видаляти spaces в організації, переглядати використання організації та квоти, запрошувати користувачів до організації, керувати тим, хто має доступ до організації та їхні ролі в організації, а також керувати власними доменами для організації . |
Billing manager |
Billing managers можуть переглядати інформацію про час виконання та використання служби для організації на сторінці "Інформаційна панель використання". |
Auditor |
Аудитори організації можуть переглядати вміст програми та послуги в організації. Аудитори можуть також переглядати користувачів в організації та їх призначені ролі, а також квоти для організації. |
На рівні space можна призначити такі ролі:
Таблиця 3. Ролі на рівні space.
Space role |
Permissions (Дозволи) |
Manager |
Space managers можуть додавати існуючих користувачів і керувати ролями в просторі. Менеджер простору може також переглядати кількість примірників, прив'язки служб і використання ресурсів для кожного додатка в просторі. |
Developer |
Розробники простору можуть створювати, видаляти та керувати програмами та послугами в межах простору. Деякі з керуючих завдань включають розгортання додатків, запуск або припинення додатків, перейменування програми, видалення програми, перейменування простору, прив'язки або роз'єднання служби до програми, перегляд кількості чи екземплярів, прив'язки служб і використання ресурсів для кожного додатка в просторі. Крім того, розробник простору може асоціювати внутрішню або зовнішню URL-адресу з додатком у просторі. |
Auditor |
Space аудитори мають доступ тільки для читання до всієї інформації про простір, наприклад, інформацію про кількість примірників, прив'язки служб і використання ресурсів для кожного додатка в просторі. |
Користувачам, яким призначено роль менеджера або developer space, можна отримати доступ до змінної середовища VCAP_SERVICES. Однак користувачеві, якому призначено роль аудитора, не вдасться отримати доступ до VCAP_SERVICES.
Перейдіть на налаштування аккаунту https://cloud.ibm.com/account. У переліку CF orgs буде один запис, який відповідає за ID вашої організації (по суті ваш поштовий ящик). Подивіться яка роль надана вашому обліковому запису і за таблицею 2 подивіться які в неї дозволи. Зробіть клік по імені і зайдіть в налаштування org. Зайдіть на вкладку spaces і за таблицею 3 визначте ваші права на рівні space. Перегляньте зміст вкладок Users, Domains та Quotas.
3.3. Перегляд доступів до сервісів IAM із застосунків Cloud Foundry
Таким чином доступ застосунків CF до сервісів CF, проводиться за ідентифікацією користувача. Існуючий сервіс підключається до існуючого або нового застосунку IBM® Cloud на вкладці Connections інформаційної панелі сервісу. Підключення сервісу CF до застосунку Cloud Foundry створює прив'язку (bind) між ними. Однак при підключенні екземпляра сервісу, керованого IBM IAM до застосунку CF, у відповідному просторі Cloud Foundry автоматично створюється псевдонім (alias) сервісу, керованого IAM, з обов'язковою інформацією про доступ. Цей псевдонім представлений у вигляді екземпляра сервісу Cloud Foundry для відповідного сервісу, керованого IAM. Псевдонім (alias) - це з'єднання між сервісом, керованим IAM, в межах групи ресурсів і застосунком Cloud Foundry в межах org або простору(space). У консолі IBM Cloud з'єднання (псевдонім) представлено у вигляді екземпляра сервісу Cloud Foundry. Можна керувати своїм псевдонімом, змінюючи екземпляр сервісу, що представляє з'єднання.
У консолі IBM Cloud перейдіть в список ресурсів Cloud Foundry Services знайдіть псевдонім ресурсу, що відповідає за з’єднання вашого CF застосунку Node-RED з сервісом Cloudant. Подивіться на значення “API key Name”, воно повинно співпадати з тим, що означено в змінній середовища VCAP_SERVICES.
Перейдіть в налаштування доступу IAM: Manage->Access (IAM) https://cloud.ibm.com/iam#/overview. Перейдіть до вкладки Service ID, потім до пункту контекстного меню Manage Service ID (рис.9).
рис.9
На вкладці Access policies знайдіть роль Manager, що базується на типі Resource (рис.10). Подвійним кліком зайдіть в редагування ролі. У даній ролі повинно бути налаштування доступу до сервісу Cloudant з правами Manager.
рис.10
Таким чином, застосунок Node-RED, підключаючись до псевдоніму сервісу через означений Service ID, що записаний в змінній VCAP_SERVICES зможе підключитися до його екземпляру через IAM доступ.