你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft.Devices IotHubs 2019-03-22

Bicep 资源定义

可以使用目标操作部署 IotHubs 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Devices/IotHubs 资源,请将以下 Bicep 添加到模板。

resource symbolicname 'Microsoft.Devices/IotHubs@2019-03-22' = {
  etag: 'string'
  location: 'string'
  name: 'string'
  properties: {
    authorizationPolicies: [
      {
        keyName: 'string'
        primaryKey: 'string'
        rights: 'string'
        secondaryKey: 'string'
      }
    ]
    cloudToDevice: {
      defaultTtlAsIso8601: 'string'
      feedback: {
        lockDurationAsIso8601: 'string'
        maxDeliveryCount: int
        ttlAsIso8601: 'string'
      }
      maxDeliveryCount: int
    }
    comments: 'string'
    enableFileUploadNotifications: bool
    eventHubEndpoints: {
      {customized property}: {
        partitionCount: int
        retentionTimeInDays: int
      }
    }
    features: 'string'
    ipFilterRules: [
      {
        action: 'string'
        filterName: 'string'
        ipMask: 'string'
      }
    ]
    messagingEndpoints: {
      {customized property}: {
        lockDurationAsIso8601: 'string'
        maxDeliveryCount: int
        ttlAsIso8601: 'string'
      }
    }
    routing: {
      endpoints: {
        eventHubs: [
          {
            connectionString: 'string'
            name: 'string'
            resourceGroup: 'string'
            subscriptionId: 'string'
          }
        ]
        serviceBusQueues: [
          {
            connectionString: 'string'
            name: 'string'
            resourceGroup: 'string'
            subscriptionId: 'string'
          }
        ]
        serviceBusTopics: [
          {
            connectionString: 'string'
            name: 'string'
            resourceGroup: 'string'
            subscriptionId: 'string'
          }
        ]
        storageContainers: [
          {
            batchFrequencyInSeconds: int
            connectionString: 'string'
            containerName: 'string'
            encoding: 'string'
            fileNameFormat: 'string'
            maxChunkSizeInBytes: int
            name: 'string'
            resourceGroup: 'string'
            subscriptionId: 'string'
          }
        ]
      }
      fallbackRoute: {
        condition: 'string'
        endpointNames: [
          'string'
        ]
        isEnabled: bool
        name: 'string'
        source: 'string'
      }
      routes: [
        {
          condition: 'string'
          endpointNames: [
            'string'
          ]
          isEnabled: bool
          name: 'string'
          source: 'string'
        }
      ]
    }
    storageEndpoints: {
      {customized property}: {
        connectionString: 'string'
        containerName: 'string'
        sasTtlAsIso8601: 'string'
      }
    }
  }
  sku: {
    capacity: int
    name: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

属性值

CloudToDeviceProperties

名字 描述 价值
defaultTtlAsIso8601 设备队列中云到设备消息的默认生存时间。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 字符串
反馈 云到设备消息的反馈队列的属性。 FeedbackProperties
maxDeliveryCount 设备队列中云到设备消息的最大传递计数。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 int

约束:
最小值 = 1
最大值 = 100

EventHubProperties

名字 描述 价值
partitionCount 用于在与事件中心兼容的终结点中接收设备到云消息的分区数。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages。 int
retentionTimeInDays 设备到云消息的保留时间(以天为单位)。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages int

FallbackRouteProperties

名字 描述 价值
条件 为了应用回退路由而评估的条件。 如果未提供条件,则默认情况下该条件的计算结果为 true。 有关语法,请参阅:/azure/iot-hub/iot-hub-devguide-query-language 字符串
endpointNames 将满足条件的消息路由到的终结点列表。 目前只允许 1 个终结点。 string[] (必需)
isEnabled 用于指定是否启用回退路由。 bool (必需)
名字 路由的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符,并且必须是唯一的。 字符串
要向其应用路由规则的源。 例如,DeviceMessages “DeviceJobLifecycleEvents”
“DeviceLifecycleEvents”
“DeviceMessages”
“Invalid”
“TwinChangeEvents”(必需)

FeedbackProperties

名字 描述 价值
lockDurationAsIso8601 反馈队列的锁定持续时间。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 字符串
maxDeliveryCount IoT 中心尝试在反馈队列上传递消息的次数。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 int

约束:
最小值 = 1
最大值 = 100
ttlAsIso8601 消息在 IoT 中心过期之前可供使用的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 字符串

IotHubProperties

名字 描述 价值
authorizationPolicies 可用于保护与 IoT 中心的连接的共享访问策略。 SharedAccessSignatureAuthorizationRule[]
cloudToDevice IoT 中心云到设备的消息传送属性。 CloudToDeviceProperties
评论 IoT 中心注释。 字符串
enableFileUploadNotifications 如果为 True,则启用文件上传通知。 bool
eventHubEndpoints 与事件中心兼容的终结点属性。 此字典的唯一可能键是事件。 在对 IoT 中心进行创建或更新调用时,此密钥必须存在于字典中。 IotHubPropertiesEventHubEndpoints
特征 为 IoT 中心启用的功能和功能。 “DeviceManagement”
“None”
ipFilterRules IP 筛选器规则。 IpFilterRule[]
messagingEndpoints 文件上传通知队列的消息传送终结点属性。 IotHubPropertiesMessagingEndpoints
路由 IoT 中心的路由相关属性。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging RoutingProperties
storageEndpoints 可在其中上传文件的 Azure 存储终结点列表。 目前只能配置一个 Azure 存储帐户,并且必须将其密钥作为$default。 指定多个存储帐户会导致引发错误。 当 enableFileUploadNotifications 属性设置为 True 时,不指定此属性的值,将导致引发错误。 IotHubPropertiesStorageEndpoints

IotHubPropertiesEventHubEndpoints

名字 描述 价值

IotHubPropertiesMessagingEndpoints

名字 描述 价值

IotHubPropertiesStorageEndpoints

名字 描述 价值

IotHubSkuInfo

名字 描述 价值
能力 预配的 IoT 中心单元数。 请参阅:/azure/azure-subscription-service-limits#iot-hub-limits。 int
名字 SKU 的名称。 “B1”
“B2”
“B3”
“F1”
“S1”
'S2'
“S3”(必需)

IpFilterRule

名字 描述 价值
行动 此规则捕获的请求的所需操作。 “Accept”
“拒绝”(必需)
filterName IP 筛选器规则的名称。 string (必需)
ipMask 一个字符串,其中包含规则的 CIDR 表示法中的 IP 地址范围。 string (必需)

MessagingEndpointProperties

名字 描述 价值
lockDurationAsIso8601 锁定持续时间。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload。 字符串
maxDeliveryCount IoT 中心尝试传递消息的次数。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload。 int

约束:
最小值 = 1
最大值 = 100
ttlAsIso8601 消息在 IoT 中心过期之前可供使用的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload。 字符串

Microsoft.Devices/IotHubs

名字 描述 价值
etag Etag 字段 不需要。 如果在响应正文中提供,则还必须根据正常的 ETag 约定将其作为标头提供。 字符串
位置 资源位置。 string (必需)
名字 资源名称 string (必需)
性能 IotHub 属性 IotHubProperties
sku IotHub SKU 信息 IotHubSkuInfo (必需)
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记

ResourceTags

名字 描述 价值

RouteProperties

名字 描述 价值
条件 评估为应用路由规则的条件。 如果未提供任何条件,则默认情况下计算结果为 true。 有关语法,请参阅:/azure/iot-hub/iot-hub-devguide-query-language 字符串
endpointNames 路由满足条件的消息的终结点列表。 目前只允许一个终结点。 string[] (必需)
isEnabled 用于指定是否启用路由。 bool (必需)
名字 路由的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符,并且必须是唯一的。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
要应用路由规则的源,例如 DeviceMessages。 “DeviceJobLifecycleEvents”
“DeviceLifecycleEvents”
“DeviceMessages”
“Invalid”
“TwinChangeEvents”(必需)

RoutingEndpoints

名字 描述 价值
eventHubs IoT 中心根据路由规则将消息路由到的事件中心终结点列表。 此列表不包括内置事件中心终结点。 RoutingEventHubProperties[]
serviceBusQueues IoT 中心根据路由规则将消息路由到的服务总线队列终结点列表。 RoutingServiceBusQueueEndpointProperties[]
serviceBusTopics IoT 中心根据路由规则将消息路由到的服务总线主题终结点列表。 RoutingServiceBusTopicEndpointProperties[]
storageContainers IoT 中心根据路由规则将消息路由到的存储容器终结点列表。 RoutingStorageContainerProperties[]

RoutingEventHubProperties

名字 描述 价值
connectionString 事件中心终结点的连接字符串。 string (必需)
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 事件中心终结点的资源组的名称。 字符串
subscriptionId 事件中心终结点的订阅标识符。 字符串

RoutingProperties

名字 描述 价值
端点 与 IoT 中心基于路由规则路由消息的自定义终结点相关的属性。 在付费中心的所有终结点类型中最多允许 10 个自定义终结点,并且免费中心的所有终结点类型只允许 1 个自定义终结点。 RoutingEndpoints
fallbackRoute 当“路由”部分中指定的任何条件均未满足时,用作回退路由的路由的属性。 这是一个可选参数。 如果未设置此属性,则不符合“路由”部分中指定的任何条件的消息将路由到内置事件中心终结点。 FallbackRouteProperties
路线 IoT 中心用来将消息路由到内置终结点和自定义终结点的用户提供的路由规则列表。 付费中心最多允许 100 个路由规则,最多允许 5 个路由规则用于免费中心。 RouteProperties[]

RoutingServiceBusQueueEndpointProperties

名字 描述 价值
connectionString 服务总线队列终结点的连接字符串。 string (必需)
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际队列名称相同。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 服务总线队列终结点的资源组的名称。 字符串
subscriptionId 服务总线队列终结点的订阅标识符。 字符串

RoutingServiceBusTopicEndpointProperties

名字 描述 价值
connectionString 服务总线主题终结点的连接字符串。 string (必需)
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际主题名称相同。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 服务总线主题终结点的资源组的名称。 字符串
subscriptionId 服务总线主题终结点的订阅标识符。 字符串

RoutingStorageContainerProperties

名字 描述 价值
batchFrequencyInSeconds Blob 写入存储的时间间隔。 值应介于 60 到 720 秒之间。 默认值为 300 秒。 int

约束:
最小值 = 60
最大值 = 720
connectionString 存储帐户的连接字符串。 string (必需)
containerName 存储帐户中的存储容器的名称。 string (必需)
编码 用于将消息序列化为 Blob 的编码。 支持的值为“avro”、“avrodeflate”和“JSON”。 默认值为“avro”。 “Avro”
“AvroDeflate”
“JSON”
fileNameFormat Blob 的文件名格式。 默认格式为 {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}。 所有参数都是必需参数,但可以重新排序。 字符串
maxChunkSizeInBytes 写入存储的每个 Blob 的最大字节数。 值应介于 10485760(10MB) 和 524288000(500MB) 之间。 默认值为 314572800(300MB)。 int

约束:
最小值 = 10485760
最大值 = 524288000
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 存储帐户的资源组的名称。 字符串
subscriptionId 存储帐户的订阅标识符。 字符串

SharedAccessSignatureAuthorizationRule

名字 描述 价值
keyName 共享访问策略的名称。 string (必需)
primaryKey 主键。 字符串
权利 分配给共享访问策略的权限。 “DeviceConnect”
“RegistryRead”
“RegistryRead, DeviceConnect”
“RegistryRead, RegistryWrite”
“RegistryRead、RegistryWrite、DeviceConnect”
'RegistryRead, RegistryWrite, ServiceConnect'
'RegistryRead, RegistryWrite, ServiceConnect, DeviceConnect'
“RegistryRead, ServiceConnect”
'RegistryRead, ServiceConnect, DeviceConnect'
“RegistryWrite”
“RegistryWrite, DeviceConnect”
“RegistryWrite, ServiceConnect”
'RegistryWrite, ServiceConnect, DeviceConnect'
“ServiceConnect”
“ServiceConnect, DeviceConnect” (必需)
secondaryKey 辅助密钥。 字符串

StorageEndpointProperties

名字 描述 价值
connectionString 将文件上传到的 Azure 存储帐户的连接字符串。 string (必需)
containerName 上传文件的根容器的名称。 容器不需要存在,但应使用指定的 connectionString 进行创建。 string (必需)
sasTtlAsIso8601 IoT 中心为文件上传生成的 SAS URI 有效的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload#file-upload-notification-configuration-options。 字符串

快速入门示例

以下快速入门示例部署此资源类型。

Bicep 文件 描述
创建 IoT 中心和设备到云使用者组 使用此模板,可将设备部署到云和云到设备消息配置以及设备到云使用者组的 IoT 中心实例。
创建 IoT 中心设备预配服务 使用此模板可以创建 IoT 中心和 IoT 中心设备预配服务,并将这两个服务链接在一起。
为 IoT 中心帐户、实例、IoT 中心 创建设备更新 此模板创建一个帐户和一个实例和一个用于链接实例的中心。 它使用必要的访问策略、路由和使用者组配置中心。
部署 MedTech 服务,包括 Azure IoT 中心 MedTech 服务是一项 Azure Health Data Services,旨在从多个设备引入设备数据,将设备数据转换为 FHIR 观察,然后保存在 Azure Health Data Services FHIR 服务中。
使用 ARM 模板创建 IoT 中心、路由和查看消息 使用此模板部署 IoT 中心和存储帐户。 运行应用以将消息发送到路由到存储的中心,然后查看结果。

ARM 模板资源定义

可以使用目标操作部署 IotHubs 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Devices/IotHubs 资源,请将以下 JSON 添加到模板。

{
  "type": "Microsoft.Devices/IotHubs",
  "apiVersion": "2019-03-22",
  "name": "string",
  "etag": "string",
  "location": "string",
  "properties": {
    "authorizationPolicies": [
      {
        "keyName": "string",
        "primaryKey": "string",
        "rights": "string",
        "secondaryKey": "string"
      }
    ],
    "cloudToDevice": {
      "defaultTtlAsIso8601": "string",
      "feedback": {
        "lockDurationAsIso8601": "string",
        "maxDeliveryCount": "int",
        "ttlAsIso8601": "string"
      },
      "maxDeliveryCount": "int"
    },
    "comments": "string",
    "enableFileUploadNotifications": "bool",
    "eventHubEndpoints": {
      "{customized property}": {
        "partitionCount": "int",
        "retentionTimeInDays": "int"
      }
    },
    "features": "string",
    "ipFilterRules": [
      {
        "action": "string",
        "filterName": "string",
        "ipMask": "string"
      }
    ],
    "messagingEndpoints": {
      "{customized property}": {
        "lockDurationAsIso8601": "string",
        "maxDeliveryCount": "int",
        "ttlAsIso8601": "string"
      }
    },
    "routing": {
      "endpoints": {
        "eventHubs": [
          {
            "connectionString": "string",
            "name": "string",
            "resourceGroup": "string",
            "subscriptionId": "string"
          }
        ],
        "serviceBusQueues": [
          {
            "connectionString": "string",
            "name": "string",
            "resourceGroup": "string",
            "subscriptionId": "string"
          }
        ],
        "serviceBusTopics": [
          {
            "connectionString": "string",
            "name": "string",
            "resourceGroup": "string",
            "subscriptionId": "string"
          }
        ],
        "storageContainers": [
          {
            "batchFrequencyInSeconds": "int",
            "connectionString": "string",
            "containerName": "string",
            "encoding": "string",
            "fileNameFormat": "string",
            "maxChunkSizeInBytes": "int",
            "name": "string",
            "resourceGroup": "string",
            "subscriptionId": "string"
          }
        ]
      },
      "fallbackRoute": {
        "condition": "string",
        "endpointNames": [ "string" ],
        "isEnabled": "bool",
        "name": "string",
        "source": "string"
      },
      "routes": [
        {
          "condition": "string",
          "endpointNames": [ "string" ],
          "isEnabled": "bool",
          "name": "string",
          "source": "string"
        }
      ]
    },
    "storageEndpoints": {
      "{customized property}": {
        "connectionString": "string",
        "containerName": "string",
        "sasTtlAsIso8601": "string"
      }
    }
  },
  "sku": {
    "capacity": "int",
    "name": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

属性值

CloudToDeviceProperties

名字 描述 价值
defaultTtlAsIso8601 设备队列中云到设备消息的默认生存时间。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 字符串
反馈 云到设备消息的反馈队列的属性。 FeedbackProperties
maxDeliveryCount 设备队列中云到设备消息的最大传递计数。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 int

约束:
最小值 = 1
最大值 = 100

EventHubProperties

名字 描述 价值
partitionCount 用于在与事件中心兼容的终结点中接收设备到云消息的分区数。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages。 int
retentionTimeInDays 设备到云消息的保留时间(以天为单位)。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages int

FallbackRouteProperties

名字 描述 价值
条件 为了应用回退路由而评估的条件。 如果未提供条件,则默认情况下该条件的计算结果为 true。 有关语法,请参阅:/azure/iot-hub/iot-hub-devguide-query-language 字符串
endpointNames 将满足条件的消息路由到的终结点列表。 目前只允许 1 个终结点。 string[] (必需)
isEnabled 用于指定是否启用回退路由。 bool (必需)
名字 路由的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符,并且必须是唯一的。 字符串
要向其应用路由规则的源。 例如,DeviceMessages “DeviceJobLifecycleEvents”
“DeviceLifecycleEvents”
“DeviceMessages”
“Invalid”
“TwinChangeEvents”(必需)

FeedbackProperties

名字 描述 价值
lockDurationAsIso8601 反馈队列的锁定持续时间。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 字符串
maxDeliveryCount IoT 中心尝试在反馈队列上传递消息的次数。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 int

约束:
最小值 = 1
最大值 = 100
ttlAsIso8601 消息在 IoT 中心过期之前可供使用的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 字符串

IotHubProperties

名字 描述 价值
authorizationPolicies 可用于保护与 IoT 中心的连接的共享访问策略。 SharedAccessSignatureAuthorizationRule[]
cloudToDevice IoT 中心云到设备的消息传送属性。 CloudToDeviceProperties
评论 IoT 中心注释。 字符串
enableFileUploadNotifications 如果为 True,则启用文件上传通知。 bool
eventHubEndpoints 与事件中心兼容的终结点属性。 此字典的唯一可能键是事件。 在对 IoT 中心进行创建或更新调用时,此密钥必须存在于字典中。 IotHubPropertiesEventHubEndpoints
特征 为 IoT 中心启用的功能和功能。 “DeviceManagement”
“None”
ipFilterRules IP 筛选器规则。 IpFilterRule[]
messagingEndpoints 文件上传通知队列的消息传送终结点属性。 IotHubPropertiesMessagingEndpoints
路由 IoT 中心的路由相关属性。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging RoutingProperties
storageEndpoints 可在其中上传文件的 Azure 存储终结点列表。 目前只能配置一个 Azure 存储帐户,并且必须将其密钥作为$default。 指定多个存储帐户会导致引发错误。 当 enableFileUploadNotifications 属性设置为 True 时,不指定此属性的值,将导致引发错误。 IotHubPropertiesStorageEndpoints

IotHubPropertiesEventHubEndpoints

名字 描述 价值

IotHubPropertiesMessagingEndpoints

名字 描述 价值

IotHubPropertiesStorageEndpoints

名字 描述 价值

IotHubSkuInfo

名字 描述 价值
能力 预配的 IoT 中心单元数。 请参阅:/azure/azure-subscription-service-limits#iot-hub-limits。 int
名字 SKU 的名称。 “B1”
“B2”
“B3”
“F1”
“S1”
'S2'
“S3”(必需)

IpFilterRule

名字 描述 价值
行动 此规则捕获的请求的所需操作。 “Accept”
“拒绝”(必需)
filterName IP 筛选器规则的名称。 string (必需)
ipMask 一个字符串,其中包含规则的 CIDR 表示法中的 IP 地址范围。 string (必需)

MessagingEndpointProperties

名字 描述 价值
lockDurationAsIso8601 锁定持续时间。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload。 字符串
maxDeliveryCount IoT 中心尝试传递消息的次数。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload。 int

约束:
最小值 = 1
最大值 = 100
ttlAsIso8601 消息在 IoT 中心过期之前可供使用的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload。 字符串

Microsoft.Devices/IotHubs

名字 描述 价值
apiVersion API 版本 '2019-03-22'
etag Etag 字段 不需要。 如果在响应正文中提供,则还必须根据正常的 ETag 约定将其作为标头提供。 字符串
位置 资源位置。 string (必需)
名字 资源名称 string (必需)
性能 IotHub 属性 IotHubProperties
sku IotHub SKU 信息 IotHubSkuInfo (必需)
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记
类型 资源类型 “Microsoft.Devices/IotHubs”

ResourceTags

名字 描述 价值

RouteProperties

名字 描述 价值
条件 评估为应用路由规则的条件。 如果未提供任何条件,则默认情况下计算结果为 true。 有关语法,请参阅:/azure/iot-hub/iot-hub-devguide-query-language 字符串
endpointNames 路由满足条件的消息的终结点列表。 目前只允许一个终结点。 string[] (必需)
isEnabled 用于指定是否启用路由。 bool (必需)
名字 路由的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符,并且必须是唯一的。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
要应用路由规则的源,例如 DeviceMessages。 “DeviceJobLifecycleEvents”
“DeviceLifecycleEvents”
“DeviceMessages”
“Invalid”
“TwinChangeEvents”(必需)

RoutingEndpoints

名字 描述 价值
eventHubs IoT 中心根据路由规则将消息路由到的事件中心终结点列表。 此列表不包括内置事件中心终结点。 RoutingEventHubProperties[]
serviceBusQueues IoT 中心根据路由规则将消息路由到的服务总线队列终结点列表。 RoutingServiceBusQueueEndpointProperties[]
serviceBusTopics IoT 中心根据路由规则将消息路由到的服务总线主题终结点列表。 RoutingServiceBusTopicEndpointProperties[]
storageContainers IoT 中心根据路由规则将消息路由到的存储容器终结点列表。 RoutingStorageContainerProperties[]

RoutingEventHubProperties

名字 描述 价值
connectionString 事件中心终结点的连接字符串。 string (必需)
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 事件中心终结点的资源组的名称。 字符串
subscriptionId 事件中心终结点的订阅标识符。 字符串

RoutingProperties

名字 描述 价值
端点 与 IoT 中心基于路由规则路由消息的自定义终结点相关的属性。 在付费中心的所有终结点类型中最多允许 10 个自定义终结点,并且免费中心的所有终结点类型只允许 1 个自定义终结点。 RoutingEndpoints
fallbackRoute 当“路由”部分中指定的任何条件均未满足时,用作回退路由的路由的属性。 这是一个可选参数。 如果未设置此属性,则不符合“路由”部分中指定的任何条件的消息将路由到内置事件中心终结点。 FallbackRouteProperties
路线 IoT 中心用来将消息路由到内置终结点和自定义终结点的用户提供的路由规则列表。 付费中心最多允许 100 个路由规则,最多允许 5 个路由规则用于免费中心。 RouteProperties[]

RoutingServiceBusQueueEndpointProperties

名字 描述 价值
connectionString 服务总线队列终结点的连接字符串。 string (必需)
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际队列名称相同。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 服务总线队列终结点的资源组的名称。 字符串
subscriptionId 服务总线队列终结点的订阅标识符。 字符串

RoutingServiceBusTopicEndpointProperties

名字 描述 价值
connectionString 服务总线主题终结点的连接字符串。 string (必需)
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际主题名称相同。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 服务总线主题终结点的资源组的名称。 字符串
subscriptionId 服务总线主题终结点的订阅标识符。 字符串

RoutingStorageContainerProperties

名字 描述 价值
batchFrequencyInSeconds Blob 写入存储的时间间隔。 值应介于 60 到 720 秒之间。 默认值为 300 秒。 int

约束:
最小值 = 60
最大值 = 720
connectionString 存储帐户的连接字符串。 string (必需)
containerName 存储帐户中的存储容器的名称。 string (必需)
编码 用于将消息序列化为 Blob 的编码。 支持的值为“avro”、“avrodeflate”和“JSON”。 默认值为“avro”。 “Avro”
“AvroDeflate”
“JSON”
fileNameFormat Blob 的文件名格式。 默认格式为 {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}。 所有参数都是必需参数,但可以重新排序。 字符串
maxChunkSizeInBytes 写入存储的每个 Blob 的最大字节数。 值应介于 10485760(10MB) 和 524288000(500MB) 之间。 默认值为 314572800(300MB)。 int

约束:
最小值 = 10485760
最大值 = 524288000
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 存储帐户的资源组的名称。 字符串
subscriptionId 存储帐户的订阅标识符。 字符串

SharedAccessSignatureAuthorizationRule

名字 描述 价值
keyName 共享访问策略的名称。 string (必需)
primaryKey 主键。 字符串
权利 分配给共享访问策略的权限。 “DeviceConnect”
“RegistryRead”
“RegistryRead, DeviceConnect”
“RegistryRead, RegistryWrite”
“RegistryRead、RegistryWrite、DeviceConnect”
'RegistryRead, RegistryWrite, ServiceConnect'
'RegistryRead, RegistryWrite, ServiceConnect, DeviceConnect'
“RegistryRead, ServiceConnect”
'RegistryRead, ServiceConnect, DeviceConnect'
“RegistryWrite”
“RegistryWrite, DeviceConnect”
“RegistryWrite, ServiceConnect”
'RegistryWrite, ServiceConnect, DeviceConnect'
“ServiceConnect”
“ServiceConnect, DeviceConnect” (必需)
secondaryKey 辅助密钥。 字符串

StorageEndpointProperties

名字 描述 价值
connectionString 将文件上传到的 Azure 存储帐户的连接字符串。 string (必需)
containerName 上传文件的根容器的名称。 容器不需要存在,但应使用指定的 connectionString 进行创建。 string (必需)
sasTtlAsIso8601 IoT 中心为文件上传生成的 SAS URI 有效的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload#file-upload-notification-configuration-options。 字符串

快速入门模板

以下快速入门模板部署此资源类型。

模板 描述
使用 IoT 中心创建即用即付(PAYG)环境

部署到 Azure
使用此模板,可以部署配置为使用 IoT 中心的事件的即用即付(PAYG)时序见解环境。
创建 IoT 中心和设备到云使用者组

部署到 Azure
使用此模板,可将设备部署到云和云到设备消息配置以及设备到云使用者组的 IoT 中心实例。
创建 IOT 中心和 Ubuntu 边缘模拟器

部署到 Azure
此模板创建 IOT 中心和虚拟机 Ubuntu 边缘模拟器。
创建 IoT 中心设备预配服务

部署到 Azure
使用此模板可以创建 IoT 中心和 IoT 中心设备预配服务,并将这两个服务链接在一起。
为 IoT 中心帐户、实例、IoT 中心 创建设备更新

部署到 Azure
此模板创建一个帐户和一个实例和一个用于链接实例的中心。 它使用必要的访问策略、路由和使用者组配置中心。
部署 MedTech 服务,包括 Azure IoT 中心

部署到 Azure
MedTech 服务是一项 Azure Health Data Services,旨在从多个设备引入设备数据,将设备数据转换为 FHIR 观察,然后保存在 Azure Health Data Services FHIR 服务中。
使用 ARM 模板创建 IoT 中心、路由和查看消息

部署到 Azure
使用此模板部署 IoT 中心和存储帐户。 运行应用以将消息发送到路由到存储的中心,然后查看结果。

Terraform (AzAPI 提供程序)资源定义

可以使用目标操作部署 IotHubs 资源类型:

  • 资源组

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Devices/IotHubs 资源,请将以下 Terraform 添加到模板。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Devices/IotHubs@2019-03-22"
  name = "string"
  etag = "string"
  location = "string"
  body = jsonencode({
    properties = {
      authorizationPolicies = [
        {
          keyName = "string"
          primaryKey = "string"
          rights = "string"
          secondaryKey = "string"
        }
      ]
      cloudToDevice = {
        defaultTtlAsIso8601 = "string"
        feedback = {
          lockDurationAsIso8601 = "string"
          maxDeliveryCount = int
          ttlAsIso8601 = "string"
        }
        maxDeliveryCount = int
      }
      comments = "string"
      enableFileUploadNotifications = bool
      eventHubEndpoints = {
        {customized property} = {
          partitionCount = int
          retentionTimeInDays = int
        }
      }
      features = "string"
      ipFilterRules = [
        {
          action = "string"
          filterName = "string"
          ipMask = "string"
        }
      ]
      messagingEndpoints = {
        {customized property} = {
          lockDurationAsIso8601 = "string"
          maxDeliveryCount = int
          ttlAsIso8601 = "string"
        }
      }
      routing = {
        endpoints = {
          eventHubs = [
            {
              connectionString = "string"
              name = "string"
              resourceGroup = "string"
              subscriptionId = "string"
            }
          ]
          serviceBusQueues = [
            {
              connectionString = "string"
              name = "string"
              resourceGroup = "string"
              subscriptionId = "string"
            }
          ]
          serviceBusTopics = [
            {
              connectionString = "string"
              name = "string"
              resourceGroup = "string"
              subscriptionId = "string"
            }
          ]
          storageContainers = [
            {
              batchFrequencyInSeconds = int
              connectionString = "string"
              containerName = "string"
              encoding = "string"
              fileNameFormat = "string"
              maxChunkSizeInBytes = int
              name = "string"
              resourceGroup = "string"
              subscriptionId = "string"
            }
          ]
        }
        fallbackRoute = {
          condition = "string"
          endpointNames = [
            "string"
          ]
          isEnabled = bool
          name = "string"
          source = "string"
        }
        routes = [
          {
            condition = "string"
            endpointNames = [
              "string"
            ]
            isEnabled = bool
            name = "string"
            source = "string"
          }
        ]
      }
      storageEndpoints = {
        {customized property} = {
          connectionString = "string"
          containerName = "string"
          sasTtlAsIso8601 = "string"
        }
      }
    }
  })
  sku = {
    capacity = int
    name = "string"
  }
  tags = {
    {customized property} = "string"
  }
}

属性值

CloudToDeviceProperties

名字 描述 价值
defaultTtlAsIso8601 设备队列中云到设备消息的默认生存时间。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 字符串
反馈 云到设备消息的反馈队列的属性。 FeedbackProperties
maxDeliveryCount 设备队列中云到设备消息的最大传递计数。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 int

约束:
最小值 = 1
最大值 = 100

EventHubProperties

名字 描述 价值
partitionCount 用于在与事件中心兼容的终结点中接收设备到云消息的分区数。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages。 int
retentionTimeInDays 设备到云消息的保留时间(以天为单位)。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages int

FallbackRouteProperties

名字 描述 价值
条件 为了应用回退路由而评估的条件。 如果未提供条件,则默认情况下该条件的计算结果为 true。 有关语法,请参阅:/azure/iot-hub/iot-hub-devguide-query-language 字符串
endpointNames 将满足条件的消息路由到的终结点列表。 目前只允许 1 个终结点。 string[] (必需)
isEnabled 用于指定是否启用回退路由。 bool (必需)
名字 路由的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符,并且必须是唯一的。 字符串
要向其应用路由规则的源。 例如,DeviceMessages “DeviceJobLifecycleEvents”
“DeviceLifecycleEvents”
“DeviceMessages”
“Invalid”
“TwinChangeEvents”(必需)

FeedbackProperties

名字 描述 价值
lockDurationAsIso8601 反馈队列的锁定持续时间。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 字符串
maxDeliveryCount IoT 中心尝试在反馈队列上传递消息的次数。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 int

约束:
最小值 = 1
最大值 = 100
ttlAsIso8601 消息在 IoT 中心过期之前可供使用的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages。 字符串

IotHubProperties

名字 描述 价值
authorizationPolicies 可用于保护与 IoT 中心的连接的共享访问策略。 SharedAccessSignatureAuthorizationRule[]
cloudToDevice IoT 中心云到设备的消息传送属性。 CloudToDeviceProperties
评论 IoT 中心注释。 字符串
enableFileUploadNotifications 如果为 True,则启用文件上传通知。 bool
eventHubEndpoints 与事件中心兼容的终结点属性。 此字典的唯一可能键是事件。 在对 IoT 中心进行创建或更新调用时,此密钥必须存在于字典中。 IotHubPropertiesEventHubEndpoints
特征 为 IoT 中心启用的功能和功能。 “DeviceManagement”
“None”
ipFilterRules IP 筛选器规则。 IpFilterRule[]
messagingEndpoints 文件上传通知队列的消息传送终结点属性。 IotHubPropertiesMessagingEndpoints
路由 IoT 中心的路由相关属性。 请参阅:/azure/iot-hub/iot-hub-devguide-messaging RoutingProperties
storageEndpoints 可在其中上传文件的 Azure 存储终结点列表。 目前只能配置一个 Azure 存储帐户,并且必须将其密钥作为$default。 指定多个存储帐户会导致引发错误。 当 enableFileUploadNotifications 属性设置为 True 时,不指定此属性的值,将导致引发错误。 IotHubPropertiesStorageEndpoints

IotHubPropertiesEventHubEndpoints

名字 描述 价值

IotHubPropertiesMessagingEndpoints

名字 描述 价值

IotHubPropertiesStorageEndpoints

名字 描述 价值

IotHubSkuInfo

名字 描述 价值
能力 预配的 IoT 中心单元数。 请参阅:/azure/azure-subscription-service-limits#iot-hub-limits。 int
名字 SKU 的名称。 “B1”
“B2”
“B3”
“F1”
“S1”
'S2'
“S3”(必需)

IpFilterRule

名字 描述 价值
行动 此规则捕获的请求的所需操作。 “Accept”
“拒绝”(必需)
filterName IP 筛选器规则的名称。 string (必需)
ipMask 一个字符串,其中包含规则的 CIDR 表示法中的 IP 地址范围。 string (必需)

MessagingEndpointProperties

名字 描述 价值
lockDurationAsIso8601 锁定持续时间。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload。 字符串
maxDeliveryCount IoT 中心尝试传递消息的次数。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload。 int

约束:
最小值 = 1
最大值 = 100
ttlAsIso8601 消息在 IoT 中心过期之前可供使用的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload。 字符串

Microsoft.Devices/IotHubs

名字 描述 价值
etag Etag 字段 不需要。 如果在响应正文中提供,则还必须根据正常的 ETag 约定将其作为标头提供。 字符串
位置 资源位置。 string (必需)
名字 资源名称 string (必需)
性能 IotHub 属性 IotHubProperties
sku IotHub SKU 信息 IotHubSkuInfo (必需)
标签 资源标记 标记名称和值的字典。
类型 资源类型 “Microsoft.Devices/IotHubs@2019-03-22”

ResourceTags

名字 描述 价值

RouteProperties

名字 描述 价值
条件 评估为应用路由规则的条件。 如果未提供任何条件,则默认情况下计算结果为 true。 有关语法,请参阅:/azure/iot-hub/iot-hub-devguide-query-language 字符串
endpointNames 路由满足条件的消息的终结点列表。 目前只允许一个终结点。 string[] (必需)
isEnabled 用于指定是否启用路由。 bool (必需)
名字 路由的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符,并且必须是唯一的。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
要应用路由规则的源,例如 DeviceMessages。 “DeviceJobLifecycleEvents”
“DeviceLifecycleEvents”
“DeviceMessages”
“Invalid”
“TwinChangeEvents”(必需)

RoutingEndpoints

名字 描述 价值
eventHubs IoT 中心根据路由规则将消息路由到的事件中心终结点列表。 此列表不包括内置事件中心终结点。 RoutingEventHubProperties[]
serviceBusQueues IoT 中心根据路由规则将消息路由到的服务总线队列终结点列表。 RoutingServiceBusQueueEndpointProperties[]
serviceBusTopics IoT 中心根据路由规则将消息路由到的服务总线主题终结点列表。 RoutingServiceBusTopicEndpointProperties[]
storageContainers IoT 中心根据路由规则将消息路由到的存储容器终结点列表。 RoutingStorageContainerProperties[]

RoutingEventHubProperties

名字 描述 价值
connectionString 事件中心终结点的连接字符串。 string (必需)
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 事件中心终结点的资源组的名称。 字符串
subscriptionId 事件中心终结点的订阅标识符。 字符串

RoutingProperties

名字 描述 价值
端点 与 IoT 中心基于路由规则路由消息的自定义终结点相关的属性。 在付费中心的所有终结点类型中最多允许 10 个自定义终结点,并且免费中心的所有终结点类型只允许 1 个自定义终结点。 RoutingEndpoints
fallbackRoute 当“路由”部分中指定的任何条件均未满足时,用作回退路由的路由的属性。 这是一个可选参数。 如果未设置此属性,则不符合“路由”部分中指定的任何条件的消息将路由到内置事件中心终结点。 FallbackRouteProperties
路线 IoT 中心用来将消息路由到内置终结点和自定义终结点的用户提供的路由规则列表。 付费中心最多允许 100 个路由规则,最多允许 5 个路由规则用于免费中心。 RouteProperties[]

RoutingServiceBusQueueEndpointProperties

名字 描述 价值
connectionString 服务总线队列终结点的连接字符串。 string (必需)
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际队列名称相同。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 服务总线队列终结点的资源组的名称。 字符串
subscriptionId 服务总线队列终结点的订阅标识符。 字符串

RoutingServiceBusTopicEndpointProperties

名字 描述 价值
connectionString 服务总线主题终结点的连接字符串。 string (必需)
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际主题名称相同。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 服务总线主题终结点的资源组的名称。 字符串
subscriptionId 服务总线主题终结点的订阅标识符。 字符串

RoutingStorageContainerProperties

名字 描述 价值
batchFrequencyInSeconds Blob 写入存储的时间间隔。 值应介于 60 到 720 秒之间。 默认值为 300 秒。 int

约束:
最小值 = 60
最大值 = 720
connectionString 存储帐户的连接字符串。 string (必需)
containerName 存储帐户中的存储容器的名称。 string (必需)
编码 用于将消息序列化为 Blob 的编码。 支持的值为“avro”、“avrodeflate”和“JSON”。 默认值为“avro”。 “Avro”
“AvroDeflate”
“JSON”
fileNameFormat Blob 的文件名格式。 默认格式为 {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}。 所有参数都是必需参数,但可以重新排序。 字符串
maxChunkSizeInBytes 写入存储的每个 Blob 的最大字节数。 值应介于 10485760(10MB) 和 524288000(500MB) 之间。 默认值为 314572800(300MB)。 int

约束:
最小值 = 10485760
最大值 = 524288000
名字 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 字符串

约束:
模式 = ^[A-Za-z0-9-._]{1,64}$ (必需)
resourceGroup 存储帐户的资源组的名称。 字符串
subscriptionId 存储帐户的订阅标识符。 字符串

SharedAccessSignatureAuthorizationRule

名字 描述 价值
keyName 共享访问策略的名称。 string (必需)
primaryKey 主键。 字符串
权利 分配给共享访问策略的权限。 “DeviceConnect”
“RegistryRead”
“RegistryRead, DeviceConnect”
“RegistryRead, RegistryWrite”
“RegistryRead、RegistryWrite、DeviceConnect”
'RegistryRead, RegistryWrite, ServiceConnect'
'RegistryRead, RegistryWrite, ServiceConnect, DeviceConnect'
“RegistryRead, ServiceConnect”
'RegistryRead, ServiceConnect, DeviceConnect'
“RegistryWrite”
“RegistryWrite, DeviceConnect”
“RegistryWrite, ServiceConnect”
'RegistryWrite, ServiceConnect, DeviceConnect'
“ServiceConnect”
“ServiceConnect, DeviceConnect” (必需)
secondaryKey 辅助密钥。 字符串

StorageEndpointProperties

名字 描述 价值
connectionString 将文件上传到的 Azure 存储帐户的连接字符串。 string (必需)
containerName 上传文件的根容器的名称。 容器不需要存在,但应使用指定的 connectionString 进行创建。 string (必需)
sasTtlAsIso8601 IoT 中心为文件上传生成的 SAS URI 有效的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload#file-upload-notification-configuration-options。 字符串