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 附加组件之间的区别了。