Insights Hub 怎么应用Agent Management Service 提供的API对已经创建的agent进行上线?

2024-07-23T03:31:58.000-0400
APIs & Services

摘要

在使用Insights Hub平台的过程中,可以使用平台提供的Agent Management Service API,对已经创建的代理(agent)进行上线。


详细信息

在使用Insights Hub平台的过程中,可以使用平台提供的Agent Management Service API,对已经创建的代理(agent)进行上线。上传数据的操作步骤可以参考链接中的内容:https://documentation.mindsphere.io/MindSphere/howto/howto-agent-onboard.html,其内容展示了如何将数据上传到Insights Hub平台过程,如果打开链接请参考下图中红线框中的内容: 

通过Agent Management Service API 对已创建(agent)上线的步骤如下:

  • 通过应用凭证信息获取token,使用token management service 提供的API https://gateway.{域名信息}/api/technicaltokenmanager/v3/oauth/token获取token。如图所示:

  • 通过应用凭证获取的token,使用https://gateway.{域名信息}/api/agentmanagement/v3/agents/{agent_id}/boarding/configuration获取IAT秘钥,如图所示:

  • 通过IAT秘钥,使用https://southgate.cn1.mindsphere-in.cn/api/agentmanagement/v3/register接口注册代理,其中https://southgate.cn1.mindsphere-in.cn接口地址是从返回信息中获取的baseUrl地址。如图所示:

注意:

将获取的client_secret、client_secret_expires_at、registration_access_token、registration_client_uri保存,其中client_secret_expires_at 是有效期时间,当注册设备时间快要超过7天时,建议提前使用registration_access_token和registration_client_uri地址重新注册,然后再更新client_secret、client_secret_expires_at、registration_access_token、registration_client_uri的注册信息,使用registration_client_uri地址、registration_access_token以及body:

{

"client_id": "f511ade833dc417fb6364998b9a9f2cd"

}

进行数据上线的延期。

  • 使用https://gateway.cn1.mindsphere-in.cn/api/agentmanagement/v3/oauth/token接口获取上传数据时需要验证的token,接口body的参数信息。如图所示:

grant_type=client_credentials

client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer

client_assertion=自签jwt

自签jwt是通过注册时返回的client_id及client_secret的值,使用HS256算法生成的。

示例代码是使用python的jwt库生成自签JWT(Json Web Token)的大体过程:

        register_client_id="f511ade833dc417fb6364998b9a9f2cd"

        register_client_secret="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

        jwt_algorithm="HS256"

       agent_id="f511ade833dc417fb6364998b9a9f2cd"

        payload = {

            "iss": agent_id,

            "sub": agent_id,

            "aud": [

                "southgate"

            ],

            "iat": datetime.datetime.utcnow(),

            "nbf": datetime.datetime.utcnow(),

            "exp": datetime.datetime.utcnow() + datetime.timedelta(seconds=3600),

            "jti":str(uuid.uuid4()).replace('-','')[:16],

            "schemas": [

                "urn:siemens: insights hub:v1"

            ],

            "ten": "supplab"

        }

        head = {

            "alg": jwt_algorithm,

            "type": "JWT"

        }

        jwt_str = jwt.encode(payload, jwt_secret, jwt_algorithm, head)

        jwt_r = jwt_str.decode('utf-8')

通过自签获取的上传数据的token,如图所示:

  • 最后通过应用https://gateway.cn1.mindsphere-in.cn/api/agentmanagement/v3/oauth/token 接口获取的token,调用MindConnect API https://gateway.cn1.mindsphere-in.cn/api/mindconnect/v3/exchange接口进行数据上传。

具体Agent Management Service API的使用,可以参考链接中的内容:https://developer.mindsphere.io/zh/apis/connectivity-agentmanagement/api-agentmanagement-overview.html 

知识库文章 ID# KB000133388_ZH_CN

内容

摘要详细信息

关联组件

Agent Management Service