2015-03-13 3 views
0

Я установил узел-push-сервер. Конфигурация загружается из JSON как это:Как открыть переменные окружения Openshift на json

{ 
    "webPort": 8000, 

    "mongodbUrl": "mongodb://username:[email protected]/database", 

    "gcm": { 
     "apiKey": "YOUR_API_KEY_HERE" 
    }, 

    "apn": { 
     "connection": { 
      "gateway": "gateway.sandbox.push.apple.com", 
      "cert": "/path/to/cert.pem", 
      "key": "/path/to/key.pem" 
     }, 
     "feedback": { 
      "address": "feedback.sandbox.push.apple.com", 
      "cert": "/path/to/cert.pem", 
      "key": "/path/to/key.pem", 
      "interval": 43200, 
      "batchFeedback": true 
     } 
    } 
} 

Как я могу установить переменных окружения для моего приложения в этом JSon файле?

ответ

2

Я не думаю, что это возможно. Однако вы должны иметь возможность изменять все эти настройки в коде. Например, в узле вы можете: process.env.OPENSHIFT_VARIABLENAME прочитать переменную окружения.

Пример строки подключения MongoDB из docs:

//provide a sensible default for local development 
mongodb_connection_string = 'mongodb://127.0.0.1:27017/' + db_name; 

//take advantage of openshift env vars when available: 
if(process.env.OPENSHIFT_MONGODB_DB_URL){ 
    mongodb_connection_string = process.env.OPENSHIFT_MONGODB_DB_URL + db_name; 
} 

В качестве альтернативы, есть быстрая и простая развертываемая передача называется AeroGear толчок, который может удовлетворить ваши потребности.

+0

Да, я прочитал документацию, но я не имею представления о AeroGearPush. Я читаю это. Большое спасибо и извините за мой английский: D –

1

Конфигурационные файлы могут быть неудобными, потому что включение их в исходное репо не всегда является хорошим шагом.

Развертывание OpenShift - это в основном git push -driven, поэтому есть несколько вариантов для правильного решения ваших конфигураций на сервере.

Настройка вашего сервиса с использованием ENV vars является наиболее распространенным подходом, но поскольку для этого требуется плоский файл, вам нужно найти способ обновить файл с правильными значениями.

Если вы знаете, какие ключи и значения необходимы, вы должны иметь возможность написать сценарий, который обновляет пример json или объединяет два json-объекта для создания плоского файла конфигурации, включая строки node-pushserver.

Похоже mongodbUrl, webPort, (и domain?) Должны быть заполнены с OpenShift предоставленных значений (при наличии). config-multipaas может помочь с этим.

я бы, вероятно, implement the config bootstrapping/merging work as a build step, что позволяет приготовительному конфигурационный файл и запустить node-pushserver в это обычный способ