阿里云CLI集成示例

阿里云CLI(Alibaba Cloud Command Line Interface)是基于OpenAPI建立的通用命令行工具,您可以借助阿里云CLI实现与RDS的交互,在Shell工具中管理您的RDS。本文将为您介绍使用阿里云CLI调用RDS API的操作步骤和示例。

前置概念

阅读本文前,若您还不了解阿里云CLI,请参见什么是阿里云CLI

安装阿里云CLI

使用阿里云CLI前,您需要先安装阿里云CLI。阿里云CLI为用户提供了Windows、Linux和macOS三种操作系统下的安装服务,请根据您使用设备的操作系统选择对应的安装服务。

您也可使用阿里云提供的云命令行Cloud Shell调试阿里云CLI命令。关于云命令行的更多信息,请参见什么是云命令行?

配置阿里云CLI

重要

阿里云主账号拥有所有产品API的管理和访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。RAM用户需授予管理RDS的权限:AliyunRDSReadOnlyAccess(拥有查询RDS实例的操作权) 。 您也可以按需选择AliyunRDSFullAccess(具有RDS的完全控制权限)。

使用阿里云CLI之前,您需要在阿里云CLI中配置身份凭证、地域ID等信息。阿里云CLI支持多种身份凭证,详情请参见身份凭证类型。本文操作以AK类型凭证为例,具体操作步骤如下:

  1. 您需要创建一个RAM用户并根据需要授予管理对应产品的权限。具体操作,请参见创建RAM用户为RAM用户授权

    说明

    有关RDS权限策略的更多信息,请参见使用RAM进行访问控制

  2. 创建RAM用户并授权后,您需要创建RAM用户对应的AccessKey,并记录AccessKey IDAccessKey Secret,以便后续配置身份凭证使用。具体操作,请参见创建AccessKey

  3. 获取并记录可用的地域ID,以便后续配置身份凭证使用,阿里云CLI将使用您指定的地域发起API调用。可用地域请参见服务接入点

    说明

    使用阿里云CLI过程中您可使用--region选项指定地域发起命令调用,该选项在使用时将忽略默认身份凭证配置及环境变量设置中的地域信息。详情请参见API命令可用选项

  4. 使用RAM用户的AccessKey配置AK类型凭证,配置文件命名为AkProfile。具体操作,请参见配置示例

生成CLI命令示例

  1. 访问RDS OpenAPI调试列表

  2. 在API调试界面左侧搜索框中可搜索您需要使用的API。在参数配置中根据API文档信息填写参数,单击参数配置右侧的CLI示例页签即可生成携带参数的命令示例。

    image

    • 单击image按钮,可唤出云命令行并快速完成命令调试。

    • 单击image按钮,将CLI示例复制到剪贴板中,可粘贴至本地Shell工具中运行。

      • 复制CLI示例到本地Shell工具中进行调试时请注意参数格式。关于阿里云CLI命令参数使用格式的详细信息,请参见参数格式说明

      • OpenAPI门户生成示例中会默认添加--region选项,复制命令到本地调用时阿里云CLI将忽略默认身份凭证配置及环境变量设置中的地域信息,优先使用指定的地域调用命令,您可根据需要对该选项进行删除或保留。

调用云产品API

命令结构

阿里云CLI的通用命令行结构如下。更多详情,请参见命令结构

aliyun <command> <subcommand> [options and parameters]

常用命令选项

在阿里云CLI中,您可根据需要使用命令行选项,用来修改命令的默认行为或为命令提供额外功能。常用命令行选项如下:

  • --profile<profileName>:使用--profile选项并指定有效配置名称profileName后,阿里云CLI将忽略默认身份凭证配置及环境变量设置,优先使用指定的配置进行命令调用。

  • --help:在需要获取帮助的命令层级处键入--help选项,即可获取该命令的帮助信息。更多详情,请参见获取帮助信息

更多详细信息,请参见API命令可用选项

调用示例

示例一:以下代码示例将为您展示如何使用--help选项获取RDS支持阿里云CLI调用API列表。您也可在API概览中查看支持调用的API。

  1. 执行命令。

    aliyun rds --help
  2. 输出结果。

    输出结果

    Alibaba Cloud Command Line Interface Version 3.0.216
    
    Usage:
      aliyun rds <ApiName> --parameter1 value1 --parameter2 value2 ...
    
    Product: Rds (ApsaraDB for RDS)
    Version: 2014-08-15
    
    Available Api List:
      ActivateMigrationTargetInstance             Switches workloads over from the source PostgreSQL instance to the destination ApsaraDB RDS for PostgreSQL instance.
      AddTagsToResource                           Adds tags to an instance.
      AllocateInstancePublicConnection            Apply for a public endpoint for an ApsaraDB RDS instance
      AllocateReadWriteSplittingConnection        Applies for a read-only routing endpoint for an instance.
      AttachWhitelistTemplateToInstance           Associates a whitelist template with an instance.
      CalculateDBInstanceWeight                   Queries system-assigned read weights.
    
    ...

示例二:以下代码示例将为您展示如何使用阿里云CLI调用RDS中的DescribeDBInstanceAttribute - 查询实例详情

  1. 执行命令。

    aliyun rds DescribeDBInstanceAttribute --region cn-hangzhou --DBInstanceId 'pgm-bp16k272p478****'
  2. 输出结果。

    输出结果

    {
            "Items": {
                    "DBInstanceAttribute": [
                            {
                                    "AccountMaxQuantity": 99999,
                                    "AccountType": "Mix",
                                    "AdvancedFeatures": "LinkedServer,DistributeTransaction",
                                    "AutoUpgradeMinorVersion": "Auto",
                                    "AvailabilityValue": "100.0%",
                                    "BabelfishConfig": {},
                                    "CanTempUpgrade": false,
                                    "Category": "HighAvailability",
                                    "ColdDataEnabled": false,
                                    "ConnectionMode": "Standard",
                                    "ConnectionString": "pgm-bp16k272p478****.pg.rds.aliyuncs.com",
                                    "ConsoleVersion": "2",
                                    "CreationTime": "2024-08-06T06:18:48Z",
                                    "CurrentKernelVersion": "rds_postgres_1400_20240530",
                                    "DBClusterNodes": {
                                            "DBClusterNode": []
                                    },
                                    "DBInstanceCPU": "2",
                                    "DBInstanceClass": "pg.n4.2c.2m",
                                    "DBInstanceClassType": "x",
                                    "DBInstanceDescription": "DB-test",
                                    "DBInstanceDiskUsed": 3520069632,
                                    "DBInstanceId": "pgm-bp16k272p478****",
                                    "DBInstanceMemory": 8192,
                                    "DBInstanceNetType": "Intranet",
                                    "DBInstanceStatus": "Running",
                                    "DBInstanceStorage": 100,
                                    "DBInstanceStorageType": "cloud_essd",
                                    "DBInstanceType": "Primary",
                                    "DBMaxQuantity": 99999,
                                    "DedicatedHostGroupId": "",
                                    "DeletionProtection": false,
                                    "DispenseMode": "MultiAVZDispenseMode",
                                    "Engine": "PostgreSQL",
                                    "EngineVersion": "14.0",
                                    "ExpireTime": "",
                                    "Extra": {
                                            "DBInstanceIds": {
                                                    "DBInstanceId": []
                                            }
                                    },
                                    "IPType": "IPv4",
                                    "InsId": 1,
                                    "InstanceNetworkType": "VPC",
                                    "InstructionSetArch": "x86",
                                    "IoAccelerationEnabled": "0",
                                    "LatestKernelVersion": "rds_postgres_1400_20240530",
                                    "LockMode": "Unlock",
                                    "MaintainTime": "18:00Z-22:00Z",
                                    "MasterZone": "cn-hangzhou-j",
                                    "MaxConnections": 800,
                                    "MaxIOMBPS": 0,
                                    "MaxIOPS": 6800,
                                    "OriginConfiguration": "{\"KindCode\":\"18\"}",
                                    "PayType": "Postpaid",
                                    "Port": "5432",
                                    "ProxyType": 2,
                                    "ReadOnlyDBInstanceIds": {
                                            "ReadOnlyDBInstanceId": []
                                    },
                                    "RegionId": "cn-hangzhou",
                                    "ResourceGroupId": "rg-acfmz7u4zzrngoa",
                                    "SecurityIPList": "0.0.0.0/0,172.16.0.0/12",
                                    "SecurityIPMode": "normal",
                                    "ServerlessConfig": {},
                                    "SlaveZones": {
                                            "SlaveZone": [
                                                    {
                                                            "ZoneId": "cn-hangzhou-k"
                                                    }
                                            ]
                                    },
                                    "SuperPermissionMode": "",
                                    "SupportCreateSuperAccount": "Yes",
                                    "SupportUpgradeAccountType": "Yes",
                                    "Tips": "ok",
                                    "TipsLevel": 1,
                                    "VSwitchId": "vsw-bp1sxxsodv28ey5dl****",
                                    "VpcCloudInstanceId": "pgm-bp16k272p478****-20240806141842",
                                    "VpcId": "vpc-bp1ov7as4yvz4kxei****",
                                    "ZoneId": "cn-hangzhou-j",
                                    "kindCode": "18"
                            }
                    ]
            },
            "RequestId": "14B99E32-4ECD-5B8E-A9C8-6738C8C95910"
    }
    
    说明

    如果调用RDS API后返回错误,您需要根据返回的错误码提示检查传入的请求参数及其取值是否正确。

    您也可以记录下调用返回的RequestID或SDK报错信息,通过阿里云OpenAPI诊断平台进行自助诊断。