AWS IoT Greengrass Version 12023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅AWS IoT Greengrass V1维护政策。在此日期之后,AWS IoT Greengrass V1不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上面运行的设备AWS IoT Greengrass V1不会中断,将继续运行并连接到云端。我们强烈建议您迁移到 AWS IoT Greengrass Version 2,这样可以添加重要的新功能并支持其他平台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
获取部署通知
亚马逊 EventBridge 事件规则将为您提供关于 Greengrass 组部署状态更改的通知。 EventBridge 提供近乎实时的系统事件流以描述AWS资源的费用。AWS IoT Greengrass将这些事件发送到 EventBridge 在至少一次基础。这意味着AWS IoT Greengrass可能会发送给定事件的多个副本以确保传送。此外,事件侦听器可能无法按事件的发生顺序接收事件。
注意
亚马逊 EventBridge 是一种事件总线服务,您可以用其轻松地将应用程序与来自各种来源的数据相连接,例如Greengrass 核心设备和部署通知。有关更多信息,请参阅 。什么是 Amazon? EventBridge?中的亚马逊 EventBridge 用户指南.
组部署状态改变时 AWS IoT Greengrass 会触发一个事件。您可以创建一个 EventBridge 规则,用于在发生所有状态转换或转换为您指定的状态时运行。当部署进入将启动规则的状态时, EventBridge 会调用规则中定义的目标操作。这样,您就可以发送通知、捕获事件信息、采取纠正措施或启动其他事件以响应状态更改。例如,您可以为以下使用案例创建规则:
-
启动部署后操作,例如下载资产和通知人员。
-
在部署成功或失败时发送通知。
-
发布关于部署事件的自定义指标。
部署进入以下状态时 AWS IoT Greengrass 会触发一个事件:Building
、InProgress
、Success
和 Failure
。
注意
目前不支持对批量部署操作状态的监控。但是,AWS IoT Greengrass 会为构成批量部署的各个组部署触发状态更改事件。
组部署状态更改事件
部署状态更改的事件采用以下格式:
{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass Deployment Status Change", "source":"aws.greengrass", "account":"123456789012", "time":"2018-03-22T00:38:11Z", "region":"us-west-2", "resources":[], "detail":{ "group-id": "284dcd4e-24bc-4c8c-a770-EXAMPLEf03b8", "deployment-id": "4f38f1a7-3dd0-42a1-af48-EXAMPLE09681", "deployment-type": "NewDeployment|Redeployment|ResetDeployment|ForceResetDeployment", "status": "Building|InProgress|Success|Failure" } }
您可以创建适用于一个或多个组的规则。您可以按以下一种或多种部署类型和部署状态筛选规则:
- 部署类型
-
-
NewDeployment
. 组版本的第一次部署。 -
ReDeployment
. 组版本的重新部署。 -
ResetDeployment
. 删除存储在AWS Cloud然后在AWS IoT Greengrass核心。有关更多信息,请参阅 重置部署。 -
ForceResetDeployment
. 删除存储在AWS Cloud并报告成功,而无需等待核心进行响应。如果核心已连接或当下次连接时,会同时删除存储在核心中的部署信息。
-
- 部署状态
-
-
Building
。AWS IoT Greengrass 正在验证组配置并构建部署构件。 -
InProgress
. 正在上进行部署AWS IoT Greengrass核心。 -
Success
. 部署成功。 -
Failure
. 部署失败。
-
可能是事件重复或者顺序颠倒。要确定事件的顺序,请使用 time
属性。
注意
AWS IoT Greengrass 不使用 resources
属性,因此该属性始终为空。
创建的先决条件 EventBridge 规则
在创建 EventBridge 规则AWS IoT Greengrass中,执行以下操作:
-
熟悉中的事件、规则和目标 EventBridge.
-
创建和配置由您调用的目标 EventBridge 规则。规则可以调用许多类型的目标,包括:
-
Amazon Simple Notification Service (Amazon SNS)
-
AWS Lambda 函数
-
Amazon Kinesis Video Streams
-
Amazon Simple Queue Service (Amazon SQS) 队列
-
有关更多信息,请参阅 。什么是 Amazon? EventBridge?和开始使用 Amazon? EventBridge中的亚马逊 EventBridge 用户指南.
配置部署通知(控制台)
按照以下步骤创建一个 EventBridge 一个规则,此规则会在一个组的部署状态更改时发布 Amazon SNS 主题。这样,Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。有关更多信息,请参阅 。创建 EventBridge 此规则对来自中的事件触发的规则AWS资源中的亚马逊 EventBridge 用户指南.
-
在导航窗格中,选择 Rules (规则)。
-
选择 Create rule (创建规则)。
-
为规则输入名称和描述。
规则不能与同一区域中的另一个规则和同一事件总线上的名称相同。
-
对于 Event bus(事件总线),请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择AWS默认事件总线. 当您账户中的某个 AWS 服务发出一个事件时,它始终会发送到您账户的默认事件总线。
-
对于 Rule type(规则类型),选择 Rule with an event pattern(具有事件模式的规则)。
-
选择 Next(下一步)。
-
适用于事件源,选择AWS服务.
-
适用于事件模式,选择AWS服务.
-
适用于AWS服务,选择 Greengrass。
-
对于 Event type (事件类型),选择 Greengrass Deployment Status Change (Greengrass 部署状态更改)。
注意
这些区域有:AWSAPI I I I I I CloudTrail事件类型基于AWS IoT Greengrass与 集成AWS CloudTrail. 可以使用此选项创建由读取或写入调用启发的规则,这些规则由对AWS IoT GreengrassAPI。有关更多信息,请参阅 使用 AWS IoT Greengrass 记录 AWS CloudTrail API 调用。
-
选择将启动通知的部署状态。
-
要接收所有状态更改事件的通知,请选择 Any state (任何状态)。
-
要仅接收某些状态更改事件的通知,请选择 Specific state(s) (特定状态),然后选择目标状态。
-
-
选择将启动通知的部署类型。
-
要接收所有部署类型的通知,请选择 Any state (任何状态)。
-
要仅接收某些部署类型的通知,请选择 Specific state(s) (特定状态),然后选择目标部署类型。
-
-
选择 Next(下一步)。
-
适用于目标类型,选择AWS服务.
-
适用于选择一个目标,配置您的目标。此示例使用 Amazon SNS 主题,而您可以配置其他目标类型来发送通知。
-
对于 Target (目标),选择 SNS topic (SNS 主题)。
-
对于 Topic (主题),请选择您的目标主题。
-
选择 Next(下一步)。
-
-
UNDER标签,定义规则的标签或将字段留空。
-
选择 Next(下一步)。
-
查看规则详细信息并选择 Create rule(创建规则)。
配置部署通知 (CLI)
按照以下步骤创建一个 EventBridge 一个规则,此规则会在一个组的部署状态更改时发布 Amazon SNS 主题。这样,Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。
-
创建 规则。
-
Replace
group-id
用你的 IDAWS IoT Greengrass组中)。
aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"group-id\": [\"
group-id
\"]}}"模式中省略的属性将被忽略。
-
-
将主题添加为规则目标。
-
Replace
Topic-arn
使用您的Amazon SNS 主题的 ARN。
aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="
topic-arn
"注意
允许亚马逊 EventBridge 要调用您的目标主题,您必须将基于资源的策略添加到您的主题中。有关更多信息,请参阅 。Amazon SNS 权限中的亚马逊 EventBridge 用户指南.
-
有关更多信息,请参阅 。中的事件和事件模式 EventBridge中的亚马逊 EventBridge 用户指南.
配置部署通知 (AWS CloudFormation)
使用AWS CloudFormation要创建的模板 EventBridge 这些规则将发送有关 Greengrass 组部署状态更改的通知。有关更多信息,请参阅 。亚马逊 EventBridge 资源类型参考中的AWS CloudFormation用户指南.
另请参阅
-
什么是 Amazon? EventBridge?中的亚马逊 EventBridge 用户指南