Використання змінних середовища (environment variables)

ДОВІДНИК З NODE-RED українською мовою

Використання змінних середовища (environment variables)

Основне джерело, Design: Using environment variables

Змінні середовища (environment variables) – це конфігураційні змінні, які задаються у файлі settings.js безпосередньо, або через “Project Settings” чи налаштування підпотоку. Ці змінні можна використовувати (зчитувати) в середовищі виконання для різноманітних функцій.

Загальні принципи використання змінних середовища (системних або користувацьких)

Using environmental variables (system or user defined)

Змінні середовища можуть бути доступні через добавлення в розділ functionGlobalContext: файлу settings.js наступної властивості (перераховуються через кому):

env: process.env

Після введення ви можете отримати доступ до них у будь-якому вузлі, який має текстове поле (a/z), або у функціональному вузлі.

ОСОБЛИВІ ВИПАДКИ: якщо Ви хочете використовувати HOSTNAME або оголосити власну змінну навколишнього середовища, потрібно внести додаткову зміну у файл settings.js. Додайте такі рядки безпосередньо перед рядком module.exports = {:

process.env.HOSTNAME = require(‘os’).hostname();
process.env.FOO = ‘just another bar’;

Після внесення змін у файл settings.js зупиніть/перезапустіть node-red, щоб зробити їх доступними для використання.

Наприклад: для використання в текстовому полі (a/z) типу вузла INJECT використовуйте формат: $(LOGNAME). Для використання в FUNCTION напишіть наступне (див. Вузол Function):

var env = global.get(‘env’);
msg.payload = env.LOGNAME;

Встановлення властивості вузлу

Будь-яку властивість вузла можна встановити змінною середовища, встановивши його значення на рядок форми ${ENV_VAR}. Коли програма виконує завантаження потоків, вона замінить значення цієї змінної середовища перед передачею її у вузол.

Це працює лише в тому випадку, якщо він замінює всю властивість - її не можна використовувати для заміни лише частини значення. Наприклад, НЕ можливо використовувати CLIENT-${HOST}.

Оскільки вузли надають власне діалогове вікно редагування, не всі властивості забезпечуватимуть введення тексту, яке можна використовувати для введення рядка в форматі env-var. У цьому випадку ви можете розглянути можливість редагування файлу потоку вручну, щоб встановити властивість.

Використання віджету TypedInput

TypedInput Environment Variable

Тип змінної TypedInput Environment

У редакторі віджетв TypedInput може запропонувати “змінну середовища” як тип. Коли цей тип обраний, його значення буде оцінено наступним чином:

JSONata вирази

До змінних середовища можна отримати доступ у виразах JSONata, таких як у вузлі Change, використовуючи функцію $env:

$env('ENV_VAR')

Вузол Function

У вузлі Function доступ до змінних середовища можна отримати за допомогою функції env.get:

let foo = env.get("FOO");

Властивості екземпляру Subflow

Починаючи з 0,20, підпотоки можна налаштувати з властивостями екземпляра. Вони відображаються як змінні середовища в підпотоці і можуть бути налаштовані для окремих екзмеплярів підпотоку.

Наприклад, з урахуванням API REST, який забезпечує доступ до записів різних типів, для доступу до API та обробки відповіді може бути створений підпотік, використовуючи змінну середовища, щоб визначити, до якого типу записів слід звертатися. Окремі екземпляри Subflow можуть бути налаштовані під конкретні типи.