すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:AnalyticDB for PostgreSQL SDK for Python の使用方法

最終更新日:Mar 29, 2026

本ガイドでは、Alibaba Cloud SDK for Python を使用して DescribeDBInstances API オペレーションを呼び出す手順について説明します。完了後、ご利用の AnalyticDB for PostgreSQL インスタンス一覧を取得する動作確認済みの Python スクリプトと、今後の開発に活用可能な SDK 環境が構築されます。

前提条件

開始する前に、以下の条件を満たしていることをご確認ください。

  • 少なくとも 1 つの AnalyticDB for PostgreSQL インスタンスを持つ Alibaba Cloud アカウント

  • Python 3 のインストール(バージョン確認には python --version を実行してください。必要に応じて python.org からダウンロードできます)

  • ターミナルでコマンドを実行する基本的な知識

仕組み

AnalyticDB for PostgreSQL API へのすべてのリクエストは、Resource Access Management (RAM) ユーザーの AccessKey を使用して認証されます。SDK は環境変数から認証情報を読み取り、署名付きの API リクエストをサービスのエンドポイントに送信します。

設定は以下の 3 段階で構成されます。

  1. 適切な権限を持つ RAM ユーザーを作成し、その AccessKey を保存します。

  2. AccessKey を環境変数として設定し、SDK パッケージをインストールします。

  3. スクリプトを実行します。SDK が認証、リクエストの署名、応答の解析を自動的に処理します。

手順 1:RAM ユーザーの作成と権限付与

すでに AnalyticDB for PostgreSQL の権限を持つ RAM ユーザーをお持ちの場合は、手順 2 へ進んでください。

  1. RAM コンソールにログインし、ユーザー ページへ移動します。ユーザーの作成 をクリックします。

  2. ログイン名adbpg-openapi-operator を入力し、アクセスモード永続的な AccessKey を使用したアクセス を選択します。OK をクリックします。

  3. 作成後に表示される AccessKey ID および AccessKey Secret を必ず保存してください。AccessKey Secret は再表示されません。

  4. ユーザー ページで、先ほど作成したユーザーを見つけ、権限の追加 をクリックします(操作 列内)。

  5. ポリシーのセクションで AliyunGPDB を検索し、AliyunGPDBReadOnlyAccess を選択します。OK をクリックします。

AliyunGPDBReadOnlyAccess は、インスタンスの照会のみを許可する読み取り専用の権限です。インスタンスの変更も許可する場合は、代わりに AliyunGPDBFullAccess を選択してください。カスタムの権限セットを定義する場合は、「カスタムポリシーの作成」をご参照ください。

手順 2:環境の準備

環境変数の設定

AccessKey をスクリプト内にハードコードせず、環境変数に格納してください。

Linux または macOS の場合:

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 をシステム環境変数に追加し、それぞれに実際の値を設定した後、システムを再起動してください。

以下のプレースホルダーを実際の値に置き換えてください。

プレースホルダー説明
<ACCESS_KEY_ID>手順 1 で保存した AccessKey ID
<ACCESS_KEY_SECRET>手順 1 で保存した AccessKey Secret

依存関係のインストール

SDK は以下の 3 つのパッケージに分割されています。

pip install alibabacloud_credentials      # 認証情報管理および認証機能
pip install alibabacloud_gpdb20160503     # AnalyticDB for PostgreSQL API クライアント
pip install alibabacloud_tea_console      # コンソール出力ユーティリティ

手順 3:DescribeDBInstances オペレーションの呼び出し

以下の自己完結型スクリプトは、DescribeDBInstances を呼び出して応答を出力します。スクリプトをコピーし、region_id の値を置き換えた後、そのまま実行してください。

import os
import json
from alibabacloud_gpdb20160503.client import Client as gpdb20160503Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_gpdb20160503 import models as gpdb_20160503_models
from alibabacloud_tea_util import models as util_models

def create_client() -> gpdb20160503Client:
    # 認証情報を環境変数から読み込み — AccessKey の値をハードコードしないでください
    config = open_api_models.Config(
        access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
        access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
    )
    # 対象リージョンのエンドポイントを設定
    config.endpoint = 'gpdb.aliyuncs.com'
    return gpdb20160503Client(config)

def main():
    client = create_client()

    # リクエストの構築 — RegionId により、特定のリージョン内のインスタンスにフィルターを適用
    request = gpdb_20160503_models.DescribeDBInstancesRequest(
        region_id='cn-hangzhou'  # ご利用の対象リージョンに置き換えます
    )
    runtime = util_models.RuntimeOptions()

    try:
        response = client.describe_db_instances_with_options(request, runtime)
        # 応答の完全な内容を出力して検証します
        print(json.dumps(response.body.to_map(), indent=2, default=str))
    except Exception as err:
        # エラーの種類を確認してトラブルシューティングを行います:
        # - InvalidAccessKeyId: AccessKey ID が不正、または未設定
        # - Forbidden: RAM ユーザーに必要な権限が付与されていない
        # - SignatureDoesNotMatch: AccessKey Secret が不正
        print(f"リクエストが失敗しました:{err}")
        raise

if __name__ == '__main__':
    main()

スクリプトを実行します。

python sample.py

結果の確認

正常に実行された場合、HTTP ステータスコード 200 とともにインスタンスの一覧が返されます。応答は以下のようになります。

{
  "Items": {
    "DBCluster": [
      {
        "CreateTime": "2023-07-31T07:09:32Z",
        "DBInstanceCategory": "Basic",
        "DBInstanceDescription": "gp-bp1j20nrgf91****",
        "DBInstanceId": "gp-bp1j20nrgf91****",
        "DBInstanceMode": "StorageElastic",
        "DBInstanceNetType": "2",
        "DBInstanceStatus": "Running",
        "Engine": "gpdb",
        "EngineVersion": "6.0",
        "ExpireTime": "2023-08-31T16:00:00Z",
        "InstanceDeployType": "cluster",
        "InstanceNetworkType": "VPC",
        "LockMode": "Unlock",
        "LockReason": "0",
        "MasterNodeNum": 1,
        "PayType": "Prepaid",
        "RegionId": "cn-hangzhou",
        "ResourceGroupId": "rg-acfmz7u4zzr****",
        "SegNodeNum": "2",
        "StorageSize": "50",
        "StorageType": "cloud_essd",
        "Tags": {"Tag": []},
        "VSwitchId": "vsw-bp1sxxsodv28ey5****",
        "VpcId": "vpc-bp1ov7as4yvz4kxei****",
        "ZoneId": "cn-hangzhou-j"
      }
    ]
  },
  "PageNumber": 1,
  "PageRecordCount": 1,
  "TotalRecordCount": 1,
  "RequestId": "22996ADD-A917-5F47-AA7E-2D9A08AF1AC2"
}

応答が空の場合(TotalRecordCount: 0)、指定されたリージョンに AnalyticDB for PostgreSQL インスタンスが存在しません。ただし、SDK 自体は正常に動作しています。別のリージョン ID を試してください。

次のステップ

  • 利用可能な AnalyticDB for PostgreSQL の全 API オペレーションを参照:「API の概要

  • 他の API オペレーションやプログラミング言語向けのサンプルコードを API Explorer からダウンロード

  • 他のプログラミング言語向け SDK を参照:「AnalyticDB for PostgreSQL SDK