取得部署通知 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 於 2023 年 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 Amazon Amazon Amazon Amazon EventBridge?中的亞馬遜 EventBridge 使用者指南

當群組部署變更狀態時,AWS IoT Greengrass 會發出事件。您可以建立帳戶。 EventBridge 針對所有狀態轉換,或轉換成指定狀態的規則。當部署進入啟動規則的狀態時, EventBridge 叫用規則已定義的目標動作。這可讓您傳送通知、擷取事件資訊、採取修正動作,或啟動其他事件來回應狀態變更。例如,您可以為下列使用案例建立規則:

  • 啟動部署後操作,例如,下載資產和通知人員。

  • 部署成功或失敗後傳送通知。

  • 發佈關於部署事件的自訂指標。

當部署進入 BuildingInProgressSuccessFailure 等狀態時,AWS IoT Greengrass 會發出事件。

注意

目前尚不支援監控大量部署操作的狀態。不過,如果是屬於大量部署的個別群組部署,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核心。如需詳細資訊,請參閱 重設部署

  • ForceResetDeployment。 刪除存放在中的部署資訊AWS 雲端並直接回報成功,而無需等待核心回應。核心如已連線或將於下次連線,存放在核心內的部署資訊也會予以刪除。

部署狀態
  • 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 Amazon Amazon Amazon Amazon EventBridge?Amazon Amazon Amazon Amazon Amazon Amazon Amazon Amazon 入門 EventBridge中的亞馬遜 EventBridge 使用者指南

設定部署通知 (主控台)

使用下列步驟來建立帳戶。 EventBridge 將在群組部署狀態變更時發佈 Amazon SNS 主題的規則。藉由這個規則,Web 伺服器、電子郵件地址和其他主題訂閱者將能回應事件。如需詳細資訊,請參閱「」建立 EventBridge 從事件觸發的規則AWS資源中的亞馬遜 EventBridge 使用者指南

  1. 開啟亞馬遜 EventBridge安慰

  2. 在導覽窗格中,選擇 Rules (規則)。

  3. 選擇 Create rule (建立規則)

  4. 輸入規則的名稱和描述。

    在同一個區域和同一個事件匯流排上,規則不能與另一個規則同名。

  5. 針對 Event bus (事件匯流排),選擇要與此規則建立關聯的事件匯流排。如果您想要此規則匹配來自您的帳戶的事件,請選取AWS預設事件匯流排。當您帳戶中的 AWS 服務發出事件時,一律會前往您帳戶的預設事件匯流排。

  6. 針對 Rule type (規則類型) 選擇 Rule with an event pattern (具有事件模式的規則)。

  7. 選擇 Next (下一步)。

  8. 適用於事件來源,選擇AWS服務

  9. 適用於事件模式,選擇AWS服務

  10. 適用於AWS服務,請選擇 Greengrass。

  11. Event type (事件類型),選擇 Greengrass Deployment Status Change (Greengrass 部署狀態變更)

    注意

    所以此AWS透過 API 呼叫 CloudTrail事件類型是根據AWS IoT Greengrass與 的整合AWS CloudTrail。您可以使用此選項建立由讀取或寫入呼叫到AWS IoT GreengrassAPI。如需詳細資訊,請參閱 使用 AWS CloudTrail 記錄 AWS IoT Greengrass API 呼叫

  12. 選擇起始通知的部署狀態。

    • 若要接收所有狀態變更事件的通知,請選擇 Any state (任何狀態)

    • 若只要接收某些狀態變更事件的通知,請選擇 Specific state(s) (特定狀態),然後選擇目標狀態。

  13. 選擇起始通知的部署類型。

    • 若要接收所有部署類型的通知,請選擇 Any state (任何狀態)

    • 若只要接收某些部署類型的通知,請選擇 Specific state(s) (特定狀態),然後選擇目標部署類型。

  14. 選擇 Next (下一步)。

  15. 適用於Target (Target types,選擇AWS服務

  16. 適用於請選擇目標,設定您的目標。此範例使用 Amazon SNS 主題,但您可以設定用於傳送通知的其他目標類型。

    1. Target (目標),選擇 SNS topic (SNS 主題)

    2. Topic (主題),選擇您的目標主題。

    3. 選擇 Next (下一步)。

  17. UNTER標籤,定義規則的標籤,或將欄位留白。

  18. 選擇 Next (下一步)。

  19. 檢閱規則的詳細資訊,然後選擇 Create rule (建立規則)。

設定部署通知 (CLI)

使用下列步驟來建立帳戶。 EventBridge 將在群組部署狀態變更時發佈 Amazon SNS 主題的規則。藉由這個規則,Web 伺服器、電子郵件地址和其他主題訂閱者將能回應事件。

  1. 建立 規則。

    • Replacegroup-id與您的 IDAWS IoT GreengrassGroup。

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

    模式省略的屬性會遭到忽略。

  2. 新增主題作為規則目標。

    • Replace主題-arn使用您的 Amazon SNS 主題的 ARN。

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

    允許亞馬遜 EventBridge 若要呼叫您的目標主題,您必須將以資源為基礎的政策新增到您的主題。如需詳細資訊,請參閱「」Amazon SNS 權限中的亞馬遜 EventBridge 使用者指南

如需詳細資訊,請參閱「」Events 和事件模式 EventBridge中的亞馬遜 EventBridge 使用者指南

設定部署通知 (AWS CloudFormation)

使用AWS CloudFormation要建立的範本 EventBridge 傳送您 Greengrass 群組部署的狀態變更通知。如需詳細資訊,請參閱「」亞馬遜 EventBridge 資源類型參考中的AWS CloudFormation使用者指南

另請參閱