Skip to content

自托管应用 - 集成到 MindSphere

MindSphere 支持集成在 MindSphere 之外托管的应用。在 MindSphere 之外托管的应用称为自托管应用,因为 MindSphere 不对这些应用的基础架构进行管理和操作。本部分介绍了如何开发此类应用以及如何将其集成到 MindSphere 中。

自托管应用的要求

将自托管应用集成到 MindSphere 中需满足以下要求:

  • 进行出站流量升级 - 包括用于在 MindSphere 平台之外使用 MindSphere 服务所需的数据量。要进行升级,您的租户管理员需要联系其指定的客户经理或客户成功经理。
  • 自托管应用要通过 DNS 和有效的 SSL 证书访问(不允许使用自签名证书)。
  • 自托管应用要提供一个健康端点,以便实施 MindSphere 的内部监控。
  • 自托管应用使用 MindSphere Identity Management
  • 自托管应用已在 MindSphere 网关 中注册。

准备应用

先决条件

  • 您需要访问某些基础设施,这些设施可通过互联网进行访问,例如服务器。
  • 托管应用必须通过 DNS 名称访问,并且必须通过 SSL 进行保护(不允许使用自签名证书)。

应用的部署

  1. 连接到要在其上部署应用的基础架构。
  2. 确保您的应用在基础架构中可用。或者,您也可以将以下 python 示例复制到合适的位置:

    Python 示例
    from flask import Flask, request, jsonify
    import requests
    import os
    from datetime import datetime
    
    # Read MDSP environment from environment variables
    ENV = os.getenv("MDSP-ENV", 'eu1')
    ASSET_PATH = 'https://gateway.{0}.mindsphere.io/api/assetmanagement/v3/assets'.format(ENV)
    
    app = Flask(__name__)
    
    # Get port from environment variable or use default
    port = int(os.getenv("PORT", 80))
    
    @app.route('/')
    def hello_world():
        auth_header = request.headers.get('Authorization', None)
    
        if auth_header is not None:
            # Add headers for authorization (use token from requesting user) and the accept type
            headers = {'Authorization': auth_header, 'Accept': 'application/hal+json'}
            try:
                r = requests.get(ASSET_PATH, headers=headers)
                resp = r.json() # response as json
            except Exception as err:
                resp = str(err)
    
            try:
                return jsonify(resp) # return json response from MindSphere API
            except Exception as err:
                print('Failed to jsonify', err)
        else:
            return 'Retrieved no authorization header'
    
    @app.route('/health')
    def health_check():
        # do some checks and then return the result
        health = {
            'healthStatus': 'green',
            'time': datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
        }
    
        return jsonify(health)
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=port)
    
  3. 使用以下命令启动应用:

    python <filename>.py
    
  4. 确保您的应用可以通过 Internet 进行访问,例如通过配置安全策略。

  5. 尝试通过 `https:\\L105\

    Retrieved no authorization header
    

在此示例中,应用期望请求中提供 MindSphere 授权消息头。授权消息头用于标识要从中检索数据的访问用户及相关租户。接下来,必须在 Developer Cockpit 中配置应用,将应用与 MindSphere 的 Identity 和 Access Management 角色和范围进行集成。

生产用途

上述过程不适用于生产。我们建议使用合适的概念来托管和运行您的应用。

在 Developer Cockpit 中配置自托管应用

先决条件

  • 已按照上一章所述内容成功部署了您的自托管应用。
  • 自托管应用正在运行并可从 Internet 进行访问。

创建应用

  1. 打开 Developer Cockpit 的“仪表盘”选项卡。
  2. 单击“新建应用”。
  3. 填写必填项(例如,NameDisplay NameVersionApp Icon)。
  4. 选中“自托管应用”复选框。
  5. 添加至少一个带有外部 URL 的组件,例如 https://myapplication-123456789.eu-west-1.elb.amazonaws.com
  6. 单击“保存”以创建应用。

Filled in form for self-hosted applications in Developer Cockpit

注册应用

  1. 导航到“角色和范围”选项卡。
  2. 选择应用。
  3. 添加至少一个默认范围,例如 myselfhosted.default
  4. 添加核心角色 mdsp:core:assetmanagement:standarduser(python 示例所需)。
  5. 导航回应用的“应用详细信息”屏幕。
  6. 单击应用的“注册”按钮。

测试应用

  1. 打开应用的“设置”。
  2. 搜索并选择您的用户名,然后单击“编辑角色分配”。
  3. 搜索角色 mdsp:<tenant>:<application>.<role>(在此示例中是 mdsp:<tenant>:myselfhosted.user)。
  4. 注销并再次登录。

您的应用图标现在显示在 Launchpad 上并打开应用。如果您使用的是示例应用,则应用会显示租户中所有可用资产的列表。

防火墙设置

在 Cloud Foundry 上运行的 MindSphere 应用通过 NAT 网关访问 Internet。如果要允许这些应用访问应用服务器,则入站防火墙必须允许 NAT 网关的 IP 地址:

  • 在 Europe 1/ Europe 2:

    35.156.223.10
    18.194.162.141
    18.194.195.179
    
  • 在 China 1:

    101.132.123.180
    106.15.159.73
    47.102.201.47
    47.102.210.119
    

将自托管应用提交到 MindSphere Store

先决条件

  • 您的应用已在 Developer Cockpit 中进行了配置和注册。
  • 应用中已集成 MindSphere OS Bar
  • 提供应用的屏幕截图,其中显示包含 MindSphere OS Bar 在内的顶级站点。
  • 提供应用的描述。
  • 具有角色 mdsp:core:DeveloperAdmin

准备发布

  1. 导航到应用的详细信息视图。
  2. 单击“准备发布”。
  3. 选择应用的屏幕截图,然后单击“上传”。
  4. 填写应用说明。
  5. 单击“提交”。

Fill in Prepare Release dialogue for self-hosted applications in Developer Cockpit

批准上传

  1. 导航到应用的详细信息视图。
  2. 单击“批准上传”。
  3. 在“备用电子邮件”中输入备用联系人的邮件地址。
  4. 阅读并接受“重要通知”。
  5. 单击“批准”。

您的应用已成功提交到应用仓库。如果应用已可以进行分配或者它不符合 MindSphere 要求,您和备用联系人就会收到通知。

还有问题?

向社区提问


除非另行声明,该网站内容遵循MindSphere开发许可协议.


Last update: April 1, 2020