Skip to main content

微软 Azure 的配置

注意

你需要一个帐户来配置 Azure。有关更多信息,请参阅 微软 网站。

所有模块都被称为资源。

概述:Azure 事件网格的结构

注意

下图不完整地概述了与事件网格相关的真实 Azure 架构。简化表示侧重于通过事件网格在客户端之间进行 MQTT 通信的相关元素

以下各节将对各个要素进行更详细的解释。事件网格由一组特定的事件网格命名空间

_example_img_azure_1.png

一般准备

要使用事件网格,你的 Azure 帐户中必须存在以下资源:

  • 有效的订阅

  • 资源组

这两个基本资源主要用于组织和计费。

注意

有关资源、这些资源的组件及其配置的更多详细信息,请参阅 微软天蓝色门户

创建事件网格命名空间

以下步骤经过自定义,可与 CODESYS MQTT 客户端,代表一个一致的有效示例。

有关更多信息,请参阅以下内容: 微软的快速入门

  1. 创建 “事件网格命名空间” 资源。

    有关更多信息,请参阅以下内容: 微软 Azure 的帮助页面

    此资源包含所有要使用的功能,包括最重要的常规设置。

  2. 激活 MQTT 代理。

    微软端的身份管理系统通过 微软 Entra 不是必需的。

    有关 Azure 事件网格中 MQTT 代理的当前限制和功能的更多信息,请参阅以下内容: 微软 Azure 的帮助页面

  3. 概述 选项卡,复制 MQTT 主机名。稍后将需要此信息。

    这是该事件网格命名空间内的 MQTT 代理的 URL,客户端可以连接到该网格。

创建 MQTT 客户端

  1. 对于创建的事件网格命名空间的 MQTT 代理,定义允许连接到代理的 MQTT 客户端。

    有关创建 MQTT 客户端的更多信息,请参阅以下内容: 微软 Azure 的帮助页面

  2. 创建 CODESYS MQTT 客户端。

    在 Azure 门户中,创建 MQTT 客户端的表单如下所示:

    _example_img_azure_2.png

    选择指纹身份验证方法后,将显示以下部分:

    _example_img_azure_3.png
  3. 根据以下信息配置客户端:

    参数

    示例值

    描述

    Client Name

    CODESYS MQTT Client

    客户端名称可以自由选择,并且在事件网格命名空间中必须是唯一的。

    此名称与 MQTT 客户端的客户端 ID 无关。

    Client Description

    My CODESYS PLC

    可选描述,例如,事件网格管理员可以更轻松地识别客户端。

    Client Authentification Name

    my-auth-name

    该值用于在建立连接时对客户端进行身份验证。

    重要

    稍后在参数化时将需要此处设置的值 CODESYS MQTT 客户端。

    创建客户身份后,无法再在事件网格中更改该值。

    此身份验证名称可以但不一定必须与 MQTT 客户端的客户端 ID 或客户端证书的字段相匹配才能起作用。

    建立连接时,客户端必须将客户端身份验证名称作为 MQTT 用户名发送。这允许将传入的证书分配给客户的身份。此身份用于身份验证。

    Client Certificate AuthentificationValidation Scheme

    Thumbprint Match

    在 “指纹匹配” 身份验证的情况下,指纹是从客户端证书中读取的,该证书在 TLS 握手期间在客户端和服务器之间交换。如果证书中的指纹与该客户身份存储在事件网格中的指纹相匹配,则认为身份验证成功

    提示

    有关身份验证方法的更多信息,请参阅以下内容: 微软 Azure 的帮助页面

    Primary Thumbprint

    <HEX-String>

    证书的指纹。创建客户标识时,起初可以将此字段以及辅助指纹留空。指纹的值是一个十六进制字符串

    重要

    对于证书,可以使用几种生成不同长度的十六进制字符串的算法使指纹可见。Azure 支持多种指纹格式

    Connection Status

    Enabled

    使用此开关,可以启用或禁用客户端身份,以允许或拒绝此客户端与事件网格 MQTT 代理的连接。

    Client Attributes

    Attribute (
        Key: Group
        Type: String
        Value: MyGroup
    )

    客户属性是有关客户身份的元数据,可用于分组为客户群组。在此示例中,一个名为的属性 Group 类型的 String 是创造出来的 MyGroup 已设置。这允许稍后通过查询识别客户端。

创建客户群组

例如,客户组是一组应适用通用策略或权限的客户端。

  1. 创建客户组。

    有关更多信息,请参阅以下内容: 微软 Azure 的帮助页面

    必须创建至少一个组。

    在 Azure 门户中,创建客户群组的表单如下所示:

    _example_img_azure_4.png
  2. 根据以下信息配置客户端组:

    参数

    示例值

    描述

    Group Name

    MyClientGroup

    自由选择的群组名称,稍后将用于链接该客户群组。

    Query

    attributes.Group = "MyGroup"

    一种查询,用于根据特征对客户进行分组。

    有关必须如何构建查询的信息,请参阅以下内容: 微软 Azure 的帮助页面

    在示例值中, Group 以前在创建客户机时定义的属性使用和检查 MyGroup 价值。如果在上一步中仅创建了一个客户端,则它将是分配给该客户组的唯一客户端。

    Description

    My Clients

    可选描述,可为管理员提供帮助。

创建主题空间

主题空间是 MQTT 主题模板的集合。在这里,您可以定义在访问权限配置中集体分配权限的主题。

  1. 创建主题空间

    有关更多信息,请参阅以下内容: 微软 Azure 的帮助页面

    在 Azure 门户中,创建主题空间的表单如下所示:

    _example_img_azure_5.png
  2. 根据以下信息配置主题空间:

    参数

    示例值

    描述

    Name

    MyTopicSpace

    自由选择的名称,稍后将用于链接此主题空间。

    Topic templates

    permitted/#

    通配符 (#, +) 和变量可以在主题模板中使用。

    有关更多信息,请参阅以下内容: 微软 Azure 的帮助页面

    在示例值中,只要主题层次结构的根是,任何主题(甚至是任意嵌套的)都会分配给该主题空间 permitted

权限的定义

为客户群组和主题空间的组合授予权限。可以设置两种类型的权限:

  • 订阅者:允许指定客户端组中的所有客户端从分配给指定主题空间的主题中读取消息。

  • 发布者:允许指定客户组的所有客户端向分配给指定主题空间的主题写入消息。

  1. 定义客户群组和主题空间的权限。

    在 Azure 门户中,创建主题空间的表单如下所示:

    _example_img_azure_6.png
  2. 根据以下信息配置权限:

    参数

    示例值

    描述

    Name

    MySubscriberPermission / MyPublisherPermission

    自由选择的唯一名称。

    Client Group Name

    MyClientGroup

    对现有客户群体的引用。示例值 MyClientGroup 将先前创建的客户群组链接到此权限。这将授予该组中的所有客户对已定义主题空间的相应访问权限(Topic Space Name)。

    Topic Space Name

    MyTopicSpace

    对现有主题空间的引用。示例值 MyTopicSpace 将先前创建的主题空间链接到此权限。这意味着指定客户机组中的所有客户端 (Client Group Name) 被授予对分配给此处指定主题空间的主题的权限。

    Permission

    Subscriber /Publisher

    向主题空间中的客户端授予读取或写入权限。

到此为止,Azure 端的配置到此结束。