使用無伺服器工作流程和 Amazon 監控標籤變更 EventBridge - 標記 AWS 資源和標籤編輯器

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用無伺服器工作流程和 Amazon 監控標籤變更 EventBridge

Amazon EventBridge 支持對 AWS 資源進行標籤更改。使用此 EventBridge 類型,您可以建立 EventBridge規則以符合標籤變更,並將事件路由到一或多個目標。例如,目標可能是叫用自動化工作流程的 AWS Lambda 函數。本主題提供使用 Lambda 建置符合成本效益的無伺服器解決方案的教學課程,以安全地處理 AWS 資源上的標籤變更。

標籤變更產生 EventBridge 事件

EventBridge 提供描述 AWS 資源變更的近乎即時的系統事件串流。許多 AWS 資源都支援標籤,這些標籤是自訂的使用者定義屬性,可輕鬆組織和分類 AWS 資源。標籤的常見使用案例包括成本分配分類、存取控制安全性和自動化。

使用 EventBridge,您可以監視標籤的變更,並追蹤資 AWS 源上的標籤狀態。以前,為了實現類似的功能,您可能會持續輪詢APIs和協調多個呼叫。現在,對標籤進行任何變更,包括個別服務APIs、標籤編輯器和標都API會在資源事件上啟動標籤變更。下列範例顯示標籤變更提示的典型 EventBridge 事件。它會顯示新的、更新或已刪除的標籤鍵,以及它們的關聯值。

{ "version": "0", "id": "bddcf1d6-0251-35a1-aab0-adc1fb47c11c", "detail-type": "Tag Change on Resource", "source": "aws.tag", "account": "123456789012", "time": "2018-09-18T20:41:38Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-0000000aaaaaaaaaa" ], "detail": { "changed-tag-keys": [ "a-new-key", "an-updated-key", "a-deleted-key" ], "tags": { "a-new-key": "tag-value-on-new-key-just-added", "an-updated-key": "tag-value-was-just-changed", "an-unchanged-key": "tag-value-still-the-same" }, "service": "ec2", "resource-type": "instance", "version": 3, } }

所有 EventBridge 事件都有相同的頂層欄位:

  • version — 依預設,此值在所有事件中都設定為 0 (零)。

  • id — 針對每個事件產生唯一值。這對於追蹤事件在規則之間移動到目標並進行處理時很有幫助。

  • 詳細資訊類型 — 與source欄位結合識別出現在詳細資訊欄位中的欄位和值。

  • 來源 — 識別做為事件來源的服務。標籤變更的來源為aws.tag

  • time — 事件的時間戳記。

  • 區域 — 識別事件 AWS 區域 的起始位置。

  • 資源 — 此JSON陣列包含 Amazon 資源名稱 (ARNs),可識別事件中涉及的資源。這是標籤已更改的資源。

  • detail — 一個JSON對象,其內容是根據事件類型不同。對於資源的標籤變更,包括下列詳細欄位:

    • changed-tag-keys— 此事件所變更的標籤鍵。

    • 服務 — 資源所屬的服務。在這個例子中,服務是ec2,這是 Amazon EC2。

    • 源類型 — 服務的資源類型。在這個例子中,它是一個 Amazon EC2 實例。

    • 版本 — 標籤組的版本。版本從 1 開始,並在標籤更改時遞增。您可以使用該版本來驗證標籤變更事件的順序。

    • 標籤 — 變更後附加至資源的標籤。

如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的 Amazon EventBridge 事件模式

透過使用 EventBridge,您可以根據不同欄位建立符合特定事件模式的規則。我們在教程中演示如何執行此操作。此外,我們還會展示如果指定的標籤未附加到EC2執行個體,Amazon 執行個體如何自動停止。我們使用 EventBridge 欄位來建立模式,以符合啟動 Lambda 函數之執行個體的標籤事件。

Lambda 和無伺服器

AWS Lambda 遵循無伺服器範例在雲端中執行程式碼。您只在需要時才執行程式碼,而不必考慮伺服器。您只需為使用的確切運算時間付費。即使它被稱為無服務器,但並不意味著沒有服務器。在此情況下,無伺服器表示您不需要佈建、設定或管理用來執行程式碼的伺服器。 AWS 為你做所有這些,所以你可以專注於你的代碼。如需 Lambda 的詳細資訊,請參閱AWS Lambda 產品概觀