Nano Hash - криптовалюты, майнинг, программирование

Как я могу указать, какой application.conf пользователю при развертывании на cloudbees

Я следовал инструкциям здесь https://developer.cloudbees.com/bin/view/RUN/Playframework и может быть развернут. Но он использует только application.conf.

Мой идентификатор приложения — «mrm», поэтому я создал «mrm.conf» в каталоге conf.

Затем я попытался «играть в cloudbees-deploy-config mrm», но после развертывания я получаю это сообщение об ошибке:

[success] Total time: 110 s, completed Mar 15, 2013 9:08:36 PM
[error] Not a valid command: mrm (similar: run)
[error] Expected '/'
[error] Expected ':'
[error] Not a valid key: mrm (similar: run)
[error] mrm

И развертывание по-прежнему использует application.conf

Затем я запустил play и ввел: «cloudbees-deploy-config mrm». У меня не было ошибки, но этот способ также был развернут с помощью application.conf.

Мой "mrm.conf" содержит следующее:

include "application.conf"
cloudbees.applicationId=mrm

Я попытался следовать инструкциям, описанным в этом запросе на включение: https://github.com/CloudBees-community/sbt-cloudbees-play-plugin/pull/1

Согласно справке по игре, это должно быть возможно так:

cloudbees-deploy-config

  Deploy a configuration of your app to a Run@Cloud app id. Arguments are:
  (1) the base name of a conf file in your project's conf directory, defaulting to     "application"/
  (2) Optional. The application id to which this configuration should deploy. You can omit this
      arg if you have either set cloudbees.applicationId in the config file from the first
      arg or have set the project ID in your PlayProject.

  Example usage: `> cloudbees-deploy-config live`, where live.conf exists in the project's conf/
  directory and contains a key cloudbees.applicationId.

Любые советы о том, что я могу делать неправильно? Мне нужно, чтобы он использовал mrm.conf при развертывании cloudbees...

ОТВЕЧАТЬ:

play "cloudbees-deploy-config mrm"

ОБНОВЛЕНИЕ: только что опубликовал краткое описание решения в своем блоге: to-cloudbees/" rel="nofollow">http://www.poornerd.com/2013/04/08/how-deploy-play-framework-apps-with-other-configurations-to-cloudbees/


  • Почему вы не можете использовать application.conf? 16.03.2013
  • Я не могу использовать один и тот же конф, потому что у меня другие настройки. Мне также нужен файл конфигурации для разработки и запуска для cloudbees, а также для моей локальной разработки. 16.03.2013
  • Итак, как я предлагаю - используйте альтернативную конфигурацию для локальной разработки. 16.03.2013
  • Я мог бы использовать альтернативный conf для локального разработчика, но мне все еще нужны 2 разных для 2 разных конфигураций на cloudbees. 16.03.2013
  • Это то место, где я не могу вам помочь, так что... извините, нет опыта облачных пчел, в любом случае подчеркните это в своем вопросе, я надеюсь, что кто-то наконец даст вам правильный ответ. 16.03.2013
  • Если я начну играть, то введу cloudbees-deploy-config mrm, тогда он будет развернут с помощью mrm.conf 17.03.2013

Ответы:


1

Как настроить конфигурацию приложений/фреймворков в CloudBees, зависит от фреймворка. Основная техника, которую вам нужно использовать, это:

  1. Выясните, как вы скажете своему приложению загружать этот альтернативный файл конфигурации при локальном запуске.
  2. Выясните, как заставить CloudBees делать то же самое при запуске вашего приложения.

Загрузка альтернативного файла конфигурации воспроизведения

На основе Конфигурации или ProductionConfiguration на сайте Play2, похоже, вы можете указать системное свойство -Dconfig.resource=CONF_FILENAME, чтобы указать Play2 загрузить вашу альтернативную конфигурацию:

Использование -Dconfig.resource

Он будет искать альтернативный файл конфигурации в пути к классам приложения (обычно вы предоставляете эти альтернативные файлы конфигурации в каталоге conf/ вашего приложения перед упаковкой).

 $ start -Dconfig.resource=prod.conf

Основываясь на этом, теперь мы знаем, КАК указать вашей среде выполнения (Play) загрузить альтернативный файл конфигурации. Далее нам нужно выяснить, как заставить CloudBees делать то же самое.

Настройка свойств системы в CloudBees

CloudBees SDK включает параметры командной строки для настройка параметров конфигурации для вашего приложения, которые будут внедрены как системные свойства (для приложений на основе JVM) во время запуска. Это можно сделать, указав параметр -Pname=value в командной строке app:deploy или вместо этого вы можете использовать команду config:set.

Поскольку вы используете плагин SBT для развертывания своего приложения (которое может не поддерживать эту функцию), вероятно, проще всего использовать команду config:set SDK:

bees config:set -a APPID config.resource=mrm.conf

Примечание. Чтобы применить этот параметр конфигурации, вам потребуется перезапустить приложение.

Если я правильно понимаю документы Play2, это должно привести к тому, что Play загрузит файл конфигурации в conf/mrm.conf.

Более простое решение? - Просто переопределить ключ

Основываясь на вашем примере, я заметил, что вы, кажется, пытаетесь переопределить только значение определенного ключа конфигурации в вашем файле application.conf по умолчанию...

Глядя на ProductionConfiguration документы Play, кажется, что переопределение всего файла конфигурации может быть излишним, и вместо этого вы могли бы просто укажите значение, которое вы хотите переопределить, используя системное свойство. Команда CloudBees SDK config:set предназначена именно для этого варианта использования и обеспечивает простой способ для вас, чтобы ввести пользовательские параметры приложения. Стеки на основе Java в CloudBees будут вводить эти параметры в качестве свойств системы, что означает, что они должны автоматически подхватываться вашим приложением Play.

На основе примера переопределения в вашем файле mrm.conf должно работать следующее:

bees config:set -a APPID cloudbees.applicationId=mrm

Если у вас это работает правильно, я добавлю часть этой информации обратно в документы CloudBees Play.

28.03.2013
  • Только что обновился до cloudbees SDK 0.7.0, но он все равно не распознает config:set bees help config:set CloudBees SDK version: 0.7.0 Type 'bees help <subcommand>' for help on a specific subcommand. 28.03.2013
  • Кроме того, если я добавлю applicationId в Build.scala таким образом, он не использует файл conf с таким же именем. .settings( CloudBees.applicationId := Some("mrm") ) 28.03.2013
  • Вы написали: Если я правильно понимаю документацию Play2, это должно привести к тому, что Play загрузит файл конфигурации в conf/mrm.conf. -› это я тоже понял. 28.03.2013
  • Откуда вы получаете этот SDK? Последняя версия 1.3.1. Повторно загрузите с developer.cloudbees.com/bin/view/RUN/BeesSDK 28.03.2013
  • хорошо, я получил новейший SDK - мне нужно было bees config:set -a APPID config.resource=mrm.conf, тогда я мог бы использовать play cloudbees-deploy, но это также только частичное решение, так как мне нужно будет переключаться между каждым проектом, тестом и производством. 29.03.2013
  • основываясь на документах, я ожидал, что это сработает (это то, что я действительно хотел бы сделать): `play cloudbees-deploy-config mrm` 29.03.2013
  • Я не понимаю, что это значит, что вам нужно переключаться туда и обратно. Вы можете установить соответствующий параметр config.resource для каждого приложения. В любом случае, похоже, что вы хотите использовать SBT и хотите сообщить об ошибке или запросе функции в плагине CloudBees SBT. Я бы предложил открыть тикет против этого проекта на github [github. com/CloudBees-community/sbt-cloudbees-play-plugin/ вместе с четким описанием того, чего вы пытаетесь достичь. 29.03.2013
  • play cloudbees-deploy-config mrm должен работать, по крайней мере, когда я использую sbt напрямую. 29.03.2013
  • @IvanMeredith, ты мужчина! Именно эти кавычки вокруг cloudbees-deploy-config mrm (включая conf/appID) сделали свое дело. Я никогда не мог заставить его распознать дополнительный параметр. Итак, теперь я мог просто набрать это: `play cloudbees-deploy-config mrm`` 29.03.2013
  • @ swashbuck1r, можете ли вы обновить часть об использовании кавычек в сочетании с cloudbees-deploy-config? На этой странице документов нет примера, который показывает развертывание с определенной конфигурацией. 29.03.2013
  • Я рад, что смог потратить все это время на написание своего ответа только для того, чтобы Иван сказал: «Вы добавили кавычки?». :) Я рад, что у вас есть ответ сейчас. Я обновил вики-документ. 29.03.2013

  • 2

    Я бы предложил обратную ситуацию: для живого приложения поместите все конфигурации, необходимые для CloudBees, в application.conf, чтобы вам не нужно было переопределять файл конфигурации.

    На локальной машине создайте что-то вроде local_conf.conf и там «деактивируйте» параметры конфигурации, специфичные только для CloudBees. Кроме того, вы можете написать однострочный bash-скрипт в локальной среде для запуска приложения с дополнительной конфигурацией (так что вам не нужно будет каждый раз использовать -Dconfig.file-...".

    15.03.2013
  • Согласно справке, при развертывании в cloudbees должна быть возможность указать конфигурацию: 16.03.2013
  • У меня нет опыта работы с CB, поэтому я предложил вам свой предпочтительный подход - в большинстве случаев он работает 16.03.2013

  • 3

    Это только частичное решение, но:

    Если я начну играть, то ввожу "cloudbees-deploy-config mrm", тогда он разворачивается с помощью mrm.conf

    16.03.2013
  • Я до сих пор не могу понять, как войти в play cloudbees-deploy-config mrm из командной строки моей оболочки. Я действительно не хочу сначала начинать играть, а затем каждый раз заходить во вторую часть. Либо ошибка, либо я неправильно передаю параметр mrm. 18.03.2013
  • @IvanMeredith спасибо, да, именно этих цитат мне не хватало! 29.03.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..