全部產品
Search
文件中心

MaxCompute:CLI整合樣本

更新時間:Dec 11, 2024

本文以調用MaxComputeListProjects介面擷取MaxCompute專案列表為例,為您介紹使用阿里雲CLI調用MaxCompute OpenAPI的操作步驟。

前置概念

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

步驟一:安裝阿里雲CLI

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

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

步驟二:配置阿里雲CLI

重要

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

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

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

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

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

    說明

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

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

步驟三:產生CLI命令樣本

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

    image

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

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

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

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

    說明

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

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

步驟四:調用MaxCompute OpenAPI

樣本一:擷取OpenAPI列表

以下樣本將為您展示如何使用--help選項擷取支援阿里雲CLI調用的MaxCompute OpenAPI列表。更多資訊,請參見API概覽

  1. 執行以下命令。

    aliyun maxcompute --help
  2. 預期輸出。

    image

樣本二:擷取專案列表

以下樣本將為您展示如何使用阿里雲CLI調用MaxComputeListProjects介面,根據輸入參數篩選並擷取MaxCompute專案列表。更多介面資訊,請參見ListProjects - 擷取專案列表

  1. 執行命令。

    aliyun maxcompute GET /api/v1/projects --tenantId '5495****3697' --quotaName 'aliyun_5495***3697' --header "Content-Type=application/json;"
  2. 輸出結果。

    {
      "requestId": "0b16399216671970335563173e2340",
      "data": {
        "projects": [
          {
            "name": "odps_project",
            "owner": "ALIYUN$odps****@aliyunid.com\n",
            "type": "managed",
            "comment": "BI_Analysis",
            "defaultQuota": "os_PayAsYouGoQuota\n",
            "status": "AVAILABLE",
            "costStorage": "16489027",
            "regionId": "cn-beijing",
            "createdTime": 1704380838000,
            "properties": {
              "timezone": "Asia/Shanghai\n",
              "retentionDays": 1,
              "allowFullScan": false,
              "typeSystem": "2",
              "enableDecimal2": true,
              "sqlMeteringMax": "1500",
              "tableLifecycle": {
                "type": "optional",
                "value": "37231\n"
              },
              "encryption": {
                "enable": true,
                "algorithm": "AES256",
                "key": "dafault"
              },
              "tunnelQuota": "Default",
              "enableTunnelQuotaRoute": true,
              "externalProjectProperties": {
                "isExternalCatalogBound": "true"
              }
            },
            "securityProperties": {
              "usingAcl": true,
              "usingPolicy": true,
              "objectCreatorHasAccessPermission": true,
              "objectCreatorHasGrantPermission": true,
              "labelSecurity": false,
              "enableDownloadPrivilege": false,
              "projectProtection": {
                "protected": true,
                "exceptionPolicy": "{\n      \"Version\": \"1\",\n      \"Statement\": [\n            {\n                  \"Effect\": \"Allow\",\n                  \"Principal\": \"\",\n                  \"Action\": [\n                        \"odps:[, , ...]\"\n                  ],\n                  \"Resource\": \"acs:odps:*:\",\n                  \"Condition\": {\n                        \"StringEquals\": {\n                              \"odps:TaskType\": [\n                                    \"\"\n                              ]\n                        }\n                  }\n            }\n      ]\n}"
              }
            },
            "ipWhiteList": {
              "ipList": "10.88.111.3",
              "vpcIpList": "10.88.111.3"
            },
            "saleTag": {
              "resourceId": "b7afb7d1-****-****-****-c393669c307b\n",
              "resourceType": "PayAsYouGo\n"
            },
            "threeTierModel": true
          }
        ],
        "marker": "cHlvZHBzX3VkZl8xMDExNV8xNDU3NDI4NDkzKg==",
        "maxItem": 10,
        "NextToken": "AAAAAV3MpHK1AP0pfERHZN5pu6kvikyUl3ChyRxN+qLPvtOb"
      }
    }
    說明

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

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