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

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

获取部署通知

使用 Amazon EventBridge 事件规则,您可以获取有关 Greengrass 组部署的状态更改的通知。EventBridge 提供了近乎实时的系统事件流以描述了 AWS 资源的变化。

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

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

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

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

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

注意

目前不支持对批量部署操作状态的监控。但是,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 云和 AWS IoT Greengrass Core 中的部署信息。有关更多信息,请参阅重置部署

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

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

  • InProgress。正在 AWS IoT Greengrass Core 上进行部署。

  • Success。部署成功。

  • Failure。部署失败。

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

注意

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

创建 EventBridge 规则的先决条件

在为 AWS IoT Greengrass 创建 EventBridge 规则之前,您应执行以下操作:

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

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

    • Amazon SNS 主题

    • AWS Lambda 函数

    • Kinesis 流

    • Amazon SQS 队列

有关更多信息,请参阅 Amazon EventBridge 用户指南 中的什么是 Amazon EventBridge?以及 Amazon EventBridge 入门

配置部署通知(控制台)

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

  1. 打开 Amazon EventBridge 控制台,并选择 Create rule (创建规则)

  2. Name and description (名称和描述) 下,输入规则的名称和描述。

  3. Define pattern (定义模式) 下,配置规则模式。

    1. 选择 Event pattern

    2. 选择 Pre-defined pattern by service (服务预定义的模式)

    3. 对于 Service provider (服务提供商),选择 AWS

    4. 对于 Service name (服务名称),选择 Greengrass

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

      注意

      AWS API Call via CloudTrail (通过 CloudTrail 进行的 AWS API 调用) 事件类型基于 AWS IoT Greengrass 与 AWS CloudTrail 的集成。可以使用此选项创建由对 AWS IoT Greengrass API 进行的读取或写入调用触发的规则。有关更多信息,请参阅使用 AWS CloudTrail 记录 AWS IoT Greengrass API 调用

    6. 选择将触发通知的部署状态。

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

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

    7. 选择将触发通知的部署类型。

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

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

  4. Select event bus (选择事件总线) 下,保留默认事件总线选项。

  5. Select targets (选择目标) 下,配置您的目标。此示例使用了 Amazon SNS 主题,而您可以配置其他目标类型来发送通知。

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

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

    3. 选择 Add target

  6. Tags - optional (标签 - 可选) 下,定义规则的标签或将字段留空。

  7. 选择 Create

配置部署通知 (CLI)

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

  1. 创建规则。

    • 用您的 AWS IoT Greengrass 组 的 ID 替换 group-id

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

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

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

    • 用您的 Amazon SNS 主题的 ARN 替换 topic-arn

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

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

有关更多信息,请参阅 Amazon EventBridge 用户指南 中的 EventBridge 中的事件和事件模式

配置部署通知 (AWS CloudFormation)

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

另请参阅