日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過EventBridge快速訂閱ECS事件

本文介紹如何通過EventBridge主動訂閱ECS事件,將其投遞至指定下游服務。

背景信息

事件總線(EventBridge)作為阿里云上的事件中樞,提供統一的事件中心,以標準化的CloudEvents 1.0協議連接云產品和應用、應用和應用,幫助云產品、SaaS產品以及您管理業務領域內產生的事件。EventBridge致力于保障上游云產品事件的質量,同時提供更好的事件訂閱體驗,提高數據訂閱投遞的可靠性,SLA數據可靠性99.99999999%,服務可用性99.95%。

相比調用ECS的API接口DescribeInstanceHistoryEvents以定時輪詢方式查詢ECS服務是否有新的事件產生,EventBridge通過主動訂閱的方式,有以下幾個優點:

  • 時效性更高:一旦訂閱監聽到指定的ECS事件產生,能夠在毫秒級觸發指定操作。

  • 成本更低:不需要定時輪詢檢查事件是否產生,避免不必要的開銷。

訂閱ECS.png

適用場景

  • 訂閱指定的ECS事件,觸發釘釘、短信、郵箱通知等。

  • 將指定的ECS事件,通過公網或者VPC網絡推送到下游HTTP/HTTPS服務。

  • 匯總多個云賬號下的ECS事件。

  • 指定的ECS事件發生時,通過函數計算觸發特定動作。

  • 當ECS事件時延較高、事件量較大時,將其投遞至輕量消息隊列(原 MNS)來訂閱事件。

前提條件

步驟一:選用云服務專用事件總線

云服務專用事件總線即default總線,是EventBridge默認創建的總線,阿里云上各個云產品會實時將產品內產生的事件,通過多種渠道實時投遞到default總線,您可以在default總線上查找和訂閱各個云產品的事件。

  1. 登錄事件總線EventBridge控制臺,在左側導航欄,單擊事件總線。
  2. 在頂部菜單欄,選擇地域。
  3. 事件總線頁面,單擊default。

步驟二:創建ECS事件訂閱規則

  1. 事件總線頁面,單擊左側導航欄的事件規則,然后單擊創建規則。

  2. 創建規則面板,完成以下操作。

    1. 配置基本信息頁簽,在名稱文本框輸入規則名稱,在描述文本框輸入規則的描述,然后單擊下一步。

    2. 配置事件模式頁簽,完成以下配置,然后單擊下一步。

      • 單擊阿里云官方事件源頁簽。

      • 事件源下拉列表選擇acs.ecs

      • 事件類型下拉列表選擇需要訂閱的事件類型。可同時選擇訂閱多個事件類型。

      • 事件模式調試中,可查看訂閱的事件類型的示例。例如,事件類型選擇ecs.Instance.StateChange 實例生命周期狀態變化時,對應的示例如下。

        {
          "id": "45ef4dewdwe1-7c35-447a-bd93-fab****",
          "source": "acs.ecs",
          "specversion": "1.0",
          "subject": "acs.ecs:cn-hangzhou:123456789098****:215672",
          "time": "2020-11-19T21:04:41Z",
          "type": "ecs:Instance:StateChange",
          "aliyunaccountid": "123456789098****",
          "aliyunpublishtime": "2020-11-19T21:04:42Z",
          "aliyuneventbusname": "default",
          "aliyunregionid": "cn-hangzhou",
          "aliyunpublishaddr": "172.25.XX.XX",
          "data": {
            "instanceName": "iZ0jl0kyquo46h****",
            "instanceType": "ecs.c6.large",
            "privateIpAddress": "172.21.XX.XX",
            "publicIpAddress": "8.37.XX.XX",
            "resourceId": "i-0jl0kyquo46****",
            "resourceType": "ALIYUN::ECS::Instance",
            "spotStrategy": "SpotWithPriceLimit",
            "state": "Running"
          }
        }
    3. 配置事件目標頁簽,選擇不同的服務類型,設置推送場景。

      場景一:推送至輕量消息隊列(原 MNS)

      使用輕量消息隊列(原 MNS)來訂閱事件適用于對事件時延要求較高、事件量較大的場景。輕量消息隊列(原 MNS)費用詳情請參見計費說明。

      • 服務類型:選擇輕量消息隊列(原 MNS)。

      • 隊列:選擇已創建的隊列。

      • 消息體(body):選擇完整事件。

      • 開啟 Base64 解碼:選擇。開啟Base64 編碼,會幫助您將數據編碼后投遞至目標輕量消息隊列(原 MNS)中的隊列。

      服務類型為輕量消息隊列(原 MNS)時,可通過NetworkInterfaceDemo.zip監聽輕量消息隊列(原 MNS)消息獲取事件。

      場景二:推送至釘釘

      • 服務類型:選擇釘釘。

      • 地址:輸入釘釘機器人的Webhook地址。

      • 密鑰:輸入釘釘機器人密鑰。

      • 推送內容:您可以通過EventBridge的模板能力,將上面事件中的參數推送給釘釘機器人,例如,推送ECS實例的名稱(instanceName)和運行狀態(state),配置如下:

        • 變量:通過JsonPath指定需要獲取的事件中的字段信息,并設置變量名稱。

          {
            "instanceName":"$.data.instanceName",
            "state":"$.data.state"
          }
        • 模板:按照釘釘機器人需要的格式定義模板,并在模板中引入上面定義的變量。

          {
            "msgtype": "text",
            "text": {
                "content": "${instanceName} state is ${state}" 
            } 
          }

          更多配置請參見釘釘機器人參考文檔。

      場景三:推送至下游HTTP服務

      • 服務類型:選擇HTTP或者HTTPS

      • URL:配置接收事件的URL地址。

      • Body:配置接收事件的內容格式。EventBridge支持將事件轉換后,按需要的格式推送給HTTP目標端,目前支持四種轉換格式:完整事件、部分事件、固定值、模板。更多信息,請參見事件內容轉換

      • 網絡類型

        • 公網:通過公網訪問目標URL地址。

        • 專有網絡:如果目標URL的地址未暴露公網,可以選擇專有網絡,需設置VPC ID、VSwitch ID和安全組ID。

      場景四:推送后觸發動作

      如果希望指定ECS事件發生時,觸發某個更加個性化的動作,可以將服務類型設置為函數計算。把事件推送到指定的函數,在函數計算里通過代碼編輯個性化的操作。

      • 服務類型:選擇函數計算

      • 服務函數計算里創建的服務名稱。

      • 函數函數計算里創建的函數名稱。

      • 事件:配置接收事件的內容格式。EventBridge支持將事件轉換后,按需要的格式推送給函數計算。目前支持四種轉換模板:完整事件、部分事件、固定模板模版。詳細信息,請參見事件內容轉換。

      • 執行方式

        • 同步:函數計算接收到事件,并且函數成功處理完事件后則響應成功。

        • 異步:函數計算成功接收到事件后,則認為響應成功。

        更多信息,請參見路由到函數計算。

      場景五:匯總多個云賬號下的ECS事件

      EventBridge支持將不同賬號、不同地域下的ECS事件匯總到同一個地域的同一個賬號下的事件總線,需要選擇服務類型為EventBridge事件總線

      • 目標類型

        • 同賬號總線:投遞給當前賬號的其他總線。

        • 跨賬號總線:投遞給其他賬號的總線。如需選擇跨賬號投遞,需要進行賬號授權,詳細信息,請參見路由到事件總線EventBridge。

      • 地域:支持中國內地跨地域投遞和國外地域之間相互投遞。

      • 事件總線:要投遞的目標總線名稱。

      • 事件:默認投遞完整事件且不可更改。

      配置事件目標頁簽下方,您可以根據業務需要配置重試和死信策略。詳情請參見重試和死信。

      更多場景,請參見目標服務類型。

步驟三:觸發事件

本文以ecs.Instance.StateChange 實例生命周期狀態變化事件類型為例,觸發事件需要修改ECS實例的運行狀態。

  1. 登錄ECS管理控制臺

  2. 在左側導航欄,選擇實例與鏡像 > 實例。

  3. 在頂部菜單欄,選擇目標資源所在的地域。

  4. 在目標ECS實例右側操作列,選擇image.png > 實例狀態,修改實例的運行狀態。

步驟四:查看投遞結果

  1. 查詢ECS是否產生事件。

    EventBridge支持根據時間范圍、事件類型、訂閱規則名稱、事件ID(與ECS事件ID一致)來查詢搜索產生的ECS事件。操作步驟,請參見查詢事件。

  2. 查詢ECS事件的訂閱投遞結果。

    通過上一步查詢到的事件ID,可以單擊事件ID右側操作列的事件軌跡查看事件推送軌跡,軌跡包含推送的目標、狀態、次數、時間。image.png

事件的監控報警

您可以在的EventBridge監控大盤中看到創建的ECS事件訂閱任務的調用次數,推送成功率、推送延遲等。根據具體業務場景訴求配置報警策略。

  1. 登錄云監控控制臺

  2. 在左側導航欄,單擊云產品監控。

  3. 云產品監控頁面,選擇其它 > 事件總線-EventBus

  4. 在頁面上方選擇地域,單擊default總線右側操作列的監控圖表。image.png

您可以在監控頁面為EventBridge的資源設置報警規則。當資源符合報警規則時,云監控自動發送報警通知。操作步驟,請參見設置報警規則。

重試和死信

事件寫入EventBus之后,EventBridge保障事件能被推送到下游至少一次。當下游事件接收端出現異常(如宕機、服務不可用、網絡抖動等),導致接收端無法正常接收事件時,EventBridge支持多種方式處理這些異常,包括:重試策略、容錯策略、死信隊列。您可以在步驟二:創建ECS事件訂閱規則中,配置重試和死信策略,保障事件會被正確投遞。

  • 重試策略

    當下游接收端無法正常接收事件時,EventBridge推送給下游會發生異常,這種情況,您可以配置EventBridge重試推送下游接收端的策略,最大程度保障推送成功。

    • 退避重試(重試3次,每次重試的時間間隔是10秒到20秒之間的隨機值。)

    • 指數衰減重試(重試176次,每次重試的間隔時間指數遞增至512秒,總計重試時間為1天。每次重試的具體間隔為:1,2,4,8,...512秒。)

  • 死信處理策略

    當達到預設的重試策略的重試次數上限之后,如果事件依舊未成功投遞,EventBridge默認會丟棄該事件。如果您希望保留該事件,可以配置將這些事件發送到死信隊列。目前EventBridge支持的死信隊列包括:云消息隊列 RocketMQ 版、輕量消息隊列(原 MNS)、云消息隊列 Kafka 版事件總線。

  • 容錯策略

    如果您有事件順序場景的訴求,當發生異常時,需要暫停任務,直到該事件成功推送,否則會出現事件亂序,此時需要選擇禁止容錯。如果是非順序場景,建議優先選擇允許容錯,以提供最大并發推送能力。

    • 允許容錯(允許異常容錯,當異常發生時不會阻塞執行,超過重試策略后會根據配置將消息投遞至死信隊列或直接丟棄。)

    • 禁止容錯(不允許容錯,當異常發生并超過重試策略配置時會阻塞執行)。