你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft.Devices IotHubs 2021-03-31
- 最新
- 2023-06-30
- 2023-06-30-preview
- 2022-11-15-preview
- 2022-04-30-preview
- 2021-07-02
- 2021-07-02-preview
- 2021-07-01
- 2021-07-01-preview
- 2021-03-31
- 2021-03-03-preview
- 2021-02-01-preview
- 2020-08-31
- 2020-08-31-preview
- 2020-08-01
- 2020-07-10-preview
- 2020-06-15
- 2020-04-01
- 2020-03-01
- 2019-11-04
- 2019-07-01-preview
- 2019-03-22
- 2019-03-22-preview
- 2018-12-01-preview
- 2018-04-01
- 2018-01-22
- 2017-07-01
- 2017-01-19
- 2016-02-03
Bicep 资源定义
可以使用目标操作部署 IotHubs 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Devices/IotHubs 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Devices/IotHubs@2021-03-31' = {
etag: 'string'
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
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'
}
}
minTlsVersion: 'string'
networkRuleSets: {
applyToBuiltInEventHubEndpoint: bool
defaultAction: 'string'
ipRules: [
{
action: 'string'
filterName: 'string'
ipMask: 'string'
}
]
}
privateEndpointConnections: [
{
properties: {
privateEndpoint: {}
privateLinkServiceConnectionState: {
actionsRequired: 'string'
description: 'string'
status: 'string'
}
}
}
]
publicNetworkAccess: 'string'
routing: {
endpoints: {
eventHubs: [
{
authenticationType: 'string'
connectionString: 'string'
endpointUri: 'string'
entityPath: 'string'
id: 'string'
identity: {
userAssignedIdentity: 'string'
}
name: 'string'
resourceGroup: 'string'
subscriptionId: 'string'
}
]
serviceBusQueues: [
{
authenticationType: 'string'
connectionString: 'string'
endpointUri: 'string'
entityPath: 'string'
id: 'string'
identity: {
userAssignedIdentity: 'string'
}
name: 'string'
resourceGroup: 'string'
subscriptionId: 'string'
}
]
serviceBusTopics: [
{
authenticationType: 'string'
connectionString: 'string'
endpointUri: 'string'
entityPath: 'string'
id: 'string'
identity: {
userAssignedIdentity: 'string'
}
name: 'string'
resourceGroup: 'string'
subscriptionId: 'string'
}
]
storageContainers: [
{
authenticationType: 'string'
batchFrequencyInSeconds: int
connectionString: 'string'
containerName: 'string'
encoding: 'string'
endpointUri: 'string'
fileNameFormat: 'string'
id: 'string'
identity: {
userAssignedIdentity: 'string'
}
maxChunkSizeInBytes: int
name: 'string'
resourceGroup: 'string'
subscriptionId: 'string'
}
]
}
enrichments: [
{
endpointNames: [
'string'
]
key: 'string'
value: '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}: {
authenticationType: 'string'
connectionString: 'string'
containerName: 'string'
identity: {
userAssignedIdentity: 'string'
}
sasTtlAsIso8601: 'string'
}
}
}
sku: {
capacity: int
name: 'string'
}
tags: {
{customized property}: 'string'
}
}
属性值
ArmIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 用于资源的标识类型。 类型“SystemAssigned,UserAssigned”包括隐式创建的标识和一组用户分配的标识。 类型“None”将从服务中删除任何标识。 | “None” “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned” |
userAssignedIdentities | <ArmUserIdentity> 字典 | ArmIdentityUserAssignedIdentities |
ArmIdentityUserAssignedIdentities
名字 | 描述 | 价值 |
---|
ArmUserIdentity
名字 | 描述 | 价值 |
---|
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 |
EnrichmentProperties
名字 | 描述 | 价值 |
---|---|---|
endpointNames | 将扩充应用到消息的终结点列表。 | string[] (必需) |
钥匙 | 扩充属性的键或名称。 | string (必需) |
价值 | 扩充属性的值。 | string (必需) |
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 | “DeviceConnectionStateEvents” “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 |
minTlsVersion | 指定要支持此中心的最低 TLS 版本。 可以设置为“1.2”,让使用低于 1.2 的 TLS 版本的客户端被拒绝。 | 字符串 |
networkRuleSets | IotHub 的网络规则集属性 | NetworkRuleSetProperties |
privateEndpointConnections | 在此 IotHub 上创建的专用终结点连接 | PrivateEndpointConnection[] |
publicNetworkAccess | 是否允许来自公用网络的请求 | “Disabled” “Enabled” |
路由 | 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 (必需) |
ManagedIdentity
名字 | 描述 | 价值 |
---|---|---|
userAssignedIdentity | 用户分配的标识。 | 字符串 |
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 约定将其作为标头提供。 | 字符串 |
身份 | IotHub 的托管标识。 | ArmIdentity |
位置 | 资源位置。 | string (必需) |
名字 | 资源名称 | string (必需) |
性能 | IotHub 属性 | IotHubProperties |
sku | IotHub SKU 信息 | IotHubSkuInfo (必需) |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
NetworkRuleSetIpRule
名字 | 描述 | 价值 |
---|---|---|
行动 | IP 筛选器操作 | “允许” |
filterName | IP 筛选器规则的名称。 | string (必需) |
ipMask | 一个字符串,其中包含规则的 CIDR 表示法中的 IP 地址范围。 | string (必需) |
NetworkRuleSetProperties
名字 | 描述 | 价值 |
---|---|---|
applyToBuiltInEventHubEndpoint | 如果为 True,则网络规则集也应用于 IotHub 的 BuiltIn EventHub EndPoint | bool (必需) |
defaultAction | 网络规则集的默认操作 | “允许” “拒绝” |
ipRules | IP 规则列表 | NetworkRuleSetIpRule[] (必需) |
PrivateEndpoint
名字 | 描述 | 价值 |
---|
PrivateEndpointConnection
名字 | 描述 | 价值 |
---|---|---|
性能 | 专用终结点连接的属性 | PrivateEndpointConnectionProperties(必需) |
PrivateEndpointConnectionProperties
名字 | 描述 | 价值 |
---|---|---|
privateEndpoint | 专用终结点连接的专用终结点属性 | PrivateEndpoint |
privateLinkServiceConnectionState | 专用终结点连接的当前状态 | PrivateLinkServiceConnectionState (必需) |
PrivateLinkServiceConnectionState
名字 | 描述 | 价值 |
---|---|---|
actionsRequired | 专用终结点连接所需的操作 | 字符串 |
描述 | 专用终结点连接的当前状态说明 | string (必需) |
地位 | 专用终结点连接的状态 | “已批准” “Disconnected” “Pending” “已拒绝”(必需) |
ResourceTags
名字 | 描述 | 价值 |
---|
RouteProperties
名字 | 描述 | 价值 |
---|---|---|
条件 | 评估为应用路由规则的条件。 如果未提供任何条件,则默认情况下计算结果为 true。 有关语法,请参阅:/azure/iot-hub/iot-hub-devguide-query-language | 字符串 |
endpointNames | 路由满足条件的消息的终结点列表。 目前只允许一个终结点。 | string[] (必需) |
isEnabled | 用于指定是否启用路由。 | bool (必需) |
名字 | 路由的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符,并且必须是唯一的。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
源 | 要应用路由规则的源,例如 DeviceMessages。 | “DeviceConnectionStateEvents” “DeviceJobLifecycleEvents” “DeviceLifecycleEvents” “DeviceMessages” “Invalid” “TwinChangeEvents”(必需) |
RoutingEndpoints
名字 | 描述 | 价值 |
---|---|---|
eventHubs | IoT 中心根据路由规则将消息路由到的事件中心终结点列表。 此列表不包括内置事件中心终结点。 | RoutingEventHubProperties[] |
serviceBusQueues | IoT 中心根据路由规则将消息路由到的服务总线队列终结点列表。 | RoutingServiceBusQueueEndpointProperties[] |
serviceBusTopics | IoT 中心根据路由规则将消息路由到的服务总线主题终结点列表。 | RoutingServiceBusTopicEndpointProperties[] |
storageContainers | IoT 中心根据路由规则将消息路由到的存储容器终结点列表。 | RoutingStorageContainerProperties[] |
RoutingEventHubProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对事件中心终结点进行身份验证的方法 | “identityBased” “keyBased” |
connectionString | 事件中心终结点的连接字符串。 | 字符串 |
endpointUri | 事件中心终结点的 URL。 它必须包括协议 sb:// | 字符串 |
entityPath | 事件中心命名空间上的事件中心名称 | 字符串 |
id | 事件中心终结点的 ID | 字符串 |
身份 | 路由事件中心终结点的托管标识属性。 | ManagedIdentity |
名字 | 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
resourceGroup | 事件中心终结点的资源组的名称。 | 字符串 |
subscriptionId | 事件中心终结点的订阅标识符。 | 字符串 |
RoutingProperties
名字 | 描述 | 价值 |
---|---|---|
端点 | 与 IoT 中心基于路由规则路由消息的自定义终结点相关的属性。 在付费中心的所有终结点类型中最多允许 10 个自定义终结点,并且免费中心的所有终结点类型只允许 1 个自定义终结点。 | RoutingEndpoints |
扩充 | IoT 中心应用于要传递到内置终结点和自定义终结点的消息的用户提供的扩充列表。 请参阅:https://aka.ms/telemetryoneventgrid | 扩充属性[] |
fallbackRoute | 当“路由”部分中指定的任何条件均未满足时,用作回退路由的路由的属性。 这是一个可选参数。 如果未设置此属性,则不符合“路由”部分中指定的任何条件的消息将路由到内置事件中心终结点。 | FallbackRouteProperties |
路线 | IoT 中心用来将消息路由到内置终结点和自定义终结点的用户提供的路由规则列表。 付费中心最多允许 100 个路由规则,最多允许 5 个路由规则用于免费中心。 | RouteProperties[] |
RoutingServiceBusQueueEndpointProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对服务总线队列终结点进行身份验证的方法 | “identityBased” “keyBased” |
connectionString | 服务总线队列终结点的连接字符串。 | 字符串 |
endpointUri | 服务总线队列终结点的 URL。 它必须包括协议 sb:// | 字符串 |
entityPath | 服务总线命名空间上的队列名称 | 字符串 |
id | 服务总线队列终结点的 ID | 字符串 |
身份 | 路由服务总线队列终结点的托管标识属性。 | ManagedIdentity |
名字 | 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际队列名称相同。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
resourceGroup | 服务总线队列终结点的资源组的名称。 | 字符串 |
subscriptionId | 服务总线队列终结点的订阅标识符。 | 字符串 |
RoutingServiceBusTopicEndpointProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对服务总线主题终结点进行身份验证的方法 | “identityBased” “keyBased” |
connectionString | 服务总线主题终结点的连接字符串。 | 字符串 |
endpointUri | 服务总线主题终结点的 URL。 它必须包括协议 sb:// | 字符串 |
entityPath | 服务总线主题上的队列名称 | 字符串 |
id | 服务总线主题终结点的 ID | 字符串 |
身份 | 路由服务总线主题终结点的托管标识属性。 | ManagedIdentity |
名字 | 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际主题名称相同。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
resourceGroup | 服务总线主题终结点的资源组的名称。 | 字符串 |
subscriptionId | 服务总线主题终结点的订阅标识符。 | 字符串 |
RoutingStorageContainerProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对存储终结点进行身份验证的方法 | “identityBased” “keyBased” |
batchFrequencyInSeconds | Blob 写入存储的时间间隔。 值应介于 60 到 720 秒之间。 默认值为 300 秒。 | int 约束: 最小值 = 60 最大值 = 720 |
connectionString | 存储帐户的连接字符串。 | 字符串 |
containerName | 存储帐户中的存储容器的名称。 | string (必需) |
编码 | 用于将消息序列化为 Blob 的编码。 支持的值为“avro”、“avrodeflate”和“JSON”。 默认值为“avro”。 | “Avro” “AvroDeflate” “JSON” |
endpointUri | 存储终结点的 URL。 它必须包括协议 https:// | 字符串 |
fileNameFormat | Blob 的文件名格式。 默认格式为 {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}。 所有参数都是必需参数,但可以重新排序。 | 字符串 |
id | 存储容器终结点的 ID | 字符串 |
身份 | 路由存储终结点的托管标识属性。 | ManagedIdentity |
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
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 指定用于连接到存储帐户的身份验证类型。 | “identityBased” “keyBased” |
connectionString | 将文件上传到的 Azure 存储帐户的连接字符串。 | string (必需) |
containerName | 上传文件的根容器的名称。 容器不需要存在,但应使用指定的 connectionString 进行创建。 | string (必需) |
身份 | 用于文件上传的存储终结点的托管标识属性。 | ManagedIdentity |
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": "2021-03-31",
"name": "string",
"etag": "string",
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"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"
}
},
"minTlsVersion": "string",
"networkRuleSets": {
"applyToBuiltInEventHubEndpoint": "bool",
"defaultAction": "string",
"ipRules": [
{
"action": "string",
"filterName": "string",
"ipMask": "string"
}
]
},
"privateEndpointConnections": [
{
"properties": {
"privateEndpoint": {
},
"privateLinkServiceConnectionState": {
"actionsRequired": "string",
"description": "string",
"status": "string"
}
}
}
],
"publicNetworkAccess": "string",
"routing": {
"endpoints": {
"eventHubs": [
{
"authenticationType": "string",
"connectionString": "string",
"endpointUri": "string",
"entityPath": "string",
"id": "string",
"identity": {
"userAssignedIdentity": "string"
},
"name": "string",
"resourceGroup": "string",
"subscriptionId": "string"
}
],
"serviceBusQueues": [
{
"authenticationType": "string",
"connectionString": "string",
"endpointUri": "string",
"entityPath": "string",
"id": "string",
"identity": {
"userAssignedIdentity": "string"
},
"name": "string",
"resourceGroup": "string",
"subscriptionId": "string"
}
],
"serviceBusTopics": [
{
"authenticationType": "string",
"connectionString": "string",
"endpointUri": "string",
"entityPath": "string",
"id": "string",
"identity": {
"userAssignedIdentity": "string"
},
"name": "string",
"resourceGroup": "string",
"subscriptionId": "string"
}
],
"storageContainers": [
{
"authenticationType": "string",
"batchFrequencyInSeconds": "int",
"connectionString": "string",
"containerName": "string",
"encoding": "string",
"endpointUri": "string",
"fileNameFormat": "string",
"id": "string",
"identity": {
"userAssignedIdentity": "string"
},
"maxChunkSizeInBytes": "int",
"name": "string",
"resourceGroup": "string",
"subscriptionId": "string"
}
]
},
"enrichments": [
{
"endpointNames": [ "string" ],
"key": "string",
"value": "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}": {
"authenticationType": "string",
"connectionString": "string",
"containerName": "string",
"identity": {
"userAssignedIdentity": "string"
},
"sasTtlAsIso8601": "string"
}
}
},
"sku": {
"capacity": "int",
"name": "string"
},
"tags": {
"{customized property}": "string"
}
}
属性值
ArmIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 用于资源的标识类型。 类型“SystemAssigned,UserAssigned”包括隐式创建的标识和一组用户分配的标识。 类型“None”将从服务中删除任何标识。 | “None” “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned” |
userAssignedIdentities | <ArmUserIdentity> 字典 | ArmIdentityUserAssignedIdentities |
ArmIdentityUserAssignedIdentities
名字 | 描述 | 价值 |
---|
ArmUserIdentity
名字 | 描述 | 价值 |
---|
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 |
EnrichmentProperties
名字 | 描述 | 价值 |
---|---|---|
endpointNames | 将扩充应用到消息的终结点列表。 | string[] (必需) |
钥匙 | 扩充属性的键或名称。 | string (必需) |
价值 | 扩充属性的值。 | string (必需) |
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 | “DeviceConnectionStateEvents” “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 |
minTlsVersion | 指定要支持此中心的最低 TLS 版本。 可以设置为“1.2”,让使用低于 1.2 的 TLS 版本的客户端被拒绝。 | 字符串 |
networkRuleSets | IotHub 的网络规则集属性 | NetworkRuleSetProperties |
privateEndpointConnections | 在此 IotHub 上创建的专用终结点连接 | PrivateEndpointConnection[] |
publicNetworkAccess | 是否允许来自公用网络的请求 | “Disabled” “Enabled” |
路由 | 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 (必需) |
ManagedIdentity
名字 | 描述 | 价值 |
---|---|---|
userAssignedIdentity | 用户分配的标识。 | 字符串 |
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 版本 | '2021-03-31' |
etag | Etag 字段 不需要。 如果在响应正文中提供,则还必须根据正常的 ETag 约定将其作为标头提供。 | 字符串 |
身份 | IotHub 的托管标识。 | ArmIdentity |
位置 | 资源位置。 | string (必需) |
名字 | 资源名称 | string (必需) |
性能 | IotHub 属性 | IotHubProperties |
sku | IotHub SKU 信息 | IotHubSkuInfo (必需) |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
类型 | 资源类型 | “Microsoft.Devices/IotHubs” |
NetworkRuleSetIpRule
名字 | 描述 | 价值 |
---|---|---|
行动 | IP 筛选器操作 | “允许” |
filterName | IP 筛选器规则的名称。 | string (必需) |
ipMask | 一个字符串,其中包含规则的 CIDR 表示法中的 IP 地址范围。 | string (必需) |
NetworkRuleSetProperties
名字 | 描述 | 价值 |
---|---|---|
applyToBuiltInEventHubEndpoint | 如果为 True,则网络规则集也应用于 IotHub 的 BuiltIn EventHub EndPoint | bool (必需) |
defaultAction | 网络规则集的默认操作 | “允许” “拒绝” |
ipRules | IP 规则列表 | NetworkRuleSetIpRule[] (必需) |
PrivateEndpoint
名字 | 描述 | 价值 |
---|
PrivateEndpointConnection
名字 | 描述 | 价值 |
---|---|---|
性能 | 专用终结点连接的属性 | PrivateEndpointConnectionProperties(必需) |
PrivateEndpointConnectionProperties
名字 | 描述 | 价值 |
---|---|---|
privateEndpoint | 专用终结点连接的专用终结点属性 | PrivateEndpoint |
privateLinkServiceConnectionState | 专用终结点连接的当前状态 | PrivateLinkServiceConnectionState (必需) |
PrivateLinkServiceConnectionState
名字 | 描述 | 价值 |
---|---|---|
actionsRequired | 专用终结点连接所需的操作 | 字符串 |
描述 | 专用终结点连接的当前状态说明 | string (必需) |
地位 | 专用终结点连接的状态 | “已批准” “Disconnected” “Pending” “已拒绝”(必需) |
ResourceTags
名字 | 描述 | 价值 |
---|
RouteProperties
名字 | 描述 | 价值 |
---|---|---|
条件 | 评估为应用路由规则的条件。 如果未提供任何条件,则默认情况下计算结果为 true。 有关语法,请参阅:/azure/iot-hub/iot-hub-devguide-query-language | 字符串 |
endpointNames | 路由满足条件的消息的终结点列表。 目前只允许一个终结点。 | string[] (必需) |
isEnabled | 用于指定是否启用路由。 | bool (必需) |
名字 | 路由的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符,并且必须是唯一的。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
源 | 要应用路由规则的源,例如 DeviceMessages。 | “DeviceConnectionStateEvents” “DeviceJobLifecycleEvents” “DeviceLifecycleEvents” “DeviceMessages” “Invalid” “TwinChangeEvents”(必需) |
RoutingEndpoints
名字 | 描述 | 价值 |
---|---|---|
eventHubs | IoT 中心根据路由规则将消息路由到的事件中心终结点列表。 此列表不包括内置事件中心终结点。 | RoutingEventHubProperties[] |
serviceBusQueues | IoT 中心根据路由规则将消息路由到的服务总线队列终结点列表。 | RoutingServiceBusQueueEndpointProperties[] |
serviceBusTopics | IoT 中心根据路由规则将消息路由到的服务总线主题终结点列表。 | RoutingServiceBusTopicEndpointProperties[] |
storageContainers | IoT 中心根据路由规则将消息路由到的存储容器终结点列表。 | RoutingStorageContainerProperties[] |
RoutingEventHubProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对事件中心终结点进行身份验证的方法 | “identityBased” “keyBased” |
connectionString | 事件中心终结点的连接字符串。 | 字符串 |
endpointUri | 事件中心终结点的 URL。 它必须包括协议 sb:// | 字符串 |
entityPath | 事件中心命名空间上的事件中心名称 | 字符串 |
id | 事件中心终结点的 ID | 字符串 |
身份 | 路由事件中心终结点的托管标识属性。 | ManagedIdentity |
名字 | 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
resourceGroup | 事件中心终结点的资源组的名称。 | 字符串 |
subscriptionId | 事件中心终结点的订阅标识符。 | 字符串 |
RoutingProperties
名字 | 描述 | 价值 |
---|---|---|
端点 | 与 IoT 中心基于路由规则路由消息的自定义终结点相关的属性。 在付费中心的所有终结点类型中最多允许 10 个自定义终结点,并且免费中心的所有终结点类型只允许 1 个自定义终结点。 | RoutingEndpoints |
扩充 | IoT 中心应用于要传递到内置终结点和自定义终结点的消息的用户提供的扩充列表。 请参阅:https://aka.ms/telemetryoneventgrid | 扩充属性[] |
fallbackRoute | 当“路由”部分中指定的任何条件均未满足时,用作回退路由的路由的属性。 这是一个可选参数。 如果未设置此属性,则不符合“路由”部分中指定的任何条件的消息将路由到内置事件中心终结点。 | FallbackRouteProperties |
路线 | IoT 中心用来将消息路由到内置终结点和自定义终结点的用户提供的路由规则列表。 付费中心最多允许 100 个路由规则,最多允许 5 个路由规则用于免费中心。 | RouteProperties[] |
RoutingServiceBusQueueEndpointProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对服务总线队列终结点进行身份验证的方法 | “identityBased” “keyBased” |
connectionString | 服务总线队列终结点的连接字符串。 | 字符串 |
endpointUri | 服务总线队列终结点的 URL。 它必须包括协议 sb:// | 字符串 |
entityPath | 服务总线命名空间上的队列名称 | 字符串 |
id | 服务总线队列终结点的 ID | 字符串 |
身份 | 路由服务总线队列终结点的托管标识属性。 | ManagedIdentity |
名字 | 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际队列名称相同。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
resourceGroup | 服务总线队列终结点的资源组的名称。 | 字符串 |
subscriptionId | 服务总线队列终结点的订阅标识符。 | 字符串 |
RoutingServiceBusTopicEndpointProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对服务总线主题终结点进行身份验证的方法 | “identityBased” “keyBased” |
connectionString | 服务总线主题终结点的连接字符串。 | 字符串 |
endpointUri | 服务总线主题终结点的 URL。 它必须包括协议 sb:// | 字符串 |
entityPath | 服务总线主题上的队列名称 | 字符串 |
id | 服务总线主题终结点的 ID | 字符串 |
身份 | 路由服务总线主题终结点的托管标识属性。 | ManagedIdentity |
名字 | 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际主题名称相同。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
resourceGroup | 服务总线主题终结点的资源组的名称。 | 字符串 |
subscriptionId | 服务总线主题终结点的订阅标识符。 | 字符串 |
RoutingStorageContainerProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对存储终结点进行身份验证的方法 | “identityBased” “keyBased” |
batchFrequencyInSeconds | Blob 写入存储的时间间隔。 值应介于 60 到 720 秒之间。 默认值为 300 秒。 | int 约束: 最小值 = 60 最大值 = 720 |
connectionString | 存储帐户的连接字符串。 | 字符串 |
containerName | 存储帐户中的存储容器的名称。 | string (必需) |
编码 | 用于将消息序列化为 Blob 的编码。 支持的值为“avro”、“avrodeflate”和“JSON”。 默认值为“avro”。 | “Avro” “AvroDeflate” “JSON” |
endpointUri | 存储终结点的 URL。 它必须包括协议 https:// | 字符串 |
fileNameFormat | Blob 的文件名格式。 默认格式为 {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}。 所有参数都是必需参数,但可以重新排序。 | 字符串 |
id | 存储容器终结点的 ID | 字符串 |
身份 | 路由存储终结点的托管标识属性。 | ManagedIdentity |
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
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 指定用于连接到存储帐户的身份验证类型。 | “identityBased” “keyBased” |
connectionString | 将文件上传到的 Azure 存储帐户的连接字符串。 | string (必需) |
containerName | 上传文件的根容器的名称。 容器不需要存在,但应使用指定的 connectionString 进行创建。 | string (必需) |
身份 | 用于文件上传的存储终结点的托管标识属性。 | ManagedIdentity |
sasTtlAsIso8601 | IoT 中心为文件上传生成的 SAS URI 有效的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload#file-upload-notification-configuration-options。 | 字符串 |
快速入门模板
以下快速入门模板部署此资源类型。
模板 | 描述 |
---|---|
使用 IoT 中心创建即用即付(PAYG)环境 |
使用此模板,可以部署配置为使用 IoT 中心的事件的即用即付(PAYG)时序见解环境。 |
创建 IoT 中心和设备到云使用者组 |
使用此模板,可将设备部署到云和云到设备消息配置以及设备到云使用者组的 IoT 中心实例。 |
创建 IOT 中心和 Ubuntu 边缘模拟器 |
此模板创建 IOT 中心和虚拟机 Ubuntu 边缘模拟器。 |
创建 IoT 中心设备预配服务 |
使用此模板可以创建 IoT 中心和 IoT 中心设备预配服务,并将这两个服务链接在一起。 |
为 IoT 中心帐户、实例、IoT 中心 创建设备更新 |
此模板创建一个帐户和一个实例和一个用于链接实例的中心。 它使用必要的访问策略、路由和使用者组配置中心。 |
部署 MedTech 服务,包括 Azure IoT 中心 |
MedTech 服务是一项 Azure Health Data Services,旨在从多个设备引入设备数据,将设备数据转换为 FHIR 观察,然后保存在 Azure Health Data Services FHIR 服务中。 |
使用 ARM 模板创建 IoT 中心、路由和查看消息 |
使用此模板部署 IoT 中心和存储帐户。 运行应用以将消息发送到路由到存储的中心,然后查看结果。 |
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署 IotHubs 资源类型:
- 资源组
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Devices/IotHubs 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Devices/IotHubs@2021-03-31"
name = "string"
etag = "string"
identity = {
type = "string"
userAssignedIdentities = {
{customized property} = {
}
}
}
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"
}
}
minTlsVersion = "string"
networkRuleSets = {
applyToBuiltInEventHubEndpoint = bool
defaultAction = "string"
ipRules = [
{
action = "string"
filterName = "string"
ipMask = "string"
}
]
}
privateEndpointConnections = [
{
properties = {
privateEndpoint = {
}
privateLinkServiceConnectionState = {
actionsRequired = "string"
description = "string"
status = "string"
}
}
}
]
publicNetworkAccess = "string"
routing = {
endpoints = {
eventHubs = [
{
authenticationType = "string"
connectionString = "string"
endpointUri = "string"
entityPath = "string"
id = "string"
identity = {
userAssignedIdentity = "string"
}
name = "string"
resourceGroup = "string"
subscriptionId = "string"
}
]
serviceBusQueues = [
{
authenticationType = "string"
connectionString = "string"
endpointUri = "string"
entityPath = "string"
id = "string"
identity = {
userAssignedIdentity = "string"
}
name = "string"
resourceGroup = "string"
subscriptionId = "string"
}
]
serviceBusTopics = [
{
authenticationType = "string"
connectionString = "string"
endpointUri = "string"
entityPath = "string"
id = "string"
identity = {
userAssignedIdentity = "string"
}
name = "string"
resourceGroup = "string"
subscriptionId = "string"
}
]
storageContainers = [
{
authenticationType = "string"
batchFrequencyInSeconds = int
connectionString = "string"
containerName = "string"
encoding = "string"
endpointUri = "string"
fileNameFormat = "string"
id = "string"
identity = {
userAssignedIdentity = "string"
}
maxChunkSizeInBytes = int
name = "string"
resourceGroup = "string"
subscriptionId = "string"
}
]
}
enrichments = [
{
endpointNames = [
"string"
]
key = "string"
value = "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} = {
authenticationType = "string"
connectionString = "string"
containerName = "string"
identity = {
userAssignedIdentity = "string"
}
sasTtlAsIso8601 = "string"
}
}
}
})
sku = {
capacity = int
name = "string"
}
tags = {
{customized property} = "string"
}
}
属性值
ArmIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 用于资源的标识类型。 类型“SystemAssigned,UserAssigned”包括隐式创建的标识和一组用户分配的标识。 类型“None”将从服务中删除任何标识。 | “None” “SystemAssigned” “SystemAssigned,UserAssigned” “UserAssigned” |
userAssignedIdentities | <ArmUserIdentity> 字典 | ArmIdentityUserAssignedIdentities |
ArmIdentityUserAssignedIdentities
名字 | 描述 | 价值 |
---|
ArmUserIdentity
名字 | 描述 | 价值 |
---|
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 |
EnrichmentProperties
名字 | 描述 | 价值 |
---|---|---|
endpointNames | 将扩充应用到消息的终结点列表。 | string[] (必需) |
钥匙 | 扩充属性的键或名称。 | string (必需) |
价值 | 扩充属性的值。 | string (必需) |
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 | “DeviceConnectionStateEvents” “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 |
minTlsVersion | 指定要支持此中心的最低 TLS 版本。 可以设置为“1.2”,让使用低于 1.2 的 TLS 版本的客户端被拒绝。 | 字符串 |
networkRuleSets | IotHub 的网络规则集属性 | NetworkRuleSetProperties |
privateEndpointConnections | 在此 IotHub 上创建的专用终结点连接 | PrivateEndpointConnection[] |
publicNetworkAccess | 是否允许来自公用网络的请求 | “Disabled” “Enabled” |
路由 | 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 (必需) |
ManagedIdentity
名字 | 描述 | 价值 |
---|---|---|
userAssignedIdentity | 用户分配的标识。 | 字符串 |
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 约定将其作为标头提供。 | 字符串 |
身份 | IotHub 的托管标识。 | ArmIdentity |
位置 | 资源位置。 | string (必需) |
名字 | 资源名称 | string (必需) |
性能 | IotHub 属性 | IotHubProperties |
sku | IotHub SKU 信息 | IotHubSkuInfo (必需) |
标签 | 资源标记 | 标记名称和值的字典。 |
类型 | 资源类型 | “Microsoft.Devices/IotHubs@2021-03-31” |
NetworkRuleSetIpRule
名字 | 描述 | 价值 |
---|---|---|
行动 | IP 筛选器操作 | “允许” |
filterName | IP 筛选器规则的名称。 | string (必需) |
ipMask | 一个字符串,其中包含规则的 CIDR 表示法中的 IP 地址范围。 | string (必需) |
NetworkRuleSetProperties
名字 | 描述 | 价值 |
---|---|---|
applyToBuiltInEventHubEndpoint | 如果为 True,则网络规则集也应用于 IotHub 的 BuiltIn EventHub EndPoint | bool (必需) |
defaultAction | 网络规则集的默认操作 | “允许” “拒绝” |
ipRules | IP 规则列表 | NetworkRuleSetIpRule[] (必需) |
PrivateEndpoint
名字 | 描述 | 价值 |
---|
PrivateEndpointConnection
名字 | 描述 | 价值 |
---|---|---|
性能 | 专用终结点连接的属性 | PrivateEndpointConnectionProperties(必需) |
PrivateEndpointConnectionProperties
名字 | 描述 | 价值 |
---|---|---|
privateEndpoint | 专用终结点连接的专用终结点属性 | PrivateEndpoint |
privateLinkServiceConnectionState | 专用终结点连接的当前状态 | PrivateLinkServiceConnectionState (必需) |
PrivateLinkServiceConnectionState
名字 | 描述 | 价值 |
---|---|---|
actionsRequired | 专用终结点连接所需的操作 | 字符串 |
描述 | 专用终结点连接的当前状态说明 | string (必需) |
地位 | 专用终结点连接的状态 | “已批准” “Disconnected” “Pending” “已拒绝”(必需) |
ResourceTags
名字 | 描述 | 价值 |
---|
RouteProperties
名字 | 描述 | 价值 |
---|---|---|
条件 | 评估为应用路由规则的条件。 如果未提供任何条件,则默认情况下计算结果为 true。 有关语法,请参阅:/azure/iot-hub/iot-hub-devguide-query-language | 字符串 |
endpointNames | 路由满足条件的消息的终结点列表。 目前只允许一个终结点。 | string[] (必需) |
isEnabled | 用于指定是否启用路由。 | bool (必需) |
名字 | 路由的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符,并且必须是唯一的。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
源 | 要应用路由规则的源,例如 DeviceMessages。 | “DeviceConnectionStateEvents” “DeviceJobLifecycleEvents” “DeviceLifecycleEvents” “DeviceMessages” “Invalid” “TwinChangeEvents”(必需) |
RoutingEndpoints
名字 | 描述 | 价值 |
---|---|---|
eventHubs | IoT 中心根据路由规则将消息路由到的事件中心终结点列表。 此列表不包括内置事件中心终结点。 | RoutingEventHubProperties[] |
serviceBusQueues | IoT 中心根据路由规则将消息路由到的服务总线队列终结点列表。 | RoutingServiceBusQueueEndpointProperties[] |
serviceBusTopics | IoT 中心根据路由规则将消息路由到的服务总线主题终结点列表。 | RoutingServiceBusTopicEndpointProperties[] |
storageContainers | IoT 中心根据路由规则将消息路由到的存储容器终结点列表。 | RoutingStorageContainerProperties[] |
RoutingEventHubProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对事件中心终结点进行身份验证的方法 | “identityBased” “keyBased” |
connectionString | 事件中心终结点的连接字符串。 | 字符串 |
endpointUri | 事件中心终结点的 URL。 它必须包括协议 sb:// | 字符串 |
entityPath | 事件中心命名空间上的事件中心名称 | 字符串 |
id | 事件中心终结点的 ID | 字符串 |
身份 | 路由事件中心终结点的托管标识属性。 | ManagedIdentity |
名字 | 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
resourceGroup | 事件中心终结点的资源组的名称。 | 字符串 |
subscriptionId | 事件中心终结点的订阅标识符。 | 字符串 |
RoutingProperties
名字 | 描述 | 价值 |
---|---|---|
端点 | 与 IoT 中心基于路由规则路由消息的自定义终结点相关的属性。 在付费中心的所有终结点类型中最多允许 10 个自定义终结点,并且免费中心的所有终结点类型只允许 1 个自定义终结点。 | RoutingEndpoints |
扩充 | IoT 中心应用于要传递到内置终结点和自定义终结点的消息的用户提供的扩充列表。 请参阅:https://aka.ms/telemetryoneventgrid | 扩充属性[] |
fallbackRoute | 当“路由”部分中指定的任何条件均未满足时,用作回退路由的路由的属性。 这是一个可选参数。 如果未设置此属性,则不符合“路由”部分中指定的任何条件的消息将路由到内置事件中心终结点。 | FallbackRouteProperties |
路线 | IoT 中心用来将消息路由到内置终结点和自定义终结点的用户提供的路由规则列表。 付费中心最多允许 100 个路由规则,最多允许 5 个路由规则用于免费中心。 | RouteProperties[] |
RoutingServiceBusQueueEndpointProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对服务总线队列终结点进行身份验证的方法 | “identityBased” “keyBased” |
connectionString | 服务总线队列终结点的连接字符串。 | 字符串 |
endpointUri | 服务总线队列终结点的 URL。 它必须包括协议 sb:// | 字符串 |
entityPath | 服务总线命名空间上的队列名称 | 字符串 |
id | 服务总线队列终结点的 ID | 字符串 |
身份 | 路由服务总线队列终结点的托管标识属性。 | ManagedIdentity |
名字 | 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际队列名称相同。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
resourceGroup | 服务总线队列终结点的资源组的名称。 | 字符串 |
subscriptionId | 服务总线队列终结点的订阅标识符。 | 字符串 |
RoutingServiceBusTopicEndpointProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对服务总线主题终结点进行身份验证的方法 | “identityBased” “keyBased” |
connectionString | 服务总线主题终结点的连接字符串。 | 字符串 |
endpointUri | 服务总线主题终结点的 URL。 它必须包括协议 sb:// | 字符串 |
entityPath | 服务总线主题上的队列名称 | 字符串 |
id | 服务总线主题终结点的 ID | 字符串 |
身份 | 路由服务总线主题终结点的托管标识属性。 | ManagedIdentity |
名字 | 标识此终结点的名称。 该名称只能包含字母数字字符、句点、下划线、连字符,最大长度为 64 个字符。 保留以下名称:事件、fileNotifications、$default。 终结点名称在终结点类型中必须是唯一的。 该名称不需要与实际主题名称相同。 | 字符串 约束: 模式 = ^[A-Za-z0-9-._]{1,64}$ (必需) |
resourceGroup | 服务总线主题终结点的资源组的名称。 | 字符串 |
subscriptionId | 服务总线主题终结点的订阅标识符。 | 字符串 |
RoutingStorageContainerProperties
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 用于针对存储终结点进行身份验证的方法 | “identityBased” “keyBased” |
batchFrequencyInSeconds | Blob 写入存储的时间间隔。 值应介于 60 到 720 秒之间。 默认值为 300 秒。 | int 约束: 最小值 = 60 最大值 = 720 |
connectionString | 存储帐户的连接字符串。 | 字符串 |
containerName | 存储帐户中的存储容器的名称。 | string (必需) |
编码 | 用于将消息序列化为 Blob 的编码。 支持的值为“avro”、“avrodeflate”和“JSON”。 默认值为“avro”。 | “Avro” “AvroDeflate” “JSON” |
endpointUri | 存储终结点的 URL。 它必须包括协议 https:// | 字符串 |
fileNameFormat | Blob 的文件名格式。 默认格式为 {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}。 所有参数都是必需参数,但可以重新排序。 | 字符串 |
id | 存储容器终结点的 ID | 字符串 |
身份 | 路由存储终结点的托管标识属性。 | ManagedIdentity |
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
名字 | 描述 | 价值 |
---|---|---|
authenticationType | 指定用于连接到存储帐户的身份验证类型。 | “identityBased” “keyBased” |
connectionString | 将文件上传到的 Azure 存储帐户的连接字符串。 | string (必需) |
containerName | 上传文件的根容器的名称。 容器不需要存在,但应使用指定的 connectionString 进行创建。 | string (必需) |
身份 | 用于文件上传的存储终结点的托管标识属性。 | ManagedIdentity |
sasTtlAsIso8601 | IoT 中心为文件上传生成的 SAS URI 有效的时间段。 请参阅:/azure/iot-hub/iot-hub-devguide-file-upload#file-upload-notification-configuration-options。 | 字符串 |