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

通過函數(shù)自定義ECS實(shí)例縮容策略

更新時(shí)間:

如果您對(duì)于縮容哪些實(shí)例有一定要求(例如需要優(yōu)先縮容CPU負(fù)載最小的實(shí)例),您可以通過函數(shù)計(jì)算來自定義設(shè)置實(shí)例移出策略。在彈性伸縮執(zhí)行縮容活動(dòng)時(shí),系統(tǒng)可以根據(jù)設(shè)置的實(shí)例移出策略,自動(dòng)選擇某些特定的實(shí)例進(jìn)行縮容。

背景信息

彈性伸縮支持多種實(shí)例移出策略,伸縮組觸發(fā)縮容活動(dòng)時(shí),系統(tǒng)可以根據(jù)實(shí)例創(chuàng)建的時(shí)間、實(shí)例對(duì)應(yīng)的伸縮配置版本等篩選條件設(shè)置優(yōu)先級(jí)來縮容實(shí)例。更多信息,請(qǐng)參見設(shè)置伸縮組的實(shí)例終止策略

如果您對(duì)于縮容的實(shí)例有更多要求,可以結(jié)合自身業(yè)務(wù)特性,利用函數(shù)計(jì)算來自定義設(shè)置實(shí)例移出策略。示例場(chǎng)景:

  • 場(chǎng)景一:優(yōu)先縮容CPU負(fù)載最小的實(shí)例,以減少對(duì)業(yè)務(wù)本身的影響。

  • 場(chǎng)景二:基于業(yè)務(wù)自身調(diào)度系統(tǒng),優(yōu)先縮容空閑實(shí)例,保證業(yè)務(wù)的同時(shí)降低使用成本。

前提條件

操作步驟

步驟一:創(chuàng)建函數(shù)

阿里云函數(shù)計(jì)算控制臺(tái)目前存在兩個(gè)版本(即函數(shù)計(jì)算FC 2.0和函數(shù)計(jì)算FC 3.0),本操作使用函數(shù)計(jì)算2.0版本。

  1. 登錄函數(shù)計(jì)算FC控制臺(tái)

    如果您已進(jìn)入函數(shù)計(jì)算FC 3.0的控制臺(tái),請(qǐng)單擊返回函數(shù)計(jì)算2.0進(jìn)入函數(shù)計(jì)算2.0版本的控制臺(tái)。

    函數(shù)計(jì)算2.0.jpg

  2. 在左側(cè)導(dǎo)航欄,單擊服務(wù)及函數(shù)

  3. 在頂部菜單欄,選擇地域。

  4. 創(chuàng)建服務(wù)。

    1. 服務(wù)列表頁面,單擊創(chuàng)建服務(wù)

    2. 在彈出面板中,完成服務(wù)配置,然后單擊確定

      本文采用以下配置作為示例,未提及的參數(shù)保持默認(rèn)即可。更多信息,請(qǐng)參見創(chuàng)建服務(wù)

      參數(shù)

      示例

      說明

      服務(wù)名稱

      test-service

      輸入阿里云函數(shù)計(jì)算服務(wù)的名稱。格式要求請(qǐng)參考界面提示。

      描述

      test

      輸入函數(shù)計(jì)算服務(wù)的描述。

      日志功能

      啟用

      是否啟用阿里云日志服務(wù)。啟用后,可以通過日志服務(wù)查詢函數(shù)的執(zhí)行日志,便于您進(jìn)行代碼調(diào)試、故障分析和數(shù)據(jù)分析等。

  5. 創(chuàng)建函數(shù)。

    1. 單擊服務(wù)名稱,單擊左側(cè)的函數(shù)管理進(jìn)入函數(shù)管理頁面。

    2. 單擊創(chuàng)建函數(shù)

    3. 創(chuàng)建函數(shù)頁面,完成函數(shù)配置,然后單擊創(chuàng)建

      本文選擇使用內(nèi)置運(yùn)行時(shí)創(chuàng)建方式來創(chuàng)建函數(shù),采用以下配置作為示例,未提及的參數(shù)保持默認(rèn)即可。更多信息,請(qǐng)參見創(chuàng)建函數(shù)

      參數(shù)

      示例

      說明

      基本設(shè)置

      函數(shù)名稱

      test-fc

      輸入函數(shù)名稱。格式要求請(qǐng)參考界面提示。

      請(qǐng)求處理程序類型

      處理事件請(qǐng)求

      支持以下兩種請(qǐng)求方式:

      • 處理事件請(qǐng)求:用于處理事件請(qǐng)求的函數(shù)。

      • 處理HTTP請(qǐng)求:用于處理HTTP請(qǐng)求或WebSocket請(qǐng)求的函數(shù)。

      函數(shù)代碼

      運(yùn)行環(huán)境

      Python 3.9

      選擇代碼的運(yùn)行環(huán)境。

      代碼上傳方式

      使用示例代碼

      Hello, world! 示例

      選擇上傳函數(shù)代碼到函數(shù)計(jì)算的方式。

  6. 編寫并部署函數(shù)代碼。

    1. 單擊函數(shù)名稱,進(jìn)入函數(shù)詳情頁面。

    2. 函數(shù)代碼頁簽下,在代碼編輯器中編輯index.py,然后單擊部署代碼

      您可以基于自身業(yè)務(wù)特性引入特定篩選策略,例如:獲取各實(shí)例的CPU使用率或者查詢自身業(yè)務(wù)調(diào)度系統(tǒng)等。

      本文采用以下代碼作為示例,可以實(shí)現(xiàn)基于傳入的縮容實(shí)例數(shù)量(Capacity)、實(shí)例ID列表(InstanceId)等篩選縮容的實(shí)例。

      # -*- coding: utf-8 -*-
      import logging
      import json
      
      
      def handler(event, context):
          evt = json.loads(event)
          logger = logging.getLogger()
          logger.info(evt)
          removeCount = 0
          if "CapacityToRemove" in evt:
              for cp in evt["CapacityToRemove"]:
                  logger.info(cp["Capacity"])
                  removeCount += int(cp["Capacity"])
          instances_to_terminate = []
          if "Instances" in evt:
              for i in evt["Instances"]:
                  instances_to_terminate.append(i["InstanceId"])
          response = {
              'InstanceIds': instances_to_terminate[:removeCount]
          }
          logger.info(response)
          return response
      
  7. (可選)測(cè)試函數(shù)。

    1. 函數(shù)代碼頁簽下,單擊測(cè)試函數(shù)右側(cè)的圖標(biāo)圖標(biāo),從下拉列表中選擇配置測(cè)試參數(shù)

    2. 輸入測(cè)試代碼,然后單擊確定

      本文采用以下代碼作為測(cè)試示例,其中ScalingGroupId表示要操作的伸縮組,CapacityToRemove表示從cn-beijing-g可用區(qū)移出1臺(tái)ECS實(shí)例,Instances表示當(dāng)前可移出的實(shí)例列表。

      {
      	"ScalingGroupARN": "acs:ess:cn-beijing:160998252992****.scalinggroup/asg-2zei8mzn72rb115k****",
      	"ScalingGroupId": "asg-2zei8mzn72rb115k****",
      	"CapacityToRemove": [{
      		"ZoneId": "cn-beijing-g",
      		"Capacity": 1
      	}],
      	"Instances": [{
      			"InstanceId": "i-2zeinb37ovdsx6l0****",
      			"ZoneId": "cn-beijing-g",
      			"InstanceType": "ecs.g7.xlarge",
      			"ChargeType": "PostPaid"
      		},
      		{
      			"InstanceId": "i-2zeinb37ovdsx6l0****",
      			"ZoneId": "cn-beijing-g",
      			"InstanceType": "ecs.g7.xlarge",
      			"ChargeType": "PostPaid"
      		},
      		{
      			"InstanceId": "i-2zeinb37ovdsx6l0****",
      			"ZoneId": "cn-beijing-g",
      			"InstanceType": "ecs.g7.xlarge",
      			"ChargeType": "PostPaid"
      		}
      	],
      	"AdjustmentType": "SystemScaleIn"
      }
    3. 單擊測(cè)試函數(shù)

    4. 返回結(jié)果頁簽,查看測(cè)試結(jié)果。

      基于測(cè)試代碼執(zhí)行函數(shù)的預(yù)期返回如下,表示伸縮組縮容時(shí)會(huì)移出1臺(tái)實(shí)例ID排在第一位的實(shí)例。

      {
          "InstanceIds": [
              "i-2zeinb37ovdsx6l0****"
          ]
      }
  8. 在頁面頂部位置,單擊發(fā)布版本,然后單擊確定

步驟二:配置伸縮組的實(shí)例移出策略

以下步驟以新建伸縮組為例,介紹如何自定義配置伸縮組的實(shí)例移出策略。如果您已有伸縮組,可直接修改伸縮組的實(shí)例移出策略。

  1. 登錄彈性伸縮控制臺(tái)

  2. 創(chuàng)建伸縮組。

    1. 伸縮組管理頁面,單擊創(chuàng)建伸縮組

    2. 完成伸縮組配置,單擊創(chuàng)建

      本文使用以下參數(shù)配置作為示例,未提及的參數(shù)可保持默認(rèn)。更多信息,請(qǐng)參見配置伸縮組

      實(shí)例移出策略.png

      參數(shù)

      示例

      說明

      伸縮組名稱

      test

      輸入伸縮組名稱。格式要求請(qǐng)參考界面提示。

      伸縮組類型

      ECS

      指定伸縮組內(nèi)的實(shí)例類型。

      本文以ECS為例,表示伸縮組內(nèi)的實(shí)例類型為ECS實(shí)例。

      組內(nèi)實(shí)例配置信息來源

      從零開始創(chuàng)建

      選擇創(chuàng)建實(shí)例的配置模板。

      本文以從零開始創(chuàng)建為例,表示先不指定自動(dòng)創(chuàng)建實(shí)例的模板。伸縮組創(chuàng)建完成后,您需要繼續(xù)創(chuàng)建伸縮配置。

      實(shí)例移出策略

      自定義策略

      • 服務(wù):test-service

      • 版本:LATEST

      • 函數(shù):test-fc

      配置縮容活動(dòng)時(shí),從伸縮組中移出實(shí)例的策略。

      請(qǐng)選擇自定義策略,然后選擇步驟一創(chuàng)建的函數(shù)。

      組內(nèi)最小實(shí)例數(shù)

      0

      設(shè)置伸縮組內(nèi)實(shí)例數(shù)量的下限。當(dāng)前實(shí)例數(shù)量低于下限時(shí),伸縮組會(huì)自動(dòng)添加實(shí)例,使得伸縮組內(nèi)的實(shí)例數(shù)量等于下限。

      組內(nèi)最大實(shí)例數(shù)

      5

      設(shè)置伸縮組內(nèi)實(shí)例數(shù)量的上限。當(dāng)前實(shí)例數(shù)量超過上限時(shí),伸縮組會(huì)自動(dòng)移出實(shí)例,使得伸縮組內(nèi)的實(shí)例數(shù)量等于上限。

      開啟期望實(shí)例數(shù)組內(nèi)期望實(shí)例數(shù)

      開啟,3

      開啟期望實(shí)例數(shù)功能,并配置期望實(shí)例數(shù)。伸縮組會(huì)自動(dòng)將實(shí)例數(shù)量維持在期望實(shí)例數(shù)。

  3. 創(chuàng)建伸縮配置。具體操作,請(qǐng)參見創(chuàng)建伸縮配置(ECS實(shí)例)

  4. 啟用伸縮組。具體操作,請(qǐng)參見啟用或停用伸縮組

    由于示例的伸縮組的期望實(shí)例數(shù)配置為3,因此啟用伸縮組后,會(huì)自動(dòng)創(chuàng)建3臺(tái)ECS實(shí)例。

步驟三:驗(yàn)證縮容效果

  1. 觸發(fā)縮容活動(dòng),并確認(rèn)縮容實(shí)例的信息。

    1. 修改伸縮組的期望實(shí)例數(shù),觸發(fā)縮容活動(dòng)。具體操作,請(qǐng)參見查看或修改伸縮組

      重要

      您也可以通過定時(shí)任務(wù)、報(bào)警任務(wù)或者手動(dòng)執(zhí)行伸縮規(guī)則等方式觸發(fā)縮容活動(dòng)。但通過修改伸縮組最大、最小實(shí)例數(shù)而觸發(fā)的縮容活動(dòng),無法應(yīng)用通過函數(shù)計(jì)算自定義設(shè)置的實(shí)例移出策略。

      本文以將期望實(shí)例數(shù)修改為2作為驗(yàn)證示例。由于之前伸縮組內(nèi)已有3臺(tái)ECS實(shí)例,因此會(huì)自動(dòng)觸發(fā)縮容活動(dòng),移出1臺(tái)ECS實(shí)例,使得實(shí)例數(shù)與修改后的期望實(shí)例數(shù)一致。

    2. 查看伸縮活動(dòng)詳情,確認(rèn)縮容實(shí)例的信息。具體操作,請(qǐng)參見查看伸縮活動(dòng)詳情

      示例如下,縮容的實(shí)例ID為i-2ze2qdthrkpf****tldq

      自定義縮容.png

  2. 查看函數(shù)的調(diào)用日志,確認(rèn)縮容活動(dòng)觸發(fā)函數(shù)調(diào)用的記錄信息。

    1. 函數(shù)計(jì)算FC控制臺(tái)服務(wù)列表頁面,單擊服務(wù)名稱。

    2. 函數(shù)管理頁面,單擊函數(shù)名稱。

    3. 在函數(shù)詳情頁面,單擊調(diào)用日志頁簽。

    4. 請(qǐng)求列表頁簽的調(diào)用請(qǐng)求列表中,找到縮容活動(dòng)時(shí)間點(diǎn)對(duì)應(yīng)的請(qǐng)求,單擊請(qǐng)求ID。

    5. 在彈出的請(qǐng)求詳情頁面,單擊日志詳情,查看縮容活動(dòng)觸發(fā)函數(shù)調(diào)用的日志記錄。

      示例如下,從日志中可以看出觸發(fā)縮容活動(dòng)時(shí),彈性伸縮向函數(shù)計(jì)算傳入了需要縮容的實(shí)例數(shù)和當(dāng)前伸縮組內(nèi)的實(shí)例ID列表,經(jīng)過函數(shù)篩選后要縮容的實(shí)例ID為i-2ze2qdthrkpf****tldq,這與實(shí)際縮容的實(shí)例ID一致。

      函數(shù)計(jì)算日志.png