CloudControl 是一個類似於 Heroku 的雲平台。創建 cloudControl 插件與創建 Heroku 插件非常相似,但存在一些差異。本文解釋了這些差異。

介紹

GroupDocs 的 cloudControl 插件是一個 Web 工具,可以安裝在任何 Web 應用程序上以提供 GroupDocs 功能:

  • 使用免費計劃創建一個新的 GroupDocs 用戶,並獲取該用戶的用戶 ID 和私鑰。安裝附加組件後,此操作會自動完成。
  • 用戶可以使用附加組件的更改計劃功能更改付款計劃。
  • 使用客戶端 ID 和私鑰(可以從附加組件獲取)訪問 GroupDocs API 中的任何方法。我們創建了此示例,它展示瞭如何使用附加組件和 GroupDocs Python SDK 來執行一些基本操作。

要求

  • 肯薩工具
  • 雲控工具
  • Python 2.7
  • 雲控應用

創建附加組件

創建 cloudControl 附加組件的過程與 創建 Heroku 附加組件 相同,但是,正如我之前所說,有一些差異。我們不會討論如何創建附加組件,因為 Heroku 有很多這方面的文檔,您可以決定如何構建它。我只會展示具體的差異是什麼。假設我們已經有一個很酷的 Heroku 插件,並且想要為 cloudControl 重建它:

  1. 安裝 Kensa 和 cloudControl 工具。它們幫助您管理附加組件和雲控制應用程序。了解如何安裝 cloudControl 工具
  2. 安裝工具後,更改 addon-manifest.json 文件。其中包含附加安裝的所有基本信息,例如將創建哪些環境變量以及從何處下載和安裝附加文件。
    • 在上傳編輯後的 addon-manifest.json 文件之前,請設置環境變量 ADDONS\URL=https://api.cloudcontrol.com:
    • 指定生產服務器。 Heroku 要求您指定生產服務器,然後通過向其附加“/heroku/resources”來構造用於配置附加組件的 URL。現在,提供哈希而不是字符串,並將“/heroku/resources”更改為“/cloudcontrol/resources”。
    • 添加 “sso\salt”:“PASSWORD” 和 “product”: {“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 測試配置和 kensa 取消配置測試。 [caption id=“attachment\3488”align=“alignnone”width=“600”caption=“Kensa 測試”]
  5. 如果測試通過,請使用 kensa push -f addon-manifest.json 將 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插件並安裝了它。到目前為止,一切都很好。我們如何獲取附加組件創建的環境變量?讓我們來看看吧。

如何獲取環境變量

在 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 附加用戶的客戶端 ID 和私鑰的方式。就這樣。您現在知道 Heroku 和 cloudControl 附加組件之間的區別了。