CloudControl — это облачная платформа, очень похожая на Heroku. Создание надстройки cloudControl очень похоже на создание надстройки Heroku, но есть некоторые отличия. Эта статья объясняет эти различия.

Введение

Надстройка GroupDocs для cloudControl — это веб-инструмент, который можно установить в любом веб-приложении для обеспечения функциональности GroupDocs:

  • Создайте нового пользователя GroupDocs с бесплатным планом и получите идентификатор пользователя и закрытый ключ для этого пользователя. Это делается автоматически при установке надстройки.
  • Пользователь может изменить план платежей, используя функцию изменения плана надстройки.
  • Доступ к любым методам из API GroupDocs с использованием идентификатора клиента и закрытого ключа (которые вы можете получить из надстройки). Мы создали этот пример, который показывает, как использовать надстройку и SDK GroupDocs Python для некоторых основных действий.

Требования

  • Кенса инструмент
  • Инструмент управления облаком
  • Питон 2.7
  • приложение cloudControl

Создание надстройки

Процесс создания надстройки cloudControl такой же, как и создание надстройки Heroku, но, как я уже говорил ранее, с парой отличий. Мы не будем вдаваться в подробности того, как создать надстройку, потому что у Heroku есть много документации для этого, и вы сами решаете, как ее создавать. Я только покажу, в чем именно отличия. Давайте предположим, что у нас уже есть крутой аддон Heroku, и мы хотим пересобрать его для cloudControl:

  1. Установите инструменты Kensa и cloudControl. Они помогают управлять надстройками и приложениями cloudControl. Узнайте, как установить инструмент cloudControl.
  2. После установки инструментов измените файл addon-manifest.json. Он содержит всю основную информацию об установке дополнений, например, какие переменные среды будут созданы и откуда можно загрузить и установить файлы дополнений.
    • Перед загрузкой отредактированного файла addon-manifest.json установите переменную среды ADDONS\URL=https://api.cloudcontrol.com:.
    • Укажите рабочий сервер. Heroku потребовал от вас указать рабочий сервер, а затем создал URL-адрес, используемый для предоставления надстройки, добавив к нему «/heroku/resources». Теперь укажите хэш вместо строки и измените «/heroku/resources» на «/cloudcontrol/resources».
    • Добавьте “sso\salt”:“ПАРОЛЬ” и “production”: {“base\url”:“https://your.add-on.com/cloudcontrol/resources", “sso\url”:“https:/ /your.add-on.com/cloudcontrol/resources”}.
  3. Измените «heroku\id» на «cloudcontrol\id» в файлах дополнения.
  4. После внесения изменений протестируйте надстройку с помощью тестов Kensa, запустив ее в консоли: kensa test provision и kensa deprovision test. [caption id=“attachment\3488” align=“alignnone” width=“600” caption=“Тесты Kensa”]
  5. Если тесты пройдены, отправьте addon-manifest.json в cloudControl с помощью kensa push -f addon-manifest.json. [caption id=“attachment\3489” align=“alignnone” width=“600” caption=“Kensa push”]
  6. Установите надстройку для вашего приложения cloudControl: cctrlapp YOUR\APP\NAME addon.add YOUR\ADDON\NAME.PLANE

Теперь мы опубликовали надстройку cloudControl и установили ее. Все идет нормально. Как мы получаем переменные среды, которые создает надстройка? Давай выясним.

Как получить переменные среды

В Heroku это легко. Например, в Python мы можем сделать это с помощью строки os.environ[‘VARIABLE NAME’]. Если вы попробуете это в cloudControl, вы получите только несколько основных свойств Python, а не дополнительные переменные. В cloudControl все переменные среды, созданные надстройкой, записываются в файл json, который мы можем получить, используя CRED\FILE. Это имя системного свойства, которое содержит путь к JSON-файлу с переменными среды. Чтобы получить наши данные, все, что нам нужно, это прочитать этот файл JSON и декодировать строку JSON. В Python мы можем сделать это с помощью этого кода:

credentialsFile = os.getenv('CRED\_FILE')
    credentials = open(credentialsFile)
    data = json.load(credentials)
    credentials.close()
    clientId = data\['GROUPDOCS'\]\['GROUPDOCS\_CID'\]
    privateKey = data\['GROUPDOCS'\]\['GROUPDOCS\_PKEY'\]

Вот как мы получаем идентификатор клиента и закрытый ключ пользователя надстройки GroupDocs. И это все. Теперь вы знаете, в чем разница между надстройками Heroku и cloudControl.