このトピックでは、Alibaba Cloud SDK for Python をインストールおよび使用して、DescribeDBInstances 操作を呼び出し、ご利用の ApsaraDB RDS インスタンスを照会する方法について説明します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Python 3 のインストール(ダウンロード)
pip(Python 3.4 以降に同梱)
AccessKey ペアを保有する Alibaba Cloud アカウント
手順 1:RAM ユーザーの作成と権限の付与
必要な権限を付与済みの Resource Access Management (RAM) ユーザーを既にお持ちの場合は、この手順はスキップできます。
RAM ユーザーの作成
RAM コンソールにログインし、ユーザー ページへ移動します。
ユーザーの作成 をクリックします。
ログイン名 に
rds-openapi-operatorを設定し、アクセスモード で 永続的な AccessKey を使用したアクセス を選択します。OK をクリックします。AccessKey ID および AccessKey Secret を保存してください。AccessKey Secret は一度のみ表示されます。
権限の付与
ユーザー ページで、対象の RAM ユーザーを検索し、操作 列の 権限の追加 をクリックします。
AliyunRDSを検索し、AliyunRDSReadOnlyAccess ポリシーを選択します。説明AliyunRDSReadOnlyAccess ポリシーは、RDS への読み取り専用アクセスを許可します。完全な管理権限が必要な場合は、代わりに AliyunRDSFullAccess を選択してください。詳細なアクセス制御が必要な場合は、カスタムポリシーの作成をご検討ください。
権限の付与 をクリックします。
手順 2:認証情報の設定
環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET を、ご利用の AccessKey ペアの値に設定します。
Linux または macOS
export ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>Windows
ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET を、ご利用の AccessKey ペアの値でシステム環境変数として登録し、その後システムを再起動します。
手順 3:SDK のインストール
pip install alibabacloud_rds20140815==5.0.1手順 4:コードの作成および実行
以下のコードを含む sample.py というファイルを作成します。この例では、DescribeDBInstances 操作を呼び出して、cn-beijing リージョンの RDS インスタンスを一覧表示します。ご利用のインスタンスが配置されているリージョンに応じて、cn-beijing を 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():
"""環境変数の認証情報を使用して ApsaraDB RDS クライアントを作成します。"""
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():
"""指定されたリージョンの RDS インスタンスを照会します。"""
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"エラー: {e}", file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
main()コードを実行します:
python sample.py代替方法:OpenAPI ポータルからサンプルコードをダウンロード
カスタムパラメーターでサンプルコードを生成・ダウンロードするには、以下の手順を実行します。
OpenAPI ポータルの DescribeDBInstances ページを開きます。
パラメーター タブで、RegionId を
cn-beijingまたはご利用のインスタンスのリージョンに設定します。SDK サンプルコード タブで、Python を選択し、プロジェクトのダウンロード をクリックします。
ダウンロードしたパッケージを展開し、
alibabacloud_sampleディレクトリに移動します。サンプルを実行します:
python sample.py
サンプル応答
正常な応答は、以下のようになります。
{
"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
}次のステップ
すべての操作については、ApsaraDB RDS API リファレンスをご参照ください。
その他の API 操作向けのサンプルコードを生成するには、「OpenAPI ポータル」をご利用ください。