Введение:

В этой статье мы рассмотрим реализацию простого флага функции с помощью GitLab в проекте Node.js TypeScript. Флаги функций — это мощный метод, который позволяет вам включать или отключать определенные функции в вашем приложении без повторного развертывания кода. Мы создадим простое приложение, которое печатает сообщение, а затем используем флаг функции GitLab, чтобы контролировать, печатается ли сообщение.

Предпосылки:

  • Node.js установлен
  • Аккаунт GitLab
  • Базовое понимание TypeScript

Давайте погрузимся!

Шаг 1. Создание проекта Node.js TypeScript Сначала мы создадим новый проект Node.js и настроим TypeScript. Откройте терминал и выполните следующие команды:

$ mkdir gitlab-feature-flag-example
$ cd gitlab-feature-flag-example
$ npm init -y
$ npm install typescript ts-node @types/node --save-dev
$ npx tsc --init

Шаг 2. Реализуйте функцию Затем создайте файл с именем index.ts в корне проекта и добавьте следующий код:

const printMessage = () => {
  console.log('Hello, this is a feature controlled by a GitLab feature flag!');
};

printMessage();

Эта простая функция выводит сообщение на консоль. Мы будем контролировать выполнение этой функции с помощью флага функции GitLab.

Шаг 3. Установите флаг функции GitLab В своем проекте GitLab перейдите в раздел «Развертывания» › «Флаги функций» и нажмите «Новый флаг функции». Назовите свой флаг функции print_message_feature и включите его. У вас также есть возможность указать среды, в которых доступен этот флаг функции. Для этого вам нужно выбрать окружение для флага, нажав кнопку «+» в разделе «Среды» при создании или редактировании флага функции в GitLab.

Шаг 4. Добавьте Unleash SDK в проект. Мы будем использовать Unleash SDK для взаимодействия с флагами функций GitLab. Установите Unleash SDK и его типы, запустив:

$ npm install unleash-client --save

Шаг 5: настройка клиента Unleash Теперь давайте настроим клиент Unleash в нашем index.ts файле:

import { initialize, isEnabled } from 'unleash-client';

// Replace with your GitLab instance URL and project ID
const apiURL = 'https://gitlab.example.com';
const instanceId = 'your_gitlab_instance_id';

const unleash = initialize({
  appName: 'replace this value with environment that your application is running at',
  url: `${apiURL}`,
  instanceId,
});

unleash.on('ready', () => {
  if (isEnabled('print_message_feature')) {
    printMessage();
  } else {
    console.log('Feature is disabled.');
  }
});

Замените заполнители URL-адресом вашего API и идентификатором экземпляра. Вы можете найти эту информацию, перейдя в «Развертывания» › «Флаги функций» в вашем проекте GitLab и нажав кнопку «Настроить». Это отобразит требуемый URL-адрес API конфигурации клиента Unleash и идентификатор экземпляра.

Шаг 6. Запустите приложение. Запустите приложение с помощью следующей команды:

$ npx ts-node index.ts

Сообщение должно быть напечатано или не напечатано в зависимости от статуса флага функции в GitLab.

Заключение

Мы создали простое приложение Node.js TypeScript, которое использует флаги функций GitLab для управления выводом сообщения на печать. Теперь вы можете экспериментировать с включением и отключением функций без повторного развертывания кода. Тот же подход можно применить к более сложным функциям и функциям. Удачного кодирования!