全部產品
Search
文件中心

Auto Scaling:使用阿里雲CLI調用Auto ScalingOpenAPI

更新時間:Nov 06, 2024

本文以調用Auto Scaling (ESS)DescribeScalingActivities介面查看指定伸縮活動詳情為例,為您介紹使用阿里雲CLI調用Auto ScalingOpenAPI的操作步驟。

前置概念

阿里雲CLI(Alibaba Cloud Command Line Interface)是基於OpenAPI構建的通用命令列工具,您可以通過阿里雲CLI實現自動化管理和維護Auto Scaling。更多資訊,請參見什麼是阿里雲CLI

步驟一:安裝阿里雲CLI

使用阿里雲CLI前,您需要先安裝阿里雲CLI。阿里雲CLI為使用者提供了Windows、Linux和macOS三種作業系統下的安裝服務,請根據您使用裝置的作業系統選擇對應的安裝服務。

Cloud Shell預裝了阿里雲CLI,且自動為您配置身份憑證,無需手動操作。您可在Cloud Shell中調試阿里雲CLI命令。更多資訊,請參見什麼是雲命令列

步驟二:配置阿里雲CLI

重要

阿里雲帳號(主帳號)擁有所有產品OpenAPI的管理和存取權限,風險很高。強烈建議您建立RAM使用者(子帳號),並依據最小化許可權原則授予許可權,使用RAM使用者身份訪問OpenAPI。Auto Scaling支援的權限原則,請參見Auto Scaling系統權限原則參考Auto Scaling自訂權限原則參考

使用阿里雲CLI之前,您需要在阿里雲CLI中配置身份憑證、地區ID等資訊。阿里雲CLI支援多種身份憑證,詳情請參見身份憑證類型。阿里雲CLI支援使用RAM使用者的AccessKey資訊配置AK類型身份憑證,具體操作步驟如下:

  1. 建立一個RAM使用者,並建立AccessKey,以便後續配置身份憑證使用。具體操作,請參見建立RAM使用者建立AccessKey

  2. 為RAM使用者授權。本文樣本需授予RAM使用者唯讀訪問Auto Scaling的許可權AliyunESSReadOnlyAccess。具體操作,請參見為RAM使用者授權

  3. 擷取可用的地區ID,以便後續配置身份憑證使用。阿里雲CLI將使用您指定的地區發起OpenAPI調用。Auto Scaling的可用地區請參見服務存取點

    說明

    使用阿里雲CLI過程中您可使用--region選項指定地區發起命令調用,該選項在使用時將忽略預設身份憑證配置及環境變數設定中的地區資訊。詳情請參見API命令可用選項

  4. 使用RAM使用者的AccessKey配置AK類型憑證,設定檔命名為AkProfile。具體操作,請參見配置樣本

步驟三:產生CLI命令樣本

  1. 在OpenAPI門戶中,訪問DescribeScalingActivities調試地址

    image

  2. 參數配置中輸入請求參數,單擊CLI樣本頁簽,查看產生的CLI樣本。

  3. 複製CLI樣本或在Cloud Shell中快速執行:

    • 單擊運行命令image按鈕,可喚出Cloud Shell並快速完成命令調試。

    • 單擊複製按鈕image,將CLI樣本複製到剪貼簿中,可粘貼至本地Shell工具中運行或用於編輯自動化命令列指令碼。

    說明

    複製CLI樣本到本地Shell工具中進行調試時請注意參數格式。關於阿里雲CLI命令參數使用格式的詳細資料,請參見參數格式說明

    OpenAPI門戶產生樣本中會預設添加--region選項,複製命令到本地調用時阿里雲CLI將忽略預設身份憑證配置及環境變數設定中的地區資訊,優先使用指定的地區調用命令,您可根據需要對該選項進行刪除或保留。

步驟四:調用Auto ScalingOpenAPI

說明
  • 阿里雲CLI整合Auto ScalingOpenAPI版本較早,建議您使用--force選項及--version選項優先調用Auto Scaling2022-02-22版本OpenAPI。具體操作,請參見強制調用介面

  • OpenAPI門戶在為Auto Scaling2022-02-22版本OpenAPI產生命令樣本時會自動添加--force選項及--version選項,無需手動更改。

  • 更多可用API資訊,請參見API概覽

以下樣本將為您展示如何使用阿里雲CLI調用Auto ScalingDescribeScalingActivities介面,查看指定伸縮活動的詳情。更多介面資訊,請參見DescribeScalingActivities - 查詢伸縮活動

  1. 執行命令。

    aliyun ess DescribeScalingActivities --RegionId 'cn-hangzhou' --ScalingGroupId 'asg-bp18p2yfxow2dloq****' --version 2022-02-22 --method POST --force
  2. 輸出結果。

    {
      "RequestId": "CC107349-57B7-4405-B1BF-9BF5AF7F****",
      "PageNumber": 1,
      "PageSize": 10,
      "TotalCount": 1,
      "ScalingActivities": [
        {
          "Progress": 100,
          "ScalingInstanceNumber": 1,
          "AttachedCapacity": "0",
          "TotalCapacity": "2",
          "ScalingGroupId": "asg-bp18p2yfxow2dloq****",
          "AutoCreatedCapacity": "2",
          "EndTime": "2020-09-10T09:54Z",
          "StartTime": "2020-09-10T09:54Z",
          "Description": "Add \\\"1\\\" ECS instance",
          "StatusCode": "Successful",
          "Cause": "A user requests to execute scaling rule \\\"asr-bp12tcnol686y1ik****\\\", changing the Total Capacity from \\\"1\\\" to \\\"2\\\".",
          "ScalingActivityId": "asa-bp161xudmuxdzofe****",
          "StatusMessage": "\\\"1\\\" ECS instances are added",
          "CreatedCapacity": 1,
          "DestroyedCapacity": 1,
          "StartedCapacity": 1,
          "StoppedCapacity": 1,
          "CreatedInstances": [
            "[\"i-abc1\",\"i-abc2\"]"
          ],
          "DestroyedInstances": [
            "[\n      \"i-abc1\",\n      \"i-abc2\"\n]"
          ],
          "StartedInstances": [
            "[\n      \"i-abc1\",\n      \"i-abc2\"\n]"
          ],
          "StoppedInstances": [
            "[\n      \"i-abc1\",\n      \"i-abc2\"\n]"
          ],
          "ErrorCode": "OperationDenied.NoStock",
          "ErrorMessage": "The specified ECS resource is out of stock in this region. Please try again later.",
          "Detail": "\"new ECS instances \"i-j6c8ilerw, i-j6c8iler4mx\" are created.\"",
          "TriggerSourceType": "Api",
          "TriggerSourceId": "2346366580*****",
          "LifecycleHookContext": {
            "DisableLifecycleHook": false,
            "IgnoredLifecycleHookIds": [
              "ash-bp14zolna43z266bq***\n"
            ]
          },
          "ActivityMetadata": "{\\\"goatscaler.io/managed\\\":\\\"true\\\"}",
          "InstanceRefreshTaskId": "ir-asdf12adsxg*****"
        }
      ]
    }
    說明

    如果調用Auto ScalingOpenAPI後返回錯誤,您需要根據返回的錯誤碼提示檢查傳入的請求參數及其取值是否正確。

    您可以記錄下調用返回的RequestID或SDK報錯資訊,通過阿里雲OpenAPI診斷平台進行自助診斷。