CloudControl یک پلتفرم ابری بسیار شبیه به Heroku است. ایجاد یک افزونه cloudControl بسیار شبیه به ایجاد یک افزونه Heroku است، اما تفاوت هایی نیز وجود دارد. این مقاله این تفاوت ها را توضیح می دهد.

معرفی

افزونه GroupDocs برای cloudControl یک ابزار وب است که می تواند بر روی هر برنامه وب نصب شود تا عملکرد GroupDocs را ارائه دهد:

  • یک کاربر GroupDocs جدید با یک طرح رایگان ایجاد کنید و شناسه کاربری و کلید خصوصی را برای این کاربر دریافت کنید. این کار به صورت خودکار پس از نصب افزونه انجام می شود.
  • کاربر می تواند طرح پرداخت را با استفاده از عملکرد برنامه تغییر افزونه تغییر دهد.
  • با استفاده از شناسه مشتری و کلید خصوصی (که می توانید از افزونه دریافت کنید) به هر روشی از API GroupDocs دسترسی داشته باشید. ما این مثال را ایجاد کردیم که نحوه استفاده از افزونه و GroupDocs Python SDK را برای برخی اقدامات اساسی نشان می‌دهد.

الزامات

  • ابزار Kensa
  • ابزار cloudControl
  • پایتون 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”:“PASSWORD” و “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=“tests Kensa”]
  5. اگر آزمایشات انجام شد، addon-manifest.json را با kensa push -f addon-manifest.json به cloudControl فشار دهید. [caption id=“attachment\3489” align=“alignnone” width=“600” caption=“Kensa push”]
  6. افزونه را در برنامه cloudControl خود نصب کنید: cctrlapp YOUR\APP\NAME addon.add YOUR\ADDON\NAME.PLANE

اکنون یک افزونه cloudControl منتشر کرده و آن را نصب کرده ایم. تا اینجای کار خیلی خوبه. چگونه متغیرهای محیطی را که افزونه ایجاد می کند بدست آوریم؟ بیایید دریابیم.

چگونه متغیرهای محیطی را بدست آوریم

در هروکو، این کار آسان است. برای مثال، در پایتون می‌توانیم این کار را با خط os.environ[‘VARIABLE NAME’] انجام دهیم. اگر این کار را در cloudControl امتحان کنید، فقط چند ویژگی اولیه پایتون را دریافت خواهید کرد و نه متغیرهای افزودنی خود را. در cloudControl، تمام متغیرهای محیطی ایجاد شده توسط افزونه در فایل json نوشته می‌شوند که با استفاده از CRED\FILE می‌توانیم آن را دریافت کنیم. این نام یک ویژگی سیستمی است که حاوی مسیر فایل JSON با متغیرهای محیطی است. برای به دست آوردن اطلاعات خود، تنها چیزی که نیاز داریم این است که این فایل JSON را بخوانیم و رشته JSON را رمزگشایی کنیم. در پایتون با این کد می توانیم این کار را انجام دهیم:

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 چیست.