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

Azure Data Manager for Agriculture Preview 作为事件网格源

本文提供用于农业事件的 Azure 数据管理器的属性和架构。 有关事件架构的简介,请参阅 Azure 事件网格事件架构

先决条件

在开始在 Azure Data Manager for Agriculture 中部署事件功能的步骤之前,必须满足以下先决条件。

响应农业数据管理器事件

农业数据管理器事件允许应用程序对资源的创建、删除和更新做出反应。 使用 Azure 事件网格 推送农业数据管理器事件。

Azure Functions、Azure 逻辑应用,甚至自己的 http 侦听器都可以订阅这些事件。 Azure 事件网格通过丰富的重试策略和死信向应用程序提供可靠的事件传送。

下面是在服务中使用事件的示例方案:

  1. 下载附属数据或天气数据或执行作业时,可以使用事件来响应作业状态的更改。 可以最大程度地减少对服务的长时间轮询和减少对服务的 API 调用数。 还可以获取作业完成的提示通知。 我们所有的异步引入作业都能够支持事件。

注意

当前不支持与 ISV 解决方案流相关的事件。

  1. 如果对数据平面资源(如群、字段、场和其他类似元素)进行了修改,则可以对更改做出反应,并且可以触发工作流。

筛选事件

可以按数据对象中的事件类型、主题或字段筛选农业 事件 的数据管理器。 事件网格中的筛选器匹配主题的开头或结尾,以便匹配的事件可以转到订阅服务器。

例如,对于 PartyChanged 事件,若要接收 ID 为 Party1234 的特定方更改的通知,可以使用主题筛选器“EndsWith”,如下所示:

EndsWith- /Party1234 此事件的主题采用格式 "/parties/Party1234"

事件架构中的使用者也提供“开头”和“完全匹配”筛选器。

同样,若要为一组群群 ID 筛选相同的事件,请使用事件数据对象中 partyId 字段的高级筛选器。 在单个订阅中,可以添加五个高级筛选器,每个筛选键的值为 25 个。

若要详细了解如何应用筛选器,请参阅 事件网格的筛选器事件。

订阅事件

可以使用 Azure 门户 或 Azure 资源管理器 客户端订阅农业数据管理器事件。 其中每一项都为用户提供了一组功能。 请参阅以下资源,详细了解每个方法。

使用门户订阅事件

使用 ARM 模板客户端订阅事件

使用事件的做法

处理农业数据管理器事件的应用程序应遵循一些建议的做法:

  • 检查 eventType 是否已准备好处理,并且不要假定你收到的所有事件都是所需的类型。
  • 由于消息可以无序到达,请使用 modifiedTime 和 etag 字段来了解任何特定对象的事件顺序。
  • 农业数据管理器事件保证向订阅者至少传递一次,这可确保输出所有消息。 但是,由于重试或订阅的可用性,有时可能会出现重复的消息。 若要了解有关消息传递和重试的详细信息,请参阅 事件网格消息传递和重试
  • 忽略不了解的字段。 此做法有助于适应将来可能添加的新功能。

可用事件类型

事件名称 描述
Microsoft.AgFoodPlatform.PartyChanged 在用于农业的 Azure 数据管理器资源中创建/更新/删除参与方时发布
Microsoft.AgFoodPlatform.FarmChangedV2 在用于农业的 Azure 数据管理器资源中创建/更新/删除服务器场时发布
Microsoft.AgFoodPlatform.FieldChangedV2 在用于农业的 Azure 数据管理器资源中创建/更新/删除字段时发布
Microsoft.AgFoodPlatform.SeasonalFieldChangedV2 在用于农业的 Azure 数据管理器资源中创建/更新/删除季节性字段时发布
Microsoft.AgFoodPlatform.CropChanged 在用于农业的 Azure 数据管理器资源中创建/更新/删除作物时发布
Microsoft.AgFoodPlatform.CropProductChanged 在用于农业的 Azure 数据管理器资源中创建/更新/删除作物产品时发布
Microsoft.AgFoodPlatform.SeasonChanged 在用于农业的 Azure 数据管理器资源中创建/更新/删除季节时发布
Microsoft.AgFoodPlatform.SatelliteDataIngestionJobStatusChangedV2 卫星数据引入作业的状态发生更改(例如作业创建、进行中或完成)时发布。
Microsoft.AgFoodPlatform.WeatherDataIngestionJobStatusChangedV2 天气数据引入作业的状态发生更改(例如作业创建、进行中或完成)时发布。
Microsoft.AgFoodPlatform.WeatherDataRefresherJobStatusChangedV2 更改天气数据刷新器作业状态时发布。
Microsoft.AgFoodPlatform.SensorMappingChangedV2 更改传感器映射时发布
Microsoft.AgFoodPlatform.SensorPartnerIntegrationChangedV2 更改传感器合作伙伴集成时发布
Microsoft.AgFoodPlatform.DeviceDataModelChanged 更改设备数据模型时发布
Microsoft.AgFoodPlatform.DeviceChanged 更改设备时发布
Microsoft.AgFoodPlatform.SensorDataModelChanged 更改传感器数据模型时发布
Microsoft.AgFoodPlatform.SensorChanged 更改传感器时发布
Microsoft.AgFoodPlatform.FarmOperationDataIngestionJobStatusChangedV2 农场经营数据引入作业的状态发生更改(例如作业创建、进行中或完成)时发布。
Microsoft.AgFoodPlatform.ApplicationDataChangedV2 在用于农业的 Azure 数据管理器资源中创建/更新/删除应用程序数据时发布
Microsoft.AgFoodPlatform.HarvestDataChangedV2 在用于农业的 Azure 数据管理器资源中创建/更新/删除收获数据时发布
Microsoft.AgFoodPlatform.TillageDataChangedV2 在用于农业的 Azure Data Manager 资源中创建/更新/删除 Tillage 数据时发布
Microsoft.AgFoodPlatform.PlantingDataChangedV2 在用于农业的 Azure 数据管理器资源中创建/更新/删除种植数据时发布
Microsoft.AgFoodPlatform.AttachmentChangedV2 创建/更新/删除附件时发布。
Microsoft.AgFoodPlatform.ZoneChangedV2 创建/更新/删除区域时发布。
Microsoft.AgFoodPlatform.ManagementZoneChangedV2 创建/更新/删除管理区域时发布。
Microsoft.AgFoodPlatform.PrescriptionChangedV2 创建/更新/删除处方时发布。
Microsoft.AgFoodPlatform.PrescriptionMapChangedV2 创建/更新/删除处方地图时发布。
Microsoft.AgFoodPlatform.PlantTissueAnalysisChangedV2 在创建/更新/删除植物组织分析数据时发布。
Microsoft.AgFoodPlatform.NutrientAnalysisChangedV2 创建/更新/删除营养分析数据时发布。
Microsoft.AgFoodPlatform.ImageProcessingRasterizeJobStatusChangedV2 在图像处理光栅化作业状态发生更改时发布,例如创建作业、进度或已完成。
Microsoft.AgFoodPlatform.InsightChangedV2 创建/更新/删除见解时发布。
Microsoft.AgFoodPlatform.InsightAttachmentChangedV2 创建/更新/删除见解附件时发布。
Microsoft.AgFoodPlatform.BiomassModelJobStatusChangedV2 当生物量模型作业状态更改时发布
Microsoft.AgFoodPlatform.SoilMoistureModelJobStatusChangedV2 当土壤湿度模型作业状态更改时发布
Microsoft.AgFoodPlatform.SensorPlacementModelJobStatusChangedV2 在更改传感器放置模型作业状态时发布

事件属性

每个用于农业的 Azure Data Manager 事件都有两个部分,第一部分是跨事件通用的,第二个部分是特定于每个事件的属性。

跨事件共有的部分在事件网格事件架构详细说明,并具有以下顶级数据:

properties 类型 说明
主题 string 事件源的完整资源路径。 此字段不可写入。 事件网格提供此值。
subject string 事件主题的发布者定义路径。
eventType string 此事件源的一个注册事件类型。
EventTime string 基于提供程序 UTC 时间的事件生成时间。
ID string 事件的唯一标识符。
数据 object 具有特定于每个事件类型的属性的数据对象。
dataVersion string 数据对象的架构版本。 发布者定义架构版本。
metadataVersion string 事件元数据的架构版本。 事件网格定义顶级属性的架构。 事件网格提供此值。

对于群、季节、裁剪、作物产品更改事件,数据对象包含以下属性:

properties 类型 描述
ID string 资源的唯一 ID。
actionType string 指示在发布事件时触发的更改。 创建、更新、删除适用的值
properties Object 它包含用户定义的键 – 值对。
modifiedDateTime string 指示上次修改事件的时间。
createdDateTime string 指示创建资源的时间。
状态 string 包含用户定义的对象状态。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。
name 字符串 用于标识资源的名称。

对于场事件,数据对象包含以下属性:

properties 类型 描述
ID string 资源的唯一 ID。
actionType string 指示在发布事件时触发的更改。 创建、更新、删除适用的值
properties 对象 它包含用户定义的键 – 值对。
modifiedDateTime string 指示上次修改事件的时间。
createdDateTime string 指示创建资源的时间。
状态 string 包含用户定义的对象状态。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。
name 字符串 用于标识资源的名称。
partyId string 它所属的一方 ID。

对于设备数据模型和传感器数据模型事件,数据对象包含以下属性:

properties 类型 描述
sensorPartnerId string 与 sensorPartner 关联的 ID。
ID string 资源的唯一 ID。
actionType string 指示触发发布事件的更改。 创建、更新、删除适用的值
properties Object 它包含用户定义的键 – 值对。
modifiedDateTime string 指示上次修改事件的时间。
createdDateTime string 指示创建资源的时间。
状态 string 包含用户定义的对象状态。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。
name 字符串 用于标识资源的名称。

对于设备事件,数据对象包含以下属性:

properties 类型 描述
deviceDataModelId string 与 deviceDataModel 关联的 ID。
integrationId string 与集成关联的 ID。
sensorPartnerId string 与 sensorPartner 关联的 ID。
ID string 资源的唯一 ID。
actionType string 指示在发布事件时触发的更改。 创建、更新、删除适用的值
properties Object 它包含用户定义的键 – 值对。
modifiedDateTime string 指示上次修改事件的时间。
createdDateTime string 指示创建资源的时间。
状态 string 包含用户定义的对象状态。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。
name 字符串 用于标识资源的名称。

对于传感器事件,数据对象包含以下属性:

properties 类型 描述
sensorDataModelId string 与 sensorDataModel 关联的 ID。
integrationId string 与集成关联的 ID。
deviceId string 与设备关联的 ID。
sensorPartnerId string 与 sensorPartner 关联的 ID。
ID string 资源的唯一 ID。
actionType string 指示在发布事件时触发的更改。 创建、更新、删除适用的值
properties Object 它包含用户定义的键 – 值对。
modifiedDateTime string 指示上次修改事件的时间。
createdDateTime string 指示创建资源的时间。
状态 string 包含用户定义的对象状态。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。
name 字符串 用于标识资源的名称。

对于传感器映射事件,数据对象包含以下属性:

properties 类型 描述
sensorId string 与传感器关联的 ID。
partyId string 与参与方关联的 ID。
sensorPartnerId string 与 sensorPartner 关联的 ID。
ID string 资源的唯一 ID。
actionType string 指示在发布事件时触发的更改。 创建、更新、删除适用的值
properties 对象 它包含用户定义的键 – 值对。
modifiedDateTime string 指示上次修改事件的时间。
createdDateTime string 指示创建资源的时间。
状态 string 包含用户定义的对象状态。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。
name 字符串 用于标识资源的名称。

对于传感器合作伙伴集成事件,数据对象包含以下属性:

properties 类型 描述
integrationId string 与集成关联的 ID。
partyId string 与参与方关联的 ID。
sensorPartnerId string 与 sensorPartner 关联的 ID。
ID string 资源的唯一 ID。
actionType string 指示在发布事件时触发的更改。 创建、更新、删除适用的值
properties 对象 它包含用户定义的键 – 值对。
modifiedDateTime string 指示上次修改事件的时间。
createdDateTime string 指示创建资源的时间。
状态 string 包含用户定义的对象状态。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。
name 字符串 用于标识资源的名称。

季节性字段事件具有以下数据对象:

properties 类型 描述
ID string 季节性字段的用户定义 ID
farmId string 与季节性字段关联的服务器场的用户定义的 ID。
partyId string 它所属的一方 ID。
seasonId string 与季节性字段关联的季节的用户定义 ID。
fieldId string 与季节性字段关联的字段的用户定义的 ID。
name string 季节性字段的用户定义的名称。
actionType string 指示在发布事件时触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
properties 对象 它包含用户定义的键值对。
modifiedDateTime string 指示上次修改事件的时间。
createdDateTime string 指示创建资源的时间。
状态 string 包含用户定义的对象状态。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。

见解事件具有以下数据对象:

properties 类型 描述
modelId string 关联的模型的 ID。
ResourceId string 资源的用户定义的 ID,例如场、字段等。
resourceType string 资源类型的名称。 适用的值为 Party、Farm、Field、SeasonalField 等。
partyId string 它所属的一方 ID。
modelVersion string 关联的模型的版本。
ID string 资源的用户定义 ID。
状态 string 包含作业的状态。
actionType string 指示在发布事件时触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
modifiedDateTime 日期时间 上次修改资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
eTag string 实现乐观并发
description string 描述资源的键值对的列表。 仅支持字符串和数值。
name string 资源的用户定义名称。
properties object 资源的用户定义名称。

InsightAttachment 事件具有以下数据对象:

properties 类型 描述
modelId string 关联的模型的 ID。
ResourceId string 资源的用户定义的 ID,例如场、字段等。
resourceType string 资源类型的名称。
partyId string 它所属的一方 ID。
insightId string 与见解资源关联的 ID。
ID string 资源的用户定义 ID。
状态 string 包含作业的状态。
actionType string 指示在发布事件时触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
modifiedDateTime 日期时间 上次修改资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
eTag string 实现乐观并发
description string 描述资源的键值对的列表。 仅支持字符串和数值。
name string 资源的用户定义名称。
properties object 资源的用户定义名称。

字段事件具有以下数据对象:

properties 类型 描述
ID string 字段的用户定义 ID。
farmId string 与该字段关联的场的用户定义 ID。
partyId string 它所属的一方 ID。
name string 字段的用户定义的名称。
actionType string 指示在发布事件时触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
properties 对象 它包含用户定义的键值对。
modifiedDateTime string 指示上次修改事件的时间。
createdDateTime string 指示创建资源的时间。
状态 string 包含用户定义的对象状态。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。

ImageProcessingRasterizeJobStatusChanged 事件具有以下数据对象:

properties 类型 描述
shapefileAttachmentId string 关联的形状文件的用户定义的 ID 名称。
partyId string 为其创建作业的当事方 ID。
ID string 作业的唯一 ID。
name string 用户定义的作业名称。
状态 string 作业可以处于各种状态。 适用的值为“正在等待”、“正在运行”、“成功”、“失败”、“已取消”等。
isCancellationRequested boolean 请求取消作业时设置的标记。
description 字符串 作业的文本说明。
message string 用于捕获更多作业详细信息的状态消息。
lastActionDateTime 日期时间 对作业执行的上一个操作的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
properties Object 它包含用户定义的键值对

SatelliteDataIngestionJobChanged、WeatherDataIngestionJobChanged、WeatherDataRefresherJobChanged、BiomassModelJobStatusChanged、SoilMoistureModelJobStatusChanged 和 FarmOperationDataIngestionJobChanged 事件具有以下数据对象:

properties 类型 描述
ID string 作业的唯一 ID。
name string 用户定义的作业名称。
状态 string 作业可以处于各种状态。
isCancellationRequested boolean 请求取消作业时设置的标记。
description 字符串 作业的文本说明。
partyId string 为其创建作业的当事方 ID。
message string 用于捕获更多作业详细信息的状态消息。
lastActionDateTime 日期时间 对作业执行的上一个操作的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
properties 对象 它包含用户定义的键值对。

场操作数据事件(如应用程序数据、收获数据、种植数据和耕作数据)具有以下数据对象:

properties 类型 描述
ID string 资源的唯一 ID。
状态 string 包含资源的用户定义状态。
partyId string 它所属的一方 ID。
source string 来自 Azure Data Manager for Agriculture 的消息,提供有关作业的详细信息。
modifiedDateTime string 指示上次修改事件的时间
createdDateTime string 指示创建资源的时间
eTag string 实现乐观并发
name 字符串 用于标识资源的名称。
description 字符串 资源的文本说明
actionType string 指示在发布事件时触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
properties 对象 它包含用户定义的键值对。

AttachmentChanged 事件具有以下数据对象

properties 类型 描述
ResourceId string 资源的用户定义的 ID,例如场、字段等。
resourceType string 资源类型的名称。
partyId string 它所属的一方 ID。
ID string 资源的用户定义 ID。
状态 string 包含作业的状态。
actionType string 指示在发布事件时触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
modifiedDateTime 日期时间 上次修改资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
eTag string 实现乐观并发
description 字符串 资源的文本说明
name string 资源的用户定义名称。

ZoneChanged 事件具有以下数据对象

properties 类型 描述
managementZoneId string 与该区域关联的管理区域 ID。
partyId string 关联的字段的用户定义 ID。
ID string 它所属的聚会的 ID
状态 string 包含资源的用户定义状态。
actionType string 指示在发布事件时触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
modifiedDateTime 日期时间 上次修改资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
eTag string 实现乐观并发
description 字符串 资源的文本说明
name string 资源的用户定义名称。
properties object 描述资源的键值对的列表。 仅支持字符串值和数字值。

PrescriptionChanged 事件具有以下数据对象

properties 类型 描述
prescriptionMapId string 关联的处方映射的用户定义 ID。
partyId string 它所属的一方 ID。
ID string 处方的用户定义 ID。
actionType string 指示在发布事件期间触发的更改。 适用的值为“已创建”、“已更新”和“已删除”
状态 string 包含处方的用户定义状态。
properties object 它包含用户定义的键值对。
modifiedDateTime 日期时间 上次修改资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
eTag string 实现乐观并发
description 字符串 资源的文本说明
name string 处方的用户定义名称。

PrescriptionMapChanged 和 ManagementZoneChanged 事件具有以下数据对象:

properties 类型 描述
seasonId string 关联季节的用户定义 ID。
cropId string 关联的裁剪的用户定义 ID。
fieldId string 关联字段的用户定义 ID。
partyId string 它所属的一方 ID。
ID string 资源的用户定义的 ID。
actionType string 指示在发布事件时触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
modifiedDateTime 日期时间 上次修改资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
eTag string 实现乐观并发
description 字符串 资源的文本说明
name string 处方地图的用户定义的名称。
properties object 它包含用户定义的键值对
状态 string 资源的状态。

PlantTissueAnalysisChanged 事件具有以下数据对象:

properties 类型 描述
seasonId string 关联季节的用户定义 ID。
cropId string 关联的裁剪的用户定义 ID。
cropProductId string 与植物组织分析关联的作物产品 ID。
fieldId string 关联字段的用户定义 ID。
partyId string 它所属的一方 ID。
ID string 资源的用户定义的 ID。
actionType string 指示在发布事件时触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
modifiedDateTime 日期时间 上次修改资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建资源的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
eTag string 实现乐观并发。
description 字符串 资源的文本说明。
name string 处方地图的用户定义的名称。
properties object 它包含用户定义的键值对。
状态 string 资源的状态。

NutrientAnalysisChanged 事件具有以下数据对象:

properties 类型 描述
parentId string 父营养分析所属的 ID。
parentType string 父营养分析的类型属于。 适用的值为 PlantTissueAnalysis。
partyId string 它所属的一方 ID。
ID string 营养分析的用户定义 ID。
actionType string 指示在发布事件期间触发的更改。 适用的值为“已创建”、“已更新”和“已删除”。
properties object 它包含用户定义的键值对。
modifiedDateTime 日期时间 上次修改营养分析的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
createdDateTime 日期时间 创建营养分析的日期时间,示例格式:yyyy-MM-ddTHH:mm:ssZ。
状态 string 包含营养分析的用户定义状态。
eTag string 实现乐观并发。
description string 资源的文本说明。
name string 营养分析的用户定义名称。

样本事件

有关示例事件,请参阅此页面

后续步骤