

终止支持通知：2026 年 10 月 7 日， AWS 将停止对的支持。 AWS IoT Greengrass Version 1 2026 年 10 月 7 日之后，您将无法再访问这些 AWS IoT Greengrass V1 资源。如需了解更多信息，请访问[迁移自 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

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

# 获取部署通知
<a name="deployment-notifications"></a>

亚马逊 EventBridge 事件规则为您提供有关您的 Greengrass 群组部署状态变化的通知。 EventBridge 提供描述 AWS 资源变化的近乎实时的系统事件流。 AWS IoT Greengrass *至少将这些事件发送到 EventBridge 一次*。这意味着 AWS IoT Greengrass 可能会发送给定事件的多个副本以确保交付。此外，事件侦听器可能无法按事件的发生顺序接收事件。

**注意**  
Amazon EventBridge 是一项事件总线服务，可用于将应用程序与来自各种来源（例如 [Greengrass](telemetry.md) 核心设备和部署通知）的数据连接起来。有关更多信息，请参阅[什么是亚马逊 EventBridge？](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) 在《*亚马逊 EventBridge 用户指南》*中。

AWS IoT Greengrass 当组部署状态发生变化时会发出一个事件。您可以创建一条 EventBridge 规则，该规则适用于所有状态转换或向指定状态的过渡。当部署进入启动规则的状态时， EventBridge 调用规则中定义的目标操作。这样，您就可以发送通知、捕获事件信息、采取纠正措施或启动其他事件以响应状态更改。例如，您可以为以下使用案例创建规则：
+ 启动部署后操作，例如下载资产和通知人员。
+ 在部署成功或失败时发送通知。
+ 发布关于部署事件的自定义指标。

AWS IoT Greengrass 当部署进入以下状态时会发出一个事件：`Building`、`InProgress``Success`、和。`Failure`

**注意**  
目前不支持对[批量部署](bulk-deploy-cli.md)操作状态的监控。但是，对于 AWS IoT Greengrass 作为批量部署一部分的单个组部署，会发出状态更改事件。

## 组部署状态更改事件
<a name="events-message-format"></a>

部署状态更改的[事件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html)采用以下格式：

```
{
    "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 核心上的部署信息。有关更多信息，请参阅 [重置部署](reset-deployments-scenario.md)。
+ `ForceResetDeployment`. 删除存储在 AWS 云 中的部署信息并报告成功，而无需等待核心进行响应。如果核心已连接或当下次连接时，会同时删除存储在核心中的部署信息。

**部署状态**  
+ `Building`。 AWS IoT Greengrass 正在验证组配置并构建部署工件。
+ `InProgress`。 AWS IoT Greengrass 核心部署正在进行中。
+ `Success`. 部署成功。
+ `Failure`. 部署失败。

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

**注意**  
AWS IoT Greengrass 不使用该`resources`属性，因此它始终为空。

## 创建 EventBridge 规则的先决条件
<a name="create-events-rule-prereqs"></a>

在为创建 EventBridge 规则之前 AWS IoT Greengrass，请执行以下操作：
+ 熟悉中的事件、规则和目标。 EventBridge
+ 创建和配置您的 EventBridge 规则调用的目标。规则可以调用许多类型的目标，包括：
  + Amazon Simple Notification Service (Amazon SNS)
  + AWS Lambda 函数
  + Amazon Kinesis Video Streams
  + Amazon Simple Queue Service（Amazon SQS）队列

有关更多信息，请参阅[什么是亚马逊 EventBridge？](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) 以及《[亚马逊* EventBridge 用户指南》 EventBridge中的 “亚马逊*入门](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html)”。

## 配置部署通知（控制台）
<a name="create-events-rule-console"></a>

使用以下步骤创建 EventBridge 规则，以便在群组的部署状态发生变化时发布 Amazon SNS 主题。这样，Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。有关更多信息，请参阅 *Amazon EventBridge 用户指南*中的[创建针对来自 AWS 资源的事件触发的 EventBridge 规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html)。

1. 打开[亚马逊 EventBridge控制台](https://console.aws.amazon.com/events/)。

1. 在导航窗格中，选择**规则**。

1. 选择**创建规则**。

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

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

1. 对于**事件总线**，请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发，请选择 **AWS 默认事件总线**。当你账户中的某项 AWS 服务发出事件时，它总是会进入你账户的默认事件总线。

1. 对于**规则类型**，选择**具有事件模式的规则**。

1. 选择**下一步**。

1. 对于**事件源**，选择**AWS 服务**。

1. 在**事件模式**中，选择 **AWS 服务**。

1. 对于**AWS 服务**，选择 Greengrass。

1. 对于 **Event type (事件类型)**，选择 **Greengrass Deployment Status Change (Greengrass 部署状态更改)**。
**注意**  
**AWS API 通过 CloudTrail事件调用**类型基于与的 AWS IoT Greengrass 集成 AWS CloudTrail。您可以使用此选项创建通过对 AWS IoT Greengrass API 的读取或写入调用启动的规则。有关更多信息，请参阅 [使用记录 AWS IoT Greengrass API 调用 AWS CloudTrail](logging-using-cloudtrail.md)。

1. 选择将启动通知的部署状态。
   + 要接收所有状态更改事件的通知，请选择 **Any state (任何状态)**。
   + 要仅接收某些状态更改事件的通知，请选择 **Specific state(s) (特定状态)**，然后选择目标状态。

1. 选择将启动通知的部署类型。
   + 要接收所有部署类型的通知，请选择 **Any state (任何状态)**。
   + 要仅接收某些部署类型的通知，请选择 **Specific state(s) (特定状态)**，然后选择目标部署类型。

1. 选择**下一步**。

1. 对于**目标类型**，选择**AWS 服务**。

1. 在 **选择目标** 下，配置您的目标。此示例使用了 Amazon SNS 主题，而您可以配置其他目标类型来发送通知。

   1. 对于 **Target (目标)**，选择 **SNS topic (SNS 主题)**。

   1. 对于 **Topic (主题)**，请选择您的目标主题。

   1. 选择**下一步**。

1. 在 **标签** 下，定义规则的标签或将字段留空。

1. 选择**下一步**。

1. 查看规则详细信息并选择**创建规则**。

## 配置部署通知 (CLI)
<a name="create-events-rule-cli"></a>

使用以下步骤创建 EventBridge 规则，以便在群组的部署状态发生变化时发布 Amazon SNS 主题。这样，Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。

1. 创建 规则。
   + *group-id*替换为您的 AWS IoT Greengrass 群组的 ID。

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

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

1. 将主题添加为规则目标。
   + *topic-arn*替换为您的 Amazon SNS 主题的 ARN。

   ```
   aws events put-targets \
     --rule TestRule \
     --targets "Id"="1","Arn"="topic-arn"
   ```
**注意**  
要允许 Amazon EventBridge 调用您的目标主题，您必须在主题中添加基于资源的策略。有关更多信息，请参阅《[亚马逊* EventBridge 用户指南》中的 Ama* zon SNS 权限](https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sns-permissions)。

有关更多信息，请参阅 *Amazon EventBridge 用户指南 EventBridge*[中的事件和事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html)。

## 配置部署通知 (CloudFormation)
<a name="create-events-rule-cloudformation"></a>

使用 CloudFormation 模板创建 EventBridge 规则，发送有关 Greengrass 群组部署状态变更的通知。有关更多信息，请参阅*AWS CloudFormation 用户指南*中的 [Amazon EventBridge 资源类型参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Events.html)。

## 另请参阅
<a name="deployment-notifications-see-also"></a>
+ [将 AWS IoT Greengrass 群组部署到 AWS IoT Greengrass 核心](deployments.md)
+ [什么是亚马逊 EventBridge？](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) 在《*亚马逊 EventBridge 用户指南》*中