Topik ini menjelaskan cara menginstal dan menggunakan Alibaba Cloud SDK untuk Python guna memanggil operasi DescribeDBInstances untuk mengkueri instans ApsaraDB RDS Anda.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Python 3 yang terinstal (unduh)
pip (termasuk dalam Python 3.4+)
Akun Alibaba Cloud dengan pasangan AccessKey
Langkah 1: Buat pengguna RAM dan berikan izin
Lewati langkah ini jika Anda sudah memiliki pengguna Resource Access Management (RAM) dengan izin yang diperlukan.
Buat pengguna RAM
Masuk ke Konsol RAM dan buka halaman Users.
Klik Create User.
Atur Logon Name menjadi
rds-openapi-operatordan pilih Using permanent AccessKey to access untuk Access Mode.Klik OK. Simpan ID AccessKey dan rahasia AccessKey. Rahasia AccessKey hanya ditampilkan sekali.
Berikan izin
Pada halaman Users, temukan pengguna RAM tersebut lalu klik Add Permissions di kolom Actions.
Cari
AliyunRDSdan pilih kebijakan AliyunRDSReadOnlyAccess.CatatanKebijakan AliyunRDSReadOnlyAccess memberikan akses read-only ke RDS. Untuk izin manajemen penuh, pilih AliyunRDSFullAccess sebagai gantinya. Untuk kontrol akses detail halus, buat kebijakan kustom.
Klik Grant permissions.
Langkah 2: Konfigurasikan kredensial
Atur variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET sesuai dengan pasangan AccessKey Anda.
Linux atau macOS
export ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>Windows
Tambahkan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET sebagai variabel lingkungan sistem dengan nilai pasangan AccessKey Anda, lalu restart sistem.
Langkah 3: Instal SDK
pip install alibabacloud_rds20140815==5.0.1Langkah 4: Tulis dan jalankan kode
Buat file bernama sample.py dengan kode berikut. Contoh ini memanggil operasi DescribeDBInstances untuk menampilkan daftar instans RDS di wilayah cn-beijing. Ganti cn-beijing dengan wilayah instans Anda, misalnya ap-southeast-1.
import os
import sys
import json
from alibabacloud_rds20140815.client import Client
from alibabacloud_rds20140815.models import DescribeDBInstancesRequest
from alibabacloud_tea_openapi.models import Config
def create_client():
"""Create an ApsaraDB RDS client using environment variable credentials."""
config = Config(
access_key_id=os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_ID"),
access_key_secret=os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
endpoint="rds.aliyuncs.com",
)
return Client(config)
def main():
"""Query RDS instances in the specified region."""
client = create_client()
request = DescribeDBInstancesRequest(region_id="cn-beijing")
try:
response = client.describe_dbinstances(request)
print(json.dumps(response.body.to_map(), indent=4))
except Exception as e:
print(f"Error: {e}", file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
main()Jalankan kode:
python sample.pyAlternatif: Unduh kode contoh dari OpenAPI Portal
Untuk menghasilkan dan mengunduh kode contoh dengan parameter kustom:
Buka halaman DescribeDBInstances di OpenAPI Portal.
Pada tab Parameters, atur RegionId menjadi
cn-beijingatau wilayah instans Anda.Pada tab SDK Sample Code, pilih Python lalu klik Download Project.
Ekstrak paket tersebut dan masuk ke direktori
alibabacloud_sample.Jalankan contoh:
python sample.py
Contoh respons
Respons sukses akan tampak seperti berikut:
{
"Items": {
"DBInstance": [
{
"ConnectionMode": "Standard",
"ConnectionString": "rm-2zea24972vgw2****.mysql.rds.aliyuncs.com",
"CreateTime": "2024-06-18T10:09:56Z",
"DBInstanceClass": "mysql.n1e.small.1",
"DBInstanceId": "rm-2zea24972vgw2****",
"DBInstanceMemory": 1024,
"DBInstanceNetType": "Intranet",
"DBInstanceStatus": "Creating",
"DBInstanceStorageType": "general_essd",
"DBInstanceType": "Primary",
"DeletionProtection": false,
"Engine": "MySQL",
"EngineVersion": "8.0",
"ExpireTime": "2024-07-18T16:00:00Z",
"InstanceNetworkType": "VPC",
"LockMode": "Unlock",
"MutriORsignle": false,
"PayType": "Prepaid",
"ReadOnlyDBInstanceIds": {
"ReadOnlyDBInstanceId": []
},
"RegionId": "cn-beijing",
"ResourceGroupId": "rg-acfmz7u4zzr****",
"TipsLevel": 0,
"VSwitchId": "vsw-2zeyawzswr2lno0ys****",
"VpcCloudInstanceId": "rm-2zea24972vgw2****-20240618180950",
"VpcId": "vpc-2zeev9fov0chw8hjt****",
"ZoneId": "cn-beijing-l"
}
]
},
"NextToken": "o7PHCFqQhehg8NUW9EJ7Yw",
"PageNumber": 1,
"PageRecordCount": 1,
"RequestId": "3BBF9A9B-E74C-5EF5-99BB-4F65B4B67499",
"TotalRecordCount": 1
}Langkah selanjutnya
Jelajahi Referensi API ApsaraDB RDS untuk daftar lengkap operasi.
Hasilkan kode contoh untuk operasi API lainnya di OpenAPI Portal.