全部產品
Search
文件中心

ApsaraDB RDS:阿里雲CLI整合樣本

更新時間:Oct 25, 2024

阿里雲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使用者授權

  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診斷平台進行自助診斷。