Panduan ini menjelaskan cara menggunakan Database Autonomy Service (DAS) SDK untuk Python guna memanggil operasi API GetInstanceInspections, yang mengambil hasil inspeksi dan penilaian untuk sebuah instans database.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Python 3 terinstal. Jalankan
python --versionuntuk memverifikasi.Memiliki pengguna RAM dengan izin DAS. Ikuti langkah-langkah di Menyiapkan pengguna RAM jika belum melakukannya.
Menyimpan ID AccessKey dan rahasia AccessKey sebagai variabel lingkungan. Ikuti langkah-langkah di Mengonfigurasi variabel lingkungan.
Cara kerja
Contoh dalam panduan ini melakukan hal berikut:
Melakukan autentikasi menggunakan kredensial dari variabel lingkungan.
Memanggil
GetInstanceInspectionsuntuk mengkueri tugas inspeksi dan penilaian yang telah selesai dalam rentang waktu tertentu.Mengembalikan daftar hasil inspeksi yang dipaginasi, termasuk skor, detail instans, dan data diagnostik.
Untuk daftar lengkap operasi API DAS, lihat Referensi API DAS. Untuk SDK dalam bahasa lain, lihat DAS SDK.
Menyiapkan RAM user
Lewati bagian ini jika Anda sudah memiliki pengguna Resource Access Management (RAM) dengan izin DAS.
Buat pengguna RAM.
Masuk ke Konsol RAM, buka halaman Users, lalu klik Create User.
Atur Logon Name menjadi
das-openapi-operatordan atur Access Mode menjadi Using permanent AccessKey to access.Klik OK. Simpan ID AccessKey dan rahasia AccessKey yang ditampilkan setelah pembuatan.
Berikan izin kepada pengguna RAM.
Di halaman Users, temukan pengguna RAM tersebut dan klik Grant permissions pada kolom Actions.
Cari
DASdan pilih AliyunHDMReadOnlyAccess.CatatanAliyunHDMReadOnlyAccess memberikan akses read-only ke DAS. Untuk akses baca-tulis penuh, pilih AliyunHDMFullAccess sebagai gantinya. Untuk membuat kebijakan kustom dengan izin spesifik, lihat Buat kebijakan kustom.
Klik Grant permissions.
Mengonfigurasi variabel lingkungan
Simpan kredensial Anda sebagai variabel lingkungan untuk menghindari hardcoding nilai sensitif dalam kode Anda.
Linux atau macOS:
export ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>Windows (Command Prompt):
set ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>Windows (PowerShell):
$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "<ACCESS_KEY_ID>"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "<ACCESS_KEY_SECRET>"Perintah set dan $env: bersifat sesi — variabel akan hilang ketika Anda menutup terminal atau me-restart Windows. Untuk mengatur variabel lingkungan permanen di Windows, gunakan dialog Windows System Properties (Control Panel > System > Advanced system settings > Environment Variables) atau buat file yang mengatur variabel ini dan restart Windows.
Ganti <ACCESS_KEY_ID> dan <ACCESS_KEY_SECRET> dengan nilai yang Anda simpan saat membuat pengguna RAM.
Menginstal SDK
Kami menyarankan menggunakan virtual environment untuk menghindari konflik dependensi dengan paket lain di sistem Anda:
python -m venv .venv
source .venv/bin/activate # Di Windows: .venv\Scripts\activateKemudian instal DAS Python SDK:
pip install alibabacloud_das20200116==2.4.2Memanggil API
Mendapatkan kode contoh
Kode contoh dibuat secara otomatis oleh OpenAPI Explorer berdasarkan parameter yang Anda konfigurasi.
Buka halaman GetInstanceInspections di OpenAPI Explorer.
Di tab Parameters, atur parameter berikut. Contoh ini mengkueri inspeksi pada instans ApsaraDB RDS for MySQL.
Parameter Nilai contoh Catatan Engine MySQLStartTime 1718776527000Stempel waktu UNIX dalam milidetik. Atur ini ke awal sebenarnya dari rentang kueri Anda. EndTime 1718776827000Stempel waktu UNIX dalam milidetik. Atur ini ke akhir sebenarnya dari rentang kueri Anda. Jika tidak ada inspeksi yang selesai dalam rentang tersebut, jalankan inspeksi secara manual dan coba lagi. InstanceArea RDSPageNo 1PageSize 10Di tab SDK Sample Code di sebelah kanan, pilih Python untuk parameter Languages dan klik Download Project.
Ekstrak paket yang diunduh dan masuk ke direktori
alibabacloud_sample.
Menjalankan kode contoh
python sample.pyMemahami respons
Pemanggilan yang berhasil mengembalikan kode status HTTP 200. Badan respons memiliki struktur berikut:
| Field | Deskripsi |
|---|---|
Data.List | Array catatan inspeksi. Setiap catatan berisi metadata instans, data diagnostik, dan skor. |
Data.List[].Score | Skor inspeksi untuk instans tersebut. |
Data.List[].State | Status tugas. |
Data.List[].TaskType | Jenis tugas. |
Data.List[].Instance | Detail instans: engine, versi, wilayah, CPU, memori, penyimpanan, dan jenis jaringan. |
Data.List[].Data | Data diagnostik: jumlah SQL lambat, pendeteksian deadlock, sesi aktif, transaksi besar, dan penggunaan penyimpanan. |
Data.PageNo | Nomor halaman saat ini. |
Data.PageSize | Jumlah catatan per halaman. |
Data.Total | Total jumlah catatan yang cocok. |
Contoh respons:
{
"headers": {
"date": "Wed, 19 Jun 2024 06:24:10 GMT",
"content-type": "application/json;charset=utf-8",
"content-length": "1428",
"connection": "keep-alive",
"keep-alive": "timeout=25",
"vary": "Accept-Encoding",
"access-control-allow-origin": "*",
"access-control-expose-headers": "*",
"x-acs-request-id": "B576DACC-D08A-5058-8843-E613CBF474CF",
"x-acs-trace-id": "2fb5b5b76565ce67233288b9369f6d96",
"etag": "1rcNeDQg43APurk7PohefuQ8"
},
"statusCode": 200,
"body": {
"Code": 200,
"Data": {
"List": [
{
"AutoFunction": {
"AutoIndex": 1,
"AutoLimitedSql": 0,
"AutoResourceOptimize": 2,
"AutoScale": 0,
"EventSubscription": 0
},
"Data": {
"hasDeadLock": false,
"slowSqlCount": 0,
"exceptionTableMap": {},
"spaceItem": {
"valid": true,
"current": 0.16416015625,
"avg": 0.16416015625,
"min": 0.16416015625,
"max": 0.16416015625
},
"maxIops": 3100,
"bigTransactionCount": 0,
"cpu": 2,
"isRds": true,
"storage": 20,
"lastHourRate": 0.0,
"lastDayCount": 0,
"lastHourCount": 0,
"slowSqlList": [],
"lastDayRate": 0.0,
"activeSessions": [],
"enable": false,
"bigTransactionList": [],
"bigSessionList": [
{
"User": "system user",
"Command": "Query",
"State": "Replica has read all relay log; waiting for more updates",
"active": false,
"Host": "",
"Time": 24,
"Id": 61,
"Info": "",
"db": ""
}
],
"tableStats": [],
"bigSessionCount": 1,
"spaceUsage": 0.16416015625,
"availableDays": 76
},
"EnableDasPro": 0,
"EndTime": 1718726400000,
"GmtCreate": 1718776692000,
"Instance": {
"AccountId": "1648821913965368",
"Category": "standard",
"Cpu": "2",
"Engine": "MySQL",
"EngineVersion": "8.0",
"InstanceArea": "RDS",
"InstanceClass": "mysql.n2m.medium.2c",
"InstanceId": "rm-bp1s6jtqtr41m****",
"Memory": 4096,
"NetworkType": "VPC",
"Region": "cn-hangzhou",
"Storage": 20,
"Uuid": "hdm_6d00b701adcb484d5fa4d2800dc0****",
"VpcId": "vpc-bp1ov7as4yvz4kxei****"
},
"Score": 100,
"StartTime": 1718640000000,
"State": 2,
"TaskType": 1
}
],
"PageNo": 1,
"PageSize": 10,
"Total": 1
},
"Message": "Successful",
"RequestId": "B576DACC-D08A-5058-8843-E613CBF474CF",
"Success": true
}
}Langkah selanjutnya
Inspeksi dan penilaian — Pelajari cara melihat dan menginterpretasikan hasil inspeksi di Konsol DAS.
Referensi API DAS — Jelajahi semua operasi API yang tersedia.
DAS SDK — Unduh SDK untuk Java, Go, Node.js, dan bahasa lainnya.