集成 AWS Cloud - 通过 MindConnect Integration
MindConnect Integration 可以将数据从任意云存储服务传输到 MindSphere。在此示例中,从 CSV 文件中读取 aspect 的多个 variable 定义,该文件存储在 AWS S3 bucket 中。对管道进行设置以自动创建 asset,该 asset 具有包含这些 variables 的 aspect。
常规信息
持续时间:60 分钟
测试所使用的 MindSphere 版本:2018 年 10 月 8 日版本说明。
先决条件
- 一个 MindSphere 帐户
- MindConnect Integration
- 可以访问 AWS Identity and Access Management 的 Amazon S3 账户
- 必须为您的用户分配以下角色:
mdsp:core:TenantAdmin
,在 user management 中分配。mdsp:core:mci:admin
或mdsp:core:mci.user
,在 user management 中分配。
在 AWS 中准备数据
本部分介绍如何在 AWS 中创建 S3 bucket 以及如何将 CSV 文件中的 aspect 数据上传到该 S3 bucket。
创建具有 API 访问权限的 AWS 用户
- 通过 https://console.aws.amazon.com/iam/(需要登录)打开 AWS IAM 控制台。
- 选择“用户”,然后在导航窗格中选择“添加用户”。
- 输入用户的用户名。
- 选择“编程访问”。
- 单击“下一步:权限”。
- 选择“直接将现有策略附加到用户”,然后选择“AmazonS3ReadOnlyAccess”策略。(如有必要,可以稍后更新策略。)
- 单击“下一步:查看”,然后单击“创建用户”,完成该过程。
- 下载访问密钥 ID 和机密访问密钥并保存。在此步骤之后,将无法再次访问这些密钥。
生成的访问密钥提供访问 AWS S3 API 的权限。
创建 S3 Bucket
- 在 https://console.aws.amazon.com/s3/ 中打开 Amazon S3 控制台。
- 单击“创建 bucket”。
- 输入 bucket 名称并选择 AWS 区域,例如“sensor-bucket-mindsphere”和“EU (Frankfurt)”。
- 不要进行任何其它配置,然后单击“创建”。
Amazon S3 控制台中将出现新的 S3 Bucket。
将 CSV 文件上传到该 S3 Bucket
- 使用如下所示的相同格式为具有多个 variables 的 aspect 创建一个 CSV 文件:
AspectName;SensorType;DataType;Unit;
breweryAspect;temperature;DOUBLE;°C;
breweryAspect;motorVoltage;DOUBLE;V;
breweryAspect;fluidFlow;DOUBLE;m³/h;
breweryAspect;pressureBefore;DOUBLE;bar;
breweryAspect;pressureAfter;DOUBLE;bar;
- 在 AWS 中选择您的 S3 bucket(此处为“sensor-bucket-mindsphere”)。
- 将 CSV 文件拖放到 Amazon S3 控制台窗口中。
- 单击“上传”。
CSV 文件已上传到 S3 bucket。
将 Amazon S3 Bucket 集成到 MindConnect 中
MindConnect 集成分为三个步骤:
- 创建账户:MindConnect Integration 需要一个账户来存储访问信息,以连接到其它基于云的应用,例如 Amazon S3 bucket 或 Siemens MindSphere。
- 添加操作:MindConnect Integration 使用应用特定操作将数据读取或写入到所连接的基于云的应用中。每个操作执行一个应用特定任务。
- 创建管道:MindConnect Integration 使用管道来定义传输、解读和转换数据的过程。管道可以将多个操作和其它管道进行组合以定义多步工作流程。
创建 MindConnect Integration 账户
- 从 MindSphere Launchpad 打开 MindConnect Integration。
- 使用 MindConnect Integration 凭证登录。
- 转到“连接”。
- 打开“Amazon Simple Storage Service (S3)”应用。
- 单击“添加新的账户”。
- 输入一个账户名称,例如“My_S3_Bucket”。
- 输入之前生成的访问密钥 ID 和机密访问密钥。
- 请勿更改任何其它设置。
- 单击“保存”。
该账户已创建。
添加新操作
- 切换到“OPERATIONS”选项卡,然后单击“添加新的操作”。
- 输入一个操作名称,例如“RetrieveS3Object”。
- 从下拉列表中选择账户(此处为“My_S3_Bucket”),然后单击“下一步”。
- 从操作列表中选择“GetObject”。
- 单击“下一步”,无需在以下对话框中进行任何进一步配置。
- 检查信息,然后单击“完成”。
现在,“GetObject”操作已出现在列表中。
设置管道
此管道将数据从 S3 bucket 传输到 MindConnect。管道是使用构建块构建的,构建块首先从 CSV 文件中检索数据,然后将数据转换为字节,最后将字节存储在文档中。在组装之后配置构建块以及管道本身的输入和输出。
- 切换到“INTEGRATIONS”选项卡,然后单击“添加新的集成”。
- 在弹出窗口中选择“编排两个或更多应用”。
- 输入一个集成名称,例如“My_S3_Bucket_Pipeline”。
- 在左侧的工具栏中打开“应用”。
- 搜索“Amazon Simple Storage Service (S3)”并将其拖动到集成块下,使其与锚点连接。
- 单击此块的设置图标,然后从下拉菜单中选择账户(此处为“My_S3_Bucket”)和操作(此处为“RetrieveS3Object”)。
- 在左侧的工具栏中打开“服务”。
- 从“Amazon Simple Storage Service S3”块下的“服务”中拖动“IO”,使其与锚点连接。
- 打开“IO”块的下拉菜单,然后选择“streamToBytes”。
- 从“IO”块下的“服务”中拖动“平面文件”,使其与锚点连接。
- 打开“平面文件”块的下拉菜单,然后选择“delimitedDataBytesToDocument”。
- 单击“保存”。
完成的管道如下所示:
说明
有关编排集成和点对点集成的详细信息,请参见 MindConnect Integration 文档。
配置输入/输出签名
每次 MindConnect 集成都需要输入/输出签名,该签名必须至少定义一个输入参数。输出参数是可选的。此集成应将 S3Object 作为输入参数,并输出包含行和列的文档。
- 单击管道顶部集成块最右侧的菜单图标。
- 选择“定义输入/输出签名”。
- 单击输入选项卡中的加号按钮以创建输入字段。
- 输入名称,例如
S3Object
,并将类型设置为“String”。 - 切换到输出选项卡,然后单击加号按钮以添加“文档”类型的输出字段。
- 再次单击加号按钮以添加“文档”类型的另一个字段并激活“数组”复选框。此字段嵌套在另一个文档中,表示 CSV 文件的行。
- 添加四个“String”类型的字段,表示 CSV 文件的列。预期结构如下所示:
- 单击“应用”,然后单击“保存”。
输入/输出签名已定义。
为操作配置映射
配置“Amazon Simple Storage Service (S3)”块以从 Amazon S3 bucket 检索 S3Object,并将其作为流转发。
- 单击“Amazon Simple Storage Service (S3)”块最右侧的菜单图标。
- 选择“映射输入和输出”。
- 配置输入映射,如下所示:
- 双击“RetrieveS3ObjectInput”中的字段
bucketName
并输入 S3 bucket 的名称(此处为“sensor-bucket-mindsphere”)。 - 单击“下一步”。
- 配置输出映射,如下所示:
- 单击“完成”,然后单击“保存”。
映射使“RetrieveS3Object”操作能够从 S3 bucket 读取数据并将其作为流输出。
为 IO 服务配置映射
配置“IO”块以将流转换为字节并对其进行转发。
- 打开“IO”块的“映射输入和输出”对话框。
- 配置输入映射,如下所示:
- 配置输出映射,如下所示:
- 单击“完成”,然后单击“保存”。
映射使 streamToBytes 服务能够将输入流转换为字节。
为 Flat File Service 配置映射
配置“平面文件”块以解读字节并将其存储在具有行和列的文档中。
- 打开“平面文件”块的“映射输入和输出”对话框。
- 配置输入映射,如下所示:
-
双击“delimitedDataBytesToDocument Input”中的其它四个字段并填写以下值:
参数 选择 fieldQualifier
“分号” textQualifier
“无” useHeaderRowForFieldNames
“true” Encoding
“windows-1252:Windows Latin” -
配置输出映射,如下所示:
- 单击“完成”,然后单击“保存”。
映射使 delimitedDataBytesToDocument 能够将其接收的字节解读为文本并将其存储在文档中。
测试集成(可选)
- 单击右上角的“测试”。
- 输入一个输出文档名称,例如“MindSphereAsset_Creation.csv”。
- 单击“运行”。
集成实时执行,结果显示在“测试结果”面板上。确保显示成功消息,并验证 CSV 文件中的数据是否显示在文档中。
将 AWS Cloud 集成到 MindSphere 中
以下步骤说明如何设置自动管道以在 MindSphere 中创建 asset,该 asset 具有包含 CSV 文件中给出的 variables 的 aspect。此管道自动创建所需的 aspect 类型、asset type 和 asset。
创建一个账户以连接到 MindSphere
如果您已在 MindConnect Integration 中拥有“Siemens MindSphere”应用的账户,请跳转至 添加 MindSphere 操作。
- 在 MindConnect Integration 中打开应用“Siemens MindSphere”。
- 单击“添加新的账户”。
- 输入账户名称,例如“MindSphere_AWS_Integration”。
- 将其它设置保留为默认设置,然后单击“保存”。
MindConnect Integration 现在可以将数据导入 MindSphere 租户。
添加 MindSphere 操作
管道需要“Siemens MindSphere”应用的操作来创建 assets、asset types 和 aspect 类型,以及读取 aspect 类型。
使用下面列出的配置详细信息创建这些操作。所需步骤与上述内容相同。
自定义名称(步骤 1) | 操作(步骤 2) |
---|---|
“CreateAsset_AWS” | “创建 Asset” |
“CreateAssetType_AWS” | “创建或更新 Asset Type” |
“CreateAspectType_AWS” | “创建或更新 Aspect 类型” |
“GetAspectType_AWS” | “读取 Aspect 类型” |
设置用于创建 Aspect 类型的管道
如果此名称的 aspect 类型尚不存在,则此管道将创建新的 aspect 类型。
- 添加一个新编排的集成。
-
使用以下块设置集成“MindSphereAspectType_AWS”,如下所示:
组 块名称 配置 控制流 try catch - 应用 Siemens MindSphere 3.0 账户:“MindSphere_AWS_Integration”
操作:“CreateAspectType_AWS”应用 Siemens MindSphere 3.0 账户:“MindSphere_AWS_Integration”
操作:“GetAspectType_AWS” -
单击“保存”。
配置输入/输出签名
按如下所示定义输入签名,以便在创建 aspect 类型时使用输入参数填写必填字段。
- 打开“MindSphereAspectType_AWS”块的“定义输入/输出签名”对话框。
-
创建 3 个“String”类型的输入字段和 1 个“文档”类型的输入字段,如下所示:
-
单击“应用”,然后单击“保存”。
配置映射
配置第一个“Siemens MindSphere”块以在创建新的 aspect 类型时填写所有必填字段。配置第二个“Siemens MindSphere”块以检查租户上是否已存在具有给定 aspectTypeId
的 aspect 类型。
-
根据下图和下表,在“try”部分为“Siemens MindSphere”块配置输入映射:
字段 值 类别
“动态” scope
“私有” searchable
“true” length
请勿设置任何值 qualitycode
“false” -
配置输出映射,如下所示
-
单击“完成”,然后单击“保存”。
-
在“catch”部分中为“Siemens MindSphere”块配置输入映射,如下所示:
-
配置输出映射,如下所示
-
单击“完成”,然后单击“保存”。
测试用于创建 Aspect 类型的管道(可选)
通过手动提供输入值来测试集成,如下所示:
说明
如果测试失败并要求您更新 If-match 消息头,请尝试使用其它 aspect 名称。
设置用于创建 Asset Types 的管道
- 添加一个新编排的集成。
-
使用以下块设置集成“MindSphereCreateAssetType_AWS”,如下所示:
组 块名称 配置 控制流 for each - 服务 String 服务:“concat” 服务 String 服务:“concat” 应用 Siemens MindSphere 3.0 账户:“MindSphere_AWS_Integration”
操作:“CreateAssetType_AWS” -
单击“保存”。
配置输入/输出签名
按如下所示定义输入签名,以便在创建 asset types 时使用输入参数填写必填字段。
- 打开“MindSphereCreateAssetType_AWS”块的“定义输入/输出签名”对话框。
-
创建 2 个“String”类型的输入字段和 1 个“文档”类型的输入字段,如下所示:
-
单击“应用”,然后单击“保存”。
- 为“for each”块的输入字段选择“/document/rows”。
- 单击“保存”。
配置映射
配置“String”块以构建一个类似于 {tenantName}.{assetTypeId}
的 string。配置“Siemens MindSphere”块以在创建 asset type 时填写所有必填字段。
-
根据下图和下表,为大写“String”块配置输入映射:
字段 值 inString1
"." -
配置输出映射,如下所示:
- 单击“完成”,然后单击“保存”。
- 根据下图,为小写“String”块配置输入映射:
- 配置与第 2 步中相同的输出映射。
- 单击“完成”,然后单击“保存”。
-
为“Siemens MindSphere”块配置输入映射,如下所示:
字段 值 scope
“私有” parentTypeId
“core.basicasset” -
配置输出映射,如下所示:
- 单击“完成”,然后单击“保存”。
测试用于创建 Asset Types 的管道(可选)
通过手动提供输入值来测试集成,如下所示:
设置用于创建 Assets 的管道
此管道从 AWS 检索数据并将其作为 asset 的 aspect 数据传输到 MindSphere。
- 切换至“开发”选项卡。
- 添加一个新编排的集成。
-
使用以下块设置集成“MindSphereCreateAsset_AWS”,如下所示:
组 块名称 配置 集成 My_S3_Bucket - 控制工作流 Transform Pipeline - 集成 MindSphereAspectType_AWS - 控制工作流 Transform Pipeline - 集成 MindSphereCreateAssetType_AWS - 服务 String 服务:“concat” 服务 String 服务:“concat” 应用 Siemens MindSphere 3.0 账户:“MindSphere_AWS_Integration”
操作:“CreateAsset_AWS” -
单击“保存”。
配置输入/输出签名
管道从 AWS 中的 CSV 文件接收 variable 定义。为了创建一个具有这些 variables 的 asset,用户必须提供无法从输入文件中读取的必需参数并指定输入文件。在输入签名中定义用户输入,如下所示。
- 打开“MindSphereCreateAsset_AWS”块的“定义输入/输出签名”对话框。
-
创建 4 个“String”类型的输入字段,如下所示:
-
创建 1 个“String”类型的必填输出字段,并命名为
assetId
(可选)。 - 单击“应用”,然后单击“保存”。
配置映射
以下配置使集成能够从 AWS 读取输入文件,并使用文件中提供的变量创建 aspect 类型。之后,集成会创建关联的 asset type 并对其进行实例化。
My_S3_Bucket_Pipeline
该块检索用户自定义的 CSV 文件,并将内容作为document
转发。
-
根据下图,为“My_S3_Bucket_Pipeline”块配置输入映射:
-
配置输出映射,如下所示:
- 单击“完成”,然后单击“保存”。
大写 Transform Pipeline
该块读取 document
中的第一个条目,并将其作 AspectName
转发。
- 打开大写“Transform Pipeline”块的映射对话框。
- 添加“String”类型的新字段,并在管道输出中命名为
AspectName
。 - 配置映射,如下所示:
- 单击“完成”,然后单击“保存”。
MindSphereCreateAspectType_AWS
该块使用用户自定义的租户上的 AspectName
创建一个 aspect 类型,并将其配置作为 document
转发。
-
根据下图,为“MindSphereCreateAspectType_AWS”块配置输入映射:
-
单击“下一步”,“完成”,然后单击“保存”。
小写 Transform Pipeline
该块读取 aspect 类型的 aspectTypeId
和 name
,并将其作为 aspectTypeIdArray
转发。
- 打开小写“Transform Pipeline”块的映射对话框。
- 添加“文档”类型的新字段,并在管道输出中命名为
aspectTypeIdArray
。 - 在本文档中添加 2 个“String”类型的字段,并命名为
aspectTypeId
和name
。 - 配置映射,如下所示:
- 单击“完成”,然后单击“保存”。
MindSphereCreateAssetType_AWS
该块使用用户自定义的租户上的 aspectTypeIdArray
创建一个 asset type,并将其详细信息作为 document
转发。assettypeId
由输入签名 给定。
-
根据下图,为“MindSphereCreateAssetType_AWS”块配置输入映射:
-
单击“下一步”,“完成”,然后单击“保存”。
大写 String
此块创建一个以“.”开头,后跟 assetTypeId
的 string,并将其作为 assetTypeIdWithPrefix
转发。
-
根据下图和下表,为“MindSphereCreateAspectType_AWS”块配置输入映射:
字段 值 inString1
"." -
创建一个“String”类型的新字段,并在“管道输出”中命名为
assetTypeIdWithPrefix
。 - 根据下图配置输出映射:
- 单击“完成”,然后单击“保存”。
小写 String
该块创建一个以 tenantPrefix
开头,后跟 assetTypeIdWithPrefix
的 string,并将其作为 assetTypeIdWithPrefix
转发。
- 根据下图,为“MindSphereCreateAspectType_AWS”块配置输入映射:
- 配置与大写“String”块相同的输出映射。
- 单击“完成”,然后单击“保存”。
CreateAsset_AWS
此块使用用户自定义的租户上的 assetTypeIdWithPrefix
创建 asset。assetName
由 输入签名 给定,且 parentId
设置为固定值。
-
根据下图和下表,为“Siemens MindSphere”块配置输入映射:
字段 值 parentId
输入所需父 asset 的 ID 父ID
在 Asset Manager 中打开所需的父 asset,并从 URL 获取
parentId
,如下所示。 -
单击“下一步”,“完成”,然后单击“保存”。
测试用于创建 Assets 的管道(可选)
通过手动提供输入值来测试集成,如下所示:
除了在“测试结果”窗口中验证结果外,还可以从 MindSphere Launchpad 打开 Asset Manager,以检查创建的 asset。
相关链接
还有问题?
除非另行声明,该网站内容遵循MindSphere开发许可协议.