获取部署通知 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon IoT Greengrass Version 1在 2023 年 6 月 30 日之前,不再接收功能更新,只会收到安全补丁和错误修复。有关更多信息,请参阅 。Amazon IoT Greengrass V1维护政策. 强烈建议您迁移到Amazon IoT Greengrass Version 2,它补充说重要新功能对其他平台的支持.

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

获取部署通知

亚马逊 EventBridge 事件规则将为您提供关于 Greengrass 组部署状态更改的通知。 EventBridge 提供近乎实时的系统事件流以描述Amazon资源的费用。Amazon IoT Greengrass将这些事件发送到 EventBridge 在至少一次基础。这意味着Amazon IoT Greengrass可能会发送给定事件的多个副本以确保传送。此外,事件侦听器可能无法按事件的发生顺序接收事件。

注意

亚马逊 EventBridge 是一种事件总线服务,您可以用其轻松地将应用程序与来自各种来源的数据相连接,例如Greengrass 核心设备和部署通知。有关更多信息,请参阅 。什么是 Amazon? EventBridge?中的亚马逊 EventBridge 用户指南.

组部署状态改变时 Amazon IoT Greengrass 会触发一个事件。您可以创建一个 EventBridge 规则,用于在发生所有状态转换或转换为您指定的状态时运行。当部署进入将启动规则的状态时, EventBridge 会调用规则中定义的目标操作。这样,您就可以发送通知、捕获事件信息、采取纠正措施或启动其他事件以响应状态更改。例如,您可以为以下使用案例创建规则:

  • 启动部署后操作,例如下载资产和通知人员。

  • 在部署成功或失败时发送通知。

  • 发布关于部署事件的自定义指标。

部署进入以下状态时 Amazon IoT Greengrass 会触发一个事件:BuildingInProgressSuccessFailure

注意

目前不支持对批量部署操作状态的监控。但是,Amazon 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. 删除存储在Amazon Web Services 云然后在Amazon IoT Greengrass核心。有关更多信息,请参阅 重置部署

  • ForceResetDeployment. 删除存储在Amazon Web Services 云并报告成功,而无需等待核心进行响应。如果核心已连接或当下次连接时,会同时删除存储在核心中的部署信息。

部署状态
  • Building。Amazon IoT Greengrass 正在验证组配置并构建部署构件。

  • InProgress. 正在上进行部署Amazon IoT Greengrass核心。

  • Success. 部署成功。

  • Failure. 部署失败。

可能是事件重复或者顺序颠倒。要确定事件的顺序,请使用 time 属性。

注意

Amazon IoT Greengrass 不使用 resources 属性,因此该属性始终为空。

创建的先决条件 EventBridge 规则

在创建 EventBridge 规则Amazon IoT Greengrass中,执行以下操作:

  • 熟悉中的事件、规则和目标 EventBridge.

  • 创建和配置由您调用的目标 EventBridge 规则。规则可以调用许多类型的目标,包括:

    • Amazon Simple Notification Service (Amazon SNS)

    • Amazon Lambda 函数

    • Amazon Kinesis Video Streams

    • Amazon Simple Queue Service (Amazon SQS) 队列

有关更多信息,请参阅 。什么是 Amazon? EventBridge?开始使用 Amazon? EventBridge中的亚马逊 EventBridge 用户指南.

配置部署通知(控制台)

按照以下步骤创建一个 EventBridge 一个规则,此规则会在一个组的部署状态更改时发布 Amazon SNS 主题。这样,Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。有关更多信息,请参阅 。创建 EventBridge 此规则对来自中的事件触发的规则Amazon资源中的亚马逊 EventBridge 用户指南.

  1. 打开亚马逊 EventBridge控制台.

  2. 在导航窗格中,选择 Rules (规则)

  3. 选择 Create rule (创建规则)

  4. 为规则输入名称和描述。

    规则不能与同一区域中的另一个规则和同一事件总线上的名称相同。

  5. 对于 Event bus(事件总线),请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发,请选择Amazon默认事件总线. 当您账户中的某个 Amazon 服务发出一个事件时,它始终会发送到您账户的默认事件总线。

  6. 对于 Rule type(规则类型),选择 Rule with an event pattern(具有事件模式的规则)。

  7. 选择 Next(下一步)。

  8. 适用于事件源,选择Amazon服务.

  9. 适用于事件模式,选择Amazon服务.

  10. 适用于Amazon服务,选择 Greengrass。

  11. 对于 Event type (事件类型),选择 Greengrass Deployment Status Change (Greengrass 部署状态更改)

    注意

    这些区域有:AmazonAPI I I I I I CloudTrail事件类型基于Amazon IoT Greengrass与 集成Amazon CloudTrail. 可以使用此选项创建由读取或写入调用启发的规则,这些规则由对Amazon IoT GreengrassAPI。有关更多信息,请参阅 使用 Amazon IoT Greengrass 记录 Amazon CloudTrail API 调用

  12. 选择将启动通知的部署状态。

    • 要接收所有状态更改事件的通知,请选择 Any state (任何状态)

    • 要仅接收某些状态更改事件的通知,请选择 Specific state(s) (特定状态),然后选择目标状态。

  13. 选择将启动通知的部署类型。

    • 要接收所有部署类型的通知,请选择 Any state (任何状态)

    • 要仅接收某些部署类型的通知,请选择 Specific state(s) (特定状态),然后选择目标部署类型。

  14. 选择 Next(下一步)。

  15. 适用于目标类型,选择Amazon服务.

  16. 适用于选择一个目标,配置您的目标。此示例使用 Amazon SNS 主题,而您可以配置其他目标类型来发送通知。

    1. 对于 Target (目标),选择 SNS topic (SNS 主题)

    2. 对于 Topic (主题),请选择您的目标主题。

    3. 选择 Next(下一步)。

  17. UNDER标签,定义规则的标签或将字段留空。

  18. 选择 Next(下一步)。

  19. 查看规则详细信息并选择 Create rule(创建规则)。

配置部署通知 (CLI)

按照以下步骤创建一个 EventBridge 一个规则,此规则会在一个组的部署状态更改时发布 Amazon SNS 主题。这样,Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。

  1. 创建 规则。

    • Replacegroup-id用你的 IDAmazon IoT Greengrass组中)。

    aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"group-id\": [\"group-id\"]}}"

    模式中省略的属性将被忽略。

  2. 将主题添加为规则目标。

    • ReplaceTopic-arn使用您的Amazon SNS 主题的 ARN。

    aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="topic-arn"
    注意

    允许亚马逊 EventBridge 要调用您的目标主题,您必须将基于资源的策略添加到您的主题中。有关更多信息,请参阅 。Amazon SNS 权限中的亚马逊 EventBridge 用户指南.

有关更多信息,请参阅 。中的事件和事件模式 EventBridge中的亚马逊 EventBridge 用户指南.

配置部署通知 (Amazon CloudFormation)

使用Amazon CloudFormation要创建的模板 EventBridge 这些规则将发送有关 Greengrass 组部署状态更改的通知。有关更多信息,请参阅 。亚马逊 EventBridge 资源类型参考中的Amazon CloudFormation用户指南.

另请参阅