在使用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)上线的步骤如下:
注意:
将获取的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"
}
进行数据上线的延期。
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,如图所示:
具体Agent Management Service API的使用,可以参考链接中的内容:https://developer.mindsphere.io/zh/apis/connectivity-agentmanagement/api-agentmanagement-overview.html