本文以调用云原生大数据计算服务 MaxComputeListProjects
接口获取MaxCompute项目列表为例,为您介绍使用阿里云CLI调用MaxCompute OpenAPI的操作步骤。
前置概念
阿里云CLI(Alibaba Cloud Command Line Interface)是基于OpenAPI构建的通用命令行工具,您可以通过阿里云CLI实现自动化管理和维护MaxCompute。更多信息,请参见什么是阿里云CLI。
步骤一:安装阿里云CLI
使用阿里云CLI前,您需要先安装阿里云CLI。阿里云CLI为用户提供了Windows、Linux和macOS三种操作系统下的安装服务,请根据您使用设备的操作系统选择对应的安装服务。
Windows:在Windows上安装阿里云CLI。
Linux:在Linux上安装阿里云CLI。
macOS:在macOS上安装阿里云CLI。
云命令行(Cloud Shell)中预装了阿里云CLI,且在使用时自动为您配置身份凭证,无需手动操作。您可在云命令行中调试阿里云CLI命令。更多信息,请参见什么是云命令行。
步骤二:配置阿里云CLI
阿里云账号(主账号)拥有所有产品OpenAPI的管理和访问权限,风险很高。强烈建议您创建RAM用户(子账号),并依据最小化权限原则授予权限,使用RAM用户身份访问OpenAPI。MaxCompute支持的权限策略,请参见基于身份的策略。
使用阿里云CLI之前,您需要在阿里云CLI中配置身份凭证、地域ID等信息。阿里云CLI支持多种身份凭证,详情请参见身份凭证类型。阿里云CLI支持使用RAM用户的AccessKey信息配置AK类型身份凭证,具体操作步骤如下:
创建一个RAM用户,并创建AccessKey,以便后续配置身份凭证使用。具体操作,请参见创建RAM用户及创建AccessKey。
为RAM用户授权。本文示例需授予RAM用户只读访问MaxCompute的权限
AliyunMaxComputeReadOnlyAccess
。具体操作,请参见为RAM用户授权。获取可用的地域ID,以便后续配置身份凭证使用。阿里云CLI将使用您指定的地域发起OpenAPI调用。MaxCompute的可用地域请参见服务接入点。
说明使用阿里云CLI过程中您可使用
--region
选项指定地域发起命令调用,该选项在使用时将忽略默认身份凭证配置及环境变量设置中的地域信息。详情请参见API命令可用选项。使用RAM用户的AccessKey配置AK类型凭证,配置文件命名为
AkProfile
。具体操作,请参见配置示例。
步骤三:生成CLI命令示例
在OpenAPI门户中,访问ListProjects调试地址。
在参数配置中输入请求参数,单击CLI示例页签,查看生成的CLI示例。
复制CLI示例或在云命令行中快速执行:
单击运行命令按钮,可唤出云命令行并快速完成命令调试。
单击复制按钮,将CLI示例复制到剪贴板中,可粘贴至本地Shell工具中运行或用于编辑自动化命令行脚本。
说明复制CLI示例到本地Shell工具中进行调试时请注意参数格式。关于阿里云CLI命令参数使用格式的详细信息,请参见参数格式说明。
OpenAPI门户生成示例中会默认添加
--region
选项,复制命令到本地调用时阿里云CLI将忽略默认身份凭证配置及环境变量设置中的地域信息,优先使用指定的地域调用命令,您可根据需要对该选项进行删除或保留。
步骤四:调用MaxCompute OpenAPI
示例一:获取OpenAPI列表
以下示例将为您展示如何使用--help
选项获取支持阿里云CLI调用的MaxCompute OpenAPI列表。更多信息,请参见API概览。
执行以下命令。
aliyun maxcompute --help
预期输出。
示例二:获取项目列表
以下示例将为您展示如何使用阿里云CLI调用MaxCompute的ListProjects
接口,根据输入参数筛选并获取MaxCompute项目列表。更多接口信息,请参见ListProjects - 获取项目列表。
执行命令。
aliyun maxcompute GET /api/v1/projects --tenantId '5495****3697' --quotaName 'aliyun_5495***3697' --header "Content-Type=application/json;"
输出结果。
{ "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诊断平台进行自助诊断。