VarsToSharedMap#

Помещает значения заданных переменных в разделяемый кэш. Работа с хранилищем shared map, построенном на базе Shared Memory в Nginx.

Параметры:

Название

Обязательность

Допустимые значения

Описание

operation

+

ADD/REPLACE/INCREMENT

Тип операции в случае, если операция не определена в правиле: ADD - добавление; REPLACE - замена; INCREMENT - увеличение существующего значения на заданную дельту (только для числовых значений)

shared_store_name

+

Строка, содержащая имя разделяемого хранилища

Должно указываться имя ранее объявленного хранилища

lifetime

-

Текстовое значение с суффиксом: ms - миллисекунды; s - секунды; m - минуты; h - часы; d - дни; w - недели; M - месяцы, 30 дней; y - годы, 365 дней

Время жизни помещаемого в кэш значение, по истечении которого оно будет удалено. Используется, если параметр не задан в правиле

rules

+

Список правил вида: {var: имя_переменной, key: ключ, operation: ADD/REPLACE/INCREMENT, lifetime: время жизни}

key: ключ элемента для вставки, изменения; var: имя переменной из которой берут значения; lifetime: время жизни.

Заполняемые переменные:

Название

Диапазон значений

Описание

clj_shared_map_error

MESSAGE_UNKNOWN/DEFAULT_ERROR/EMPTY_QUEUE/ALREADY_EXISTS

MESSAGE_UNKNOWN - попытка получить сообщение по ключу, который отсутствует в кэше; DEFAULT_ERROR - внутренняя ошибка; EMPTY_QUEUE - очередь/кэш пуст; ALREADY_EXISTS - сообщение с таким ключом уже есть в кэше

Переменная заполняется только в случае ошибки.

Пример:

system:
  storages:
    - name: storage_1
services:
 service_http_proxy:
  - id: 1
    chains:
      - action: VarsToSharedMap
        conditions:
         - {var: request_method, value: PUT, operator: "="}
        params:
          shared_store_name: storage_1
          rules:
             - {var: $request_uri, key: last_request_uri, operation: REPLACE, lifetime: 24h}
             - {var: $remote_addr, key: last_client_addr, operation: REPLACE, lifetime: 24h}

В примере, в разделяемый кэш помещаются значения ip адреса клиента, обратившегося последним и uri запроса, пришедшего последним.