このトピックでは、Database Autonomy Service (DAS) の Python SDK を使用して GetInstanceInspections API を呼び出す方法を説明します。この API は、データベースインスタンスの診断とスコアリングの結果を取得します。
API ドキュメントの確認
API を呼び出す前に、ドキュメントを確認して、必要なパラメーターと権限を理解してください。詳細については、「API 概要」をご参照ください。
RAM ユーザーの作成と権限の付与
RAM ユーザーをすでに作成し、必要な権限を付与している場合は、この手順をスキップできます。
-
RAM ユーザーの作成:
-
ユーザー ページに移動し、[ユーザーの作成] をクリックします。
-
[ログイン名] を das-openapi-operator に設定します。アクセスモード で、[プログラムによるアクセス] を選択します。
-
決定 をクリックして RAM ユーザーを作成し、AccessKey ID と AccessKey Secret を保存します。
-
-
権限の付与:
-
ユーザー ページに移動します。対象の RAM ユーザーの 操作 列で、[権限の追加] をクリックします。
-
検索ボックスに
DASと入力し、[AliyunHDMReadOnlyAccess] ポリシーを選択します。説明[AliyunHDMReadOnlyAccess] ポリシーは、DAS に対する読み取り専用権限を付与します。[AliyunHDMFullAccess] ポリシーを選択して完全な管理権限を付与したり、カスタムポリシーを作成したりすることもできます。詳細については、「カスタムポリシーの作成」をご参照ください。
-
[OK] をクリックして権限付与を完了します。
-
API の呼び出し
このトピックでは、Python SDK を例として使用します。他の言語の SDK でも、プロセスは同様です。詳細については、「Database Autonomy Service (DAS) SDK」をご参照ください。
Python 環境の準備
Python 3 をダウンロードしてインストールします。Python がインストールされている場合は、次のコマンドを実行してバージョンを確認します: python --version
環境変数の設定
ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET の環境変数を設定します。
-
Linux および macOS の場合、
<ACCESS_KEY_ID>と<ACCESS_KEY_SECRET>をご自身の AccessKey ID と AccessKey Secret に置き換え、ターミナルで次のコマンドを実行します:export ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET> -
Windows の場合、
ALIBABA_CLOUD_ACCESS_KEY_IDとALIBABA_CLOUD_ACCESS_KEY_SECRETという名前の環境変数を作成し、その値をご自身の AccessKey ID と AccessKey Secret に設定します。システムを再起動してください。
依存関係のインストール
ターミナルで次のコマンドを実行して、必要な依存関係をインストールします:
pip install alibabacloud_das20200116==2.4.2
サンプルコードのダウンロード
-
GetInstanceInspections の OpenAPI Explorer ページに移動します。
-
Parameter Configuration タブで、次のようにパラメーターを設定します:この例では、ApsaraDB RDS for MySQL インスタンスを使用します。
パラメーター
値
Engine
MySQL
StartTime
1718776527000
重要タスクの開始時刻。UNIX タイムスタンプをミリ秒単位で指定します。例の値を実際の開始時刻に置き換えてください。
EndTime
1718776827000
重要-
タスクの終了時刻。UNIX タイムスタンプをミリ秒単位で指定します。例の値を実際の終了時刻に置き換えてください。
-
このクエリは、指定された時間範囲内に完了した診断とスコアリングのタスクを返します。タスクが見つからない場合は、インスタンスで手動で診断を実行し、タスクが完了した後に再試行してください。詳細については、「診断とスコアリング」をご参照ください。
InstanceArea
RDS
PageNo
1
PageSize
10
-
-
右側の [SDK サンプルコード] タブで [Python] を選択し、[プロジェクトのダウンロード] をクリックします。
-
パッケージを解凍し、alibabacloud_sample ディレクトリに移動します。
サンプルコードの実行
次のコマンドを実行します:
python sample.py
以下はレスポンスのサンプルです:
{
"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": 1718776798000,
"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": 1718776788000,
"State": 2,
"TaskType": 1
}
],
"PageNo": 1,
"PageSize": 10,
"Total": 1
},
"Message": "Successful",
"RequestId": "B576DACC-D08A-5058-8843-E613CBF474CF",
"Success": true
}
}