Skip to content

集成 AWS Cloud - 通过 MindConnect Integration

MindConnect Integration 可以将数据从任意云存储服务传输到 MindSphere。在此示例中,从 CSV 文件中读取 aspect 的多个 variable 定义,该文件存储在 AWS S3 bucket 中。对管道进行设置以自动创建 asset,该 asset 具有包含这些 variables 的 aspect。

常规信息

持续时间:60 分钟
测试所使用的 MindSphere 版本:2018 年 10 月 8 日版本说明

先决条件

在 AWS 中准备数据

本部分介绍如何在 AWS 中创建 S3 bucket 以及如何将 CSV 文件中的 aspect 数据上传到该 S3 bucket。

创建具有 API 访问权限的 AWS 用户

  1. 通过 https://console.aws.amazon.com/iam/(需要登录)打开 AWS IAM 控制台。
  2. 选择“用户”,然后在导航窗格中选择“添加用户”。
  3. 输入用户的用户名。
  4. 选择“编程访问”。
  5. 单击“下一步:权限”。
  6. 选择“直接将现有策略附加到用户”,然后选择“AmazonS3ReadOnlyAccess”策略。(如有必要,可以稍后更新策略。)
  7. 单击“下一步:查看”,然后单击“创建用户”,完成该过程。
  8. 下载访问密钥 ID 和机密访问密钥并保存。在此步骤之后,将无法再次访问这些密钥。

生成的访问密钥提供访问 AWS S3 API 的权限。

创建 S3 Bucket

  1. https://console.aws.amazon.com/s3/ 中打开 Amazon S3 控制台。
  2. 单击“创建 bucket”。
  3. 输入 bucket 名称并选择 AWS 区域,例如“sensor-bucket-mindsphere”和“EU (Frankfurt)”。
  4. 不要进行任何其它配置,然后单击“创建”。

Amazon S3 控制台中将出现新的 S3 Bucket。

将 CSV 文件上传到该 S3 Bucket

  1. 使用如下所示的相同格式为具有多个 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;
  1. 在 AWS 中选择您的 S3 bucket(此处为“sensor-bucket-mindsphere”)。
  2. 将 CSV 文件拖放到 Amazon S3 控制台窗口中。
  3. 单击“上传”。

CSV 文件已上传到 S3 bucket。

将 Amazon S3 Bucket 集成到 MindConnect 中

MindConnect 集成分为三个步骤:

  1. 创建账户:MindConnect Integration 需要一个账户来存储访问信息,以连接到其它基于云的应用,例如 Amazon S3 bucket 或 Siemens MindSphere。
  2. 添加操作:MindConnect Integration 使用应用特定操作将数据读取或写入到所连接的基于云的应用中。每个操作执行一个应用特定任务。
  3. 创建管道:MindConnect Integration 使用管道来定义传输、解读和转换数据的过程。管道可以将多个操作和其它管道进行组合以定义多步工作流程。

创建 MindConnect Integration 账户

  1. 从 MindSphere Launchpad 打开 MindConnect Integration。
  2. 使用 MindConnect Integration 凭证登录。
  3. 转到“连接”。
  4. 打开“Amazon Simple Storage Service (S3)”应用。
  5. 单击“添加新的账户”。 添加新账户
  6. 输入一个账户名称,例如“My_S3_Bucket”。
  7. 输入之前生成的访问密钥 ID 和机密访问密钥。
  8. 请勿更改任何其它设置。
  9. 单击“保存”。

该账户已创建。

添加新操作

  1. 切换到“OPERATIONS”选项卡,然后单击“添加新的操作”。 Add New Operation
  2. 输入一个操作名称,例如“RetrieveS3Object”。
  3. 从下拉列表中选择账户(此处为“My_S3_Bucket”),然后单击“下一步”。
  4. 从操作列表中选择“GetObject”。
  5. 单击“下一步”,无需在以下对话框中进行任何进一步配置。
  6. 检查信息,然后单击“完成”。

现在,“GetObject”操作已出现在列表中。

设置管道

此管道将数据从 S3 bucket 传输到 MindConnect。管道是使用构建块构建的,构建块首先从 CSV 文件中检索数据,然后将数据转换为字节,最后将字节存储在文档中。在组装之后配置构建块以及管道本身的输入和输出。

  1. 切换到“INTEGRATIONS”选项卡,然后单击“添加新的集成”。 Add New Integration
  2. 在弹出窗口中选择“编排两个或更多应用”。
  3. 输入一个集成名称,例如“My_S3_Bucket_Pipeline”。
  4. 在左侧的工具栏中打开“应用”。
  5. 搜索“Amazon Simple Storage Service (S3)”并将其拖动到集成块下,使其与锚点连接。
  6. 单击此块的设置图标,然后从下拉菜单中选择账户(此处为“My_S3_Bucket”)和操作(此处为“RetrieveS3Object”)。
  7. 在左侧的工具栏中打开“服务”。
  8. 从“Amazon Simple Storage Service S3”块下的“服务”中拖动“IO”,使其与锚点连接。
  9. 打开“IO”块的下拉菜单,然后选择“streamToBytes”。
  10. 从“IO”块下的“服务”中拖动“平面文件”,使其与锚点连接。
  11. 打开“平面文件”块的下拉菜单,然后选择“delimitedDataBytesToDocument”。
  12. 单击“保存”。

完成的管道如下所示: My_S3_Bucket_Pipeline

说明

有关编排集成和点对点集成的详细信息,请参见 MindConnect Integration 文档

配置输入/输出签名

每次 MindConnect 集成都需要输入/输出签名,该签名必须至少定义一个输入参数。输出参数是可选的。此集成应将 S3Object 作为输入参数,并输出包含行和列的文档。

  1. 单击管道顶部集成块最右侧的菜单图标。 Menu Icon
  2. 选择“定义输入/输出签名”。
  3. 单击输入选项卡中的加号按钮以创建输入字段。
  4. 输入名称,例如 S3Object,并将类型设置为“String”。
  5. 切换到输出选项卡,然后单击加号按钮以添加“文档”类型的输出字段。
  6. 再次单击加号按钮以添加“文档”类型的另一个字段并激活“数组”复选框。此字段嵌套在另一个文档中,表示 CSV 文件的行。
  7. 添加四个“String”类型的字段,表示 CSV 文件的列。预期结构如下所示: My_S3_Bucket_Pipeline Output Signature
  8. 单击“应用”,然后单击“保存”。

输入/输出签名已定义。

为操作配置映射

配置“Amazon Simple Storage Service (S3)”块以从 Amazon S3 bucket 检索 S3Object,并将其作为流转发。

  1. 单击“Amazon Simple Storage Service (S3)”块最右侧的菜单图标。
  2. 选择“映射输入和输出”。
  3. 配置输入映射,如下所示: My_S3_Bucket_Pipeline Operation Input
  4. 双击“RetrieveS3ObjectInput”中的字段 bucketName 并输入 S3 bucket 的名称(此处为“sensor-bucket-mindsphere”)。
  5. 单击“下一步”。
  6. 配置输出映射,如下所示: My_S3_Bucket_Pipeline Operation Output
  7. 单击“完成”,然后单击“保存”。

映射使“RetrieveS3Object”操作能够从 S3 bucket 读取数据并将其作为流输出。

为 IO 服务配置映射

配置“IO”块以将流转换为字节并对其进行转发。

  1. 打开“IO”块的“映射输入和输出”对话框。
  2. 配置输入映射,如下所示: My_S3_Bucket_Pipeline IO Input
  3. 配置输出映射,如下所示: My_S3_Bucket_Pipeline IO Output
  4. 单击“完成”,然后单击“保存”。

映射使 streamToBytes 服务能够将输入流转换为字节。

为 Flat File Service 配置映射

配置“平面文件”块以解读字节并将其存储在具有行和列的文档中。

  1. 打开“平面文件”块的“映射输入和输出”对话框。
  2. 配置输入映射,如下所示: My_S3_Bucket_Pipeline Flat File Input
  3. 双击“delimitedDataBytesToDocument Input”中的其它四个字段并填写以下值:

    参数 选择
    fieldQualifier “分号”
    textQualifier “无”
    useHeaderRowForFieldNames “true”
    Encoding “windows-1252:Windows Latin”
  4. 配置输出映射,如下所示: My_S3_Bucket_Pipeline Flat File Output

  5. 单击“完成”,然后单击“保存”。

映射使 delimitedDataBytesToDocument 能够将其接收的字节解读为文本并将其存储在文档中。

测试集成(可选)

  1. 单击右上角的“测试”。
  2. 输入一个输出文档名称,例如“MindSphereAsset_Creation.csv”。
  3. 单击“运行”。

集成实时执行,结果显示在“测试结果”面板上。确保显示成功消息,并验证 CSV 文件中的数据是否显示在文档中。

将 AWS Cloud 集成到 MindSphere 中

以下步骤说明如何设置自动管道以在 MindSphere 中创建 asset,该 asset 具有包含 CSV 文件中给出的 variables 的 aspect。此管道自动创建所需的 aspect 类型、asset type 和 asset。

创建一个账户以连接到 MindSphere

如果您已在 MindConnect Integration 中拥有“Siemens MindSphere”应用的账户,请跳转至 添加 MindSphere 操作

  1. 在 MindConnect Integration 中打开应用“Siemens MindSphere”。
  2. 单击“添加新的账户”。
  3. 输入账户名称,例如“MindSphere_AWS_Integration”。
  4. 将其它设置保留为默认设置,然后单击“保存”。

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 类型。

  1. 添加一个新编排的集成。
  2. 使用以下块设置集成“MindSphereAspectType_AWS”,如下所示:

    块名称 配置
    控制流 try catch -
    应用 Siemens MindSphere 3.0 账户:“MindSphere_AWS_Integration”
    操作:“CreateAspectType_AWS”
    应用 Siemens MindSphere 3.0 账户:“MindSphere_AWS_Integration”
    操作:“GetAspectType_AWS”

    CreateAspectType Pipeline

  3. 单击“保存”。

配置输入/输出签名

按如下所示定义输入签名,以便在创建 aspect 类型时使用输入参数填写必填字段。

  1. 打开“MindSphereAspectType_AWS”块的“定义输入/输出签名”对话框。
  2. 创建 3 个“String”类型的输入字段和 1 个“文档”类型的输入字段,如下所示:

    CreateAspectType Pipeline Signature

  3. 单击“应用”,然后单击“保存”。

配置映射

配置第一个“Siemens MindSphere”块以在创建新的 aspect 类型时填写所有必填字段。配置第二个“Siemens MindSphere”块以检查租户上是否已存在具有给定 aspectTypeId 的 aspect 类型。

  1. 根据下图和下表,在“try”部分为“Siemens MindSphere”块配置输入映射:

    CreateAspectType Pipeline Try Input

    字段
    类别 “动态”
    scope “私有”
    searchable “true”
    length 请勿设置任何值
    qualitycode “false”
  2. 配置输出映射,如下所示

    CreateAspectType Pipeline Try Output

  3. 单击“完成”,然后单击“保存”。

  4. 在“catch”部分中为“Siemens MindSphere”块配置输入映射,如下所示:

    CreateAspectType Pipeline Catch Input

  5. 配置输出映射,如下所示

    CreateAspectType Pipeline Catch Output

  6. 单击“完成”,然后单击“保存”。

测试用于创建 Aspect 类型的管道(可选)

通过手动提供输入值来测试集成,如下所示: Input details

说明

如果测试失败并要求您更新 If-match 消息头,请尝试使用其它 aspect 名称。

设置用于创建 Asset Types 的管道

  1. 添加一个新编排的集成。
  2. 使用以下块设置集成“MindSphereCreateAssetType_AWS”,如下所示:

    块名称 配置
    控制流 for each -
    服务 String 服务:“concat”
    服务 String 服务:“concat”
    应用 Siemens MindSphere 3.0 账户:“MindSphere_AWS_Integration”
    操作:“CreateAssetType_AWS”

    CreateAssetType Pipeline

  3. 单击“保存”。

配置输入/输出签名

按如下所示定义输入签名,以便在创建 asset types 时使用输入参数填写必填字段。

  1. 打开“MindSphereCreateAssetType_AWS”块的“定义输入/输出签名”对话框。
  2. 创建 2 个“String”类型的输入字段和 1 个“文档”类型的输入字段,如下所示:

    CreateAssetType Pipeline Signature

  3. 单击“应用”,然后单击“保存”。

  4. 为“for each”块的输入字段选择“/document/rows”。
  5. 单击“保存”。

配置映射

配置“String”块以构建一个类似于 {tenantName}.{assetTypeId} 的 string。配置“Siemens MindSphere”块以在创建 asset type 时填写所有必填字段。

  1. 根据下图和下表,为大写“String”块配置输入映射:

    CreateAssetType Pipeline String1 Input

    字段
    inString1 "."
  2. 配置输出映射,如下所示: CreateAssetType Pipeline String1 Output

  3. 单击“完成”,然后单击“保存”。
  4. 根据下图,为小写“String”块配置输入映射: CreateAssetType Pipeline String2 Input
  5. 配置与第 2 步中相同的输出映射。
  6. 单击“完成”,然后单击“保存”。
  7. 为“Siemens MindSphere”块配置输入映射,如下所示:

    CreateAssetType Pipeline MindSphere Input

    字段
    scope “私有”
    parentTypeId “core.basicasset”
  8. 配置输出映射,如下所示: CreateAssetType Pipeline MindSphere Output

  9. 单击“完成”,然后单击“保存”。

测试用于创建 Asset Types 的管道(可选)

通过手动提供输入值来测试集成,如下所示: CreateAssetType Pipeline Test

设置用于创建 Assets 的管道

此管道从 AWS 检索数据并将其作为 asset 的 aspect 数据传输到 MindSphere。

  1. 切换至“开发”选项卡。
  2. 添加一个新编排的集成。
  3. 使用以下块设置集成“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”

    CreateAsset Pipeline

  4. 单击“保存”。

配置输入/输出签名

管道从 AWS 中的 CSV 文件接收 variable 定义。为了创建一个具有这些 variables 的 asset,用户必须提供无法从输入文件中读取的必需参数并指定输入文件。在输入签名中定义用户输入,如下所示。

  1. 打开“MindSphereCreateAsset_AWS”块的“定义输入/输出签名”对话框。
  2. 创建 4 个“String”类型的输入字段,如下所示:

    CreateAsset Pipeline Input Signature

  3. 创建 1 个“String”类型的必填输出字段,并命名为 assetId(可选)。

  4. 单击“应用”,然后单击“保存”。

配置映射

以下配置使集成能够从 AWS 读取输入文件,并使用文件中提供的变量创建 aspect 类型。之后,集成会创建关联的 asset type 并对其进行实例化。

My_S3_Bucket_Pipeline

该块检索用户自定义的 CSV 文件,并将内容作为document 转发。

  1. 根据下图,为“My_S3_Bucket_Pipeline”块配置输入映射:

    CreateAsset Pipeline My_S3_Bucket_Pipeline Input

  2. 配置输出映射,如下所示: CreateAsset Pipeline My_S3_Bucket_Pipeline Output

  3. 单击“完成”,然后单击“保存”。
大写 Transform Pipeline

该块读取 document 中的第一个条目,并将其作 AspectName 转发。

  1. 打开大写“Transform Pipeline”块的映射对话框。
  2. 添加“String”类型的新字段,并在管道输出中命名为 AspectName
  3. 配置映射,如下所示: CreateAsset Pipeline Transform1
  4. 单击“完成”,然后单击“保存”。
MindSphereCreateAspectType_AWS

该块使用用户自定义的租户上的 AspectName 创建一个 aspect 类型,并将其配置作为 document 转发。

  1. 根据下图,为“MindSphereCreateAspectType_AWS”块配置输入映射:

    CreateAsset Pipeline Aspect Type Input

  2. 单击“下一步”,“完成”,然后单击“保存”。

小写 Transform Pipeline

该块读取 aspect 类型的 aspectTypeIdname,并将其作为 aspectTypeIdArray 转发。

  1. 打开小写“Transform Pipeline”块的映射对话框。
  2. 添加“文档”类型的新字段,并在管道输出中命名为 aspectTypeIdArray
  3. 在本文档中添加 2 个“String”类型的字段,并命名为 aspectTypeIdname
  4. 配置映射,如下所示: CreateAsset Pipeline Transform2
  5. 单击“完成”,然后单击“保存”。
MindSphereCreateAssetType_AWS

该块使用用户自定义的租户上的 aspectTypeIdArray 创建一个 asset type,并将其详细信息作为 document 转发。assettypeId输入签名 给定。

  1. 根据下图,为“MindSphereCreateAssetType_AWS”块配置输入映射:

    CreateAsset Pipeline Asset Type Input

  2. 单击“下一步”,“完成”,然后单击“保存”。

大写 String

此块创建一个以“.”开头,后跟 assetTypeId 的 string,并将其作为 assetTypeIdWithPrefix 转发。

  1. 根据下图和下表,为“MindSphereCreateAspectType_AWS”块配置输入映射: CreateAsset Pipeline String1 Input

    字段
    inString1 "."
  2. 创建一个“String”类型的新字段,并在“管道输出”中命名为 assetTypeIdWithPrefix

  3. 根据下图配置输出映射: CreateAsset Pipeline String1 Output
  4. 单击“完成”,然后单击“保存”。
小写 String

该块创建一个以 tenantPrefix 开头,后跟 assetTypeIdWithPrefix 的 string,并将其作为 assetTypeIdWithPrefix 转发。

  1. 根据下图,为“MindSphereCreateAspectType_AWS”块配置输入映射: CreateAsset Pipeline String2 Input
  2. 配置与大写“String”块相同的输出映射。
  3. 单击“完成”,然后单击“保存”。
CreateAsset_AWS

此块使用用户自定义的租户上的 assetTypeIdWithPrefix 创建 asset。assetName输入签名 给定,且 parentId 设置为固定值。

  1. 根据下图和下表,为“Siemens MindSphere”块配置输入映射: CreateAsset

    字段
    parentId 输入所需父 asset 的 ID
    父ID

    在 Asset Manager 中打开所需的父 asset,并从 URL 获取 parentId,如下所示。 ParentId

  2. 单击“下一步”,“完成”,然后单击“保存”。

测试用于创建 Assets 的管道(可选)

通过手动提供输入值来测试集成,如下所示: Input Details

除了在“测试结果”窗口中验证结果外,还可以从 MindSphere Launchpad 打开 Asset Manager,以检查创建的 asset。 Asset Manager

相关链接

还有问题?

向社区提问


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


Last update: July 11, 2019