Este ejemplo invoca la API ListProjects de MaxCompute para enumerar los proyectos de MaxCompute y demuestra cómo llamar a la OpenAPI de MaxCompute.
Descripción general
Alibaba Cloud Command Line Interface (CLI) es una herramienta de línea de comandos basada en OpenAPI que permite automatizar MaxCompute. What is Alibaba Cloud CLI?.
Paso 1: Instalar Alibaba Cloud CLI
Instale Alibaba Cloud CLI según su sistema operativo:
Windows: Install the CLI on Windows.
Linux: Install or update the CLI.
macOS: Install the CLI on macOS.
En Cloud Shell, Alibaba Cloud CLI viene preinstalado con la configuración de credenciales automática. Depure los comandos directamente en Cloud Shell. What is Cloud Shell?.
Paso 2: Configurar Alibaba Cloud CLI
Una cuenta de Alibaba Cloud (cuenta raíz) tiene permisos completos para todas las operaciones de OpenAPI, lo que representa un alto riesgo de seguridad. Se recomienda crear un usuario RAM, otorgar permisos según el principio de menor privilegio y utilizar dicho usuario para las operaciones de OpenAPI. Para MaxCompute, consulte Identity-based policies.
Configure las credenciales y un ID de región antes de usar Alibaba Cloud CLI. Se admiten varios tipos de credenciales. Configure and manage credentials. Puede utilizar la AccessKey de un usuario RAM para configurar credenciales de tipo AK:
Otorgue al usuario RAM el permiso
AliyunMaxComputeReadOnlyAccesspara acceso de solo lectura a MaxCompute. Manage RAM user permissions.-
Obtenga un ID de región. Alibaba Cloud CLI invoca la OpenAPI desde la región especificada. Para consultar las regiones de MaxCompute, consulte Endpoints.
NotaLa opción
--regionanula la región definida en la configuración de credenciales y en las variables de entorno. Command-line options. Configure credenciales de tipo AK mediante la AccessKey del usuario RAM y asigne al perfil el nombre
AkProfile. Configure and manage credentials.
Paso 3: Generar un comando CLI de ejemplo
-
En el portal de OpenAPI, vaya a la página de depuración de ListProjects.
En el panel izquierdo, seleccione una región en la lista desplegable Service Address (por ejemplo, China (Hangzhou)) e introduzca los parámetros de solicitud como
tenantId,region,quotaNickNameyquotaName. Haga clic en la pestaña CLI Example a la derecha para ver el comando generado. En la sección Parameter Configuration, introduzca los parámetros de solicitud y haga clic en la pestaña CLI Example para ver el comando CLI generado.
-
Copie el comando CLI o ejecútelo en Cloud Shell:
Haga clic en el botón Run Command
para abrir Cloud Shell y depurar rápidamente el comando.Haga clic en el botón Copy
para copiar el comando CLI al portapapeles. Posteriormente, péguelo en una herramienta shell local para ejecutarlo o editarlo en un script de automatización.
NotaAl pegar el comando en un shell local, asegúrese de que el formato de los parámetros cumpla con los requisitos indicados en Understand command parameters.
El comando generado incluye la opción
--regionde forma predeterminada, la cual anula la región definida en la configuración de credenciales y en las variables de entorno. Elimine o conserve esta opción según sea necesario.
Paso 4: Llamar a la OpenAPI deMaxCompute
Ejemplo 1: Enumerar las operaciones de OpenAPI disponibles
Utilice la opción --help para listar las operaciones de la OpenAPI de MaxCompute compatibles con Alibaba Cloud CLI. API overview.
-
Ejecute el siguiente comando.
aliyun maxcompute --help -
Salida:
shell@Alicloud:~$ aliyun maxcompute --help Alibaba Cloud CLI, Version 3.0.234 Usage 1: aliyun maxcompute [GET|PUT|POST|DELETE] <PathPattern> --body "..." Usage 2 (For API with NO PARAMS in PathPattern only.): aliyun maxcompute <ApiName> --parameter1 value1 --parameter2 value2 ... --body "..." Product: MaxCompute () Version: 2022-01-04 Available Api List: CreatePackage : POST /api/v1/projects/[projectName]/packages CreateProject : POST /api/v1/projects CreateQuotaPlan : POST /api/v1/quotas/[nickname]/plans CreateRole : POST /api/v1/projects/[projectName]/roles DeleteQuotaPlan : DELETE /api/v1/quotas/[nickname]/plans/[planName] GetJobResourceUsage : GET /api/v1/jobs/resourceUsage GetPackage : GET /api/v1/projects/[projectName]/packages/[packageName]
Ejemplo 2: Listar proyectos
Invoque la operación de API ListProjects de MaxCompute para filtrar y obtener una lista de proyectos de MaxCompute. List projects.
-
Ejecute el comando.
aliyun maxcompute GET /api/v1/projects --tenantId '5495****3697' --quotaName 'aliyun_5495***3697' --header "Content-Type=application/json;" -
Salida:
{ "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" } }NotaSi una llamada a la API de MaxCompute devuelve un error, compruebe los parámetros de solicitud con base en el código de error retornado.
Registre el RequestID o el mensaje de error del SDK y utilice la Plataforma de diagnóstico de OpenAPI de Alibaba Cloud para realizar diagnósticos de autoservicio.