阿里云CLI集成示例
阿里云CLI(Alibaba Cloud Command Line Interface)是基于OpenAPI建立的通用命令行工具,您可以借助阿里云CLI實(shí)現(xiàn)與RDS的交互,在Shell工具中管理您的RDS。本文將為您介紹使用阿里云CLI調(diào)用RDS API的操作步驟和示例。
前置概念
閱讀本文前,若您還不了解阿里云CLI,請(qǐng)參見什么是阿里云CLI。
安裝阿里云CLI
使用阿里云CLI前,您需要先安裝阿里云CLI。阿里云CLI為用戶提供了Windows、Linux和macOS三種操作系統(tǒng)下的安裝服務(wù),請(qǐng)根據(jù)您使用設(shè)備的操作系統(tǒng)選擇對(duì)應(yīng)的安裝服務(wù)。
Windows:在Windows上安裝阿里云CLI。
Linux:在Linux上安裝阿里云CLI。
macOS:在macOS上安裝阿里云CLI。
您也可使用阿里云提供的云命令行Cloud Shell調(diào)試阿里云CLI命令。關(guān)于云命令行的更多信息,請(qǐng)參見什么是云命令行?
配置阿里云CLI
阿里云主賬號(hào)擁有所有產(chǎn)品API的管理和訪問權(quán)限,風(fēng)險(xiǎn)很高。強(qiáng)烈建議您創(chuàng)建并使用RAM用戶進(jìn)行API訪問或日常運(yùn)維。RAM用戶需授予管理RDS的權(quán)限:AliyunRDSReadOnlyAccess(擁有查詢RDS實(shí)例的操作權(quán)) 。 您也可以按需選擇AliyunRDSFullAccess(具有RDS的完全控制權(quán)限)。
使用阿里云CLI之前,您需要在阿里云CLI中配置身份憑證、地域ID等信息。阿里云CLI支持多種身份憑證,詳情請(qǐng)參見身份憑證類型。本文操作以AK類型憑證為例,具體操作步驟如下:
您需要?jiǎng)?chuàng)建一個(gè)RAM用戶并根據(jù)需要授予管理對(duì)應(yīng)產(chǎn)品的權(quán)限。具體操作,請(qǐng)參見創(chuàng)建RAM用戶及為RAM用戶授權(quán)。
說明有關(guān)RDS權(quán)限策略的更多信息,請(qǐng)參見使用RAM進(jìn)行訪問控制。
創(chuàng)建RAM用戶并授權(quán)后,您需要?jiǎng)?chuàng)建RAM用戶對(duì)應(yīng)的AccessKey,并記錄
AccessKey ID
和AccessKey Secret
,以便后續(xù)配置身份憑證使用。具體操作,請(qǐng)參見創(chuàng)建AccessKey。獲取并記錄可用的地域ID,以便后續(xù)配置身份憑證使用,阿里云CLI將使用您指定的地域發(fā)起API調(diào)用。可用地域請(qǐng)參見服務(wù)接入點(diǎn)。
說明使用阿里云CLI過程中您可使用
--region
選項(xiàng)指定地域發(fā)起命令調(diào)用,該選項(xiàng)在使用時(shí)將忽略默認(rèn)身份憑證配置及環(huán)境變量設(shè)置中的地域信息。詳情請(qǐng)參見API命令可用選項(xiàng)。使用RAM用戶的AccessKey配置AK類型憑證,配置文件命名為
AkProfile
。具體操作,請(qǐng)參見配置示例。
生成CLI命令示例
在API調(diào)試界面左側(cè)搜索框中可搜索您需要使用的API。在參數(shù)配置中根據(jù)API文檔信息填寫參數(shù),單擊參數(shù)配置右側(cè)的CLI示例頁簽即可生成攜帶參數(shù)的命令示例。
單擊按鈕,可喚出云命令行并快速完成命令調(diào)試。
單擊按鈕,將CLI示例復(fù)制到剪貼板中,可粘貼至本地Shell工具中運(yùn)行。
復(fù)制CLI示例到本地Shell工具中進(jìn)行調(diào)試時(shí)請(qǐng)注意參數(shù)格式。關(guān)于阿里云CLI命令參數(shù)使用格式的詳細(xì)信息,請(qǐng)參見參數(shù)格式說明。
OpenAPI門戶生成示例中會(huì)默認(rèn)添加
--region
選項(xiàng),復(fù)制命令到本地調(diào)用時(shí)阿里云CLI將忽略默認(rèn)身份憑證配置及環(huán)境變量設(shè)置中的地域信息,優(yōu)先使用指定的地域調(diào)用命令,您可根據(jù)需要對(duì)該選項(xiàng)進(jìn)行刪除或保留。
調(diào)用云產(chǎn)品API
命令結(jié)構(gòu)
阿里云CLI的通用命令行結(jié)構(gòu)如下。更多詳情,請(qǐng)參見命令結(jié)構(gòu)。
aliyun <command> <subcommand> [options and parameters]
常用命令選項(xiàng)
在阿里云CLI中,您可根據(jù)需要使用命令行選項(xiàng),用來修改命令的默認(rèn)行為或?yàn)槊钐峁╊~外功能。常用命令行選項(xiàng)如下:
--profile<profileName>
:使用--profile
選項(xiàng)并指定有效配置名稱profileName
后,阿里云CLI將忽略默認(rèn)身份憑證配置及環(huán)境變量設(shè)置,優(yōu)先使用指定的配置進(jìn)行命令調(diào)用。--help
:在需要獲取幫助的命令層級(jí)處鍵入--help
選項(xiàng),即可獲取該命令的幫助信息。更多詳情,請(qǐng)參見獲取幫助信息。
更多詳細(xì)信息,請(qǐng)參見API命令可用選項(xiàng)。
調(diào)用示例
示例一:以下代碼示例將為您展示如何使用--help
選項(xiàng)獲取RDS支持阿里云CLI調(diào)用API列表。您也可在API概覽中查看支持調(diào)用的API。
執(zhí)行命令。
aliyun rds --help
輸出結(jié)果。
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調(diào)用RDS中的DescribeDBInstanceAttribute - 查詢實(shí)例詳情。
執(zhí)行命令。
aliyun rds DescribeDBInstanceAttribute --region cn-hangzhou --DBInstanceId 'pgm-bp16k272p478****'
輸出結(jié)果。
{ "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" }
說明如果調(diào)用RDS API后返回錯(cuò)誤,您需要根據(jù)返回的錯(cuò)誤碼提示檢查傳入的請(qǐng)求參數(shù)及其取值是否正確。
您也可以記錄下調(diào)用返回的RequestID或SDK報(bào)錯(cuò)信息,通過阿里云OpenAPI診斷平臺(tái)進(jìn)行自助診斷。