阿里云CLI(Alibaba Cloud Command Line Interface)是基于OpenAPI建立的通用命令行工具,您可以借助阿里云CLI實現與RDS的交互,在Shell工具中管理您的RDS。本文將為您介紹使用阿里云CLI調用RDS API的操作步驟和示例。
前置概念
閱讀本文前,若您還不了解阿里云CLI,請參見什么是阿里云CLI。
安裝阿里云CLI
使用阿里云CLI前,您需要先安裝阿里云CLI。阿里云CLI為用戶提供了Windows、Linux和macOS三種操作系統下的安裝服務,請根據您使用設備的操作系統選擇對應的安裝服務。
Windows:在Windows上安裝阿里云CLI。
Linux:在Linux上安裝阿里云CLI。
macOS:在macOS上安裝阿里云CLI。
您也可使用阿里云提供的云命令行Cloud Shell調試阿里云CLI命令。關于云命令行的更多信息,請參見什么是云命令行?
配置阿里云CLI
阿里云主賬號擁有所有產品API的管理和訪問權限,風險很高。強烈建議您創建并使用RAM用戶進行API訪問或日常運維。RAM用戶需授予管理RDS的權限:AliyunRDSReadOnlyAccess(擁有查詢RDS實例的操作權) 。 您也可以按需選擇AliyunRDSFullAccess(具有RDS的完全控制權限)。
使用阿里云CLI之前,您需要在阿里云CLI中配置身份憑證、地域ID等信息。阿里云CLI支持多種身份憑證,詳情請參見身份憑證類型。本文操作以AK類型憑證為例,具體操作步驟如下:
您需要創建一個RAM用戶并根據需要授予管理對應產品的權限。具體操作,請參見創建RAM用戶及為RAM用戶授權。
說明有關RDS權限策略的更多信息,請參見使用RAM進行訪問控制。
創建RAM用戶并授權后,您需要創建RAM用戶對應的AccessKey,并記錄
AccessKey ID
和AccessKey Secret
,以便后續配置身份憑證使用。具體操作,請參見創建AccessKey。獲取并記錄可用的地域ID,以便后續配置身份憑證使用,阿里云CLI將使用您指定的地域發起API調用??捎玫赜蛘垍⒁?a href="http://bestwisewords.com/zh/rds/developer-reference/api-rds-2014-08-15-endpoint" id="b8465b1acbscz" title="" class="xref">服務接入點。
說明使用阿里云CLI過程中您可使用
--region
選項指定地域發起命令調用,該選項在使用時將忽略默認身份憑證配置及環境變量設置中的地域信息。詳情請參見API命令可用選項。使用RAM用戶的AccessKey配置AK類型憑證,配置文件命名為
AkProfile
。具體操作,請參見配置示例。
生成CLI命令示例
在API調試界面左側搜索框中可搜索您需要使用的API。在參數配置中根據API文檔信息填寫參數,單擊參數配置右側的CLI示例頁簽即可生成攜帶參數的命令示例。
調用云產品API
命令結構
阿里云CLI的通用命令行結構如下。更多詳情,請參見命令結構。
aliyun <command> <subcommand> [options and parameters]
常用命令選項
在阿里云CLI中,您可根據需要使用命令行選項,用來修改命令的默認行為或為命令提供額外功能。常用命令行選項如下:
--profile<profileName>
:使用--profile
選項并指定有效配置名稱profileName
后,阿里云CLI將忽略默認身份憑證配置及環境變量設置,優先使用指定的配置進行命令調用。--help
:在需要獲取幫助的命令層級處鍵入--help
選項,即可獲取該命令的幫助信息。更多詳情,請參見獲取幫助信息。
更多詳細信息,請參見API命令可用選項。
調用示例
示例一:以下代碼示例將為您展示如何使用--help
選項獲取RDS支持阿里云CLI調用API列表。您也可在API概覽中查看支持調用的API。
執行命令。
aliyun rds --help
輸出結果。
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 - 查詢實例詳情。
執行命令。
aliyun rds DescribeDBInstanceAttribute --region cn-hangzhou --DBInstanceId 'pgm-bp16k272p478****'
輸出結果。
{ "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診斷平臺進行自助診斷。