前書き
Tencent Cloud Developer Tool Kit(SDK)3.0へようこそ。SDK3.0はクラウドAPI3.0プラットフォームのサポートツールです。現在、cvm、vpc、cbsなどの製品がサポートされており、以降のすべてのクラウドサービス製品が接続されます。SDKの新しいバージョンが統合されました。さまざまな言語バージョンのSDKは、同じ使用方法、同じインターフェイス呼び出し方法、および統合されたエラーコードと戻りパッケージ形式を備えています。Python開発者がTencentCloud製品APIをデバッグしてアクセスしやすくするために、ここではPython用のTencent Cloud開発キットの概要と、開発キットを初めて使用する簡単な例を示します。Tencent Cloud Python SDKをすばやく入手して、呼び出しを開始しましょう。
依存環境
- 依存環境:Python 2.7、3.6-3.9バージョン。
- TencentCloudコンソールから対応する製品をアクティブ化します。
- SecretID、SecretKey、および呼び出し元アドレス(エンドポイント)を取得します。エンドポイントの一般的な形式は* .tencentcloudapi.comです。たとえば、CVMの呼び出し元アドレスはcvm.tencentcloudapi.comです。詳細については、各製品の説明を参照してください。 。
インストールを取得する
Python SDKをインストールする前に、セキュリティ認証情報を取得してください。クラウドAPIを初めて使用する前に、ユーザーはまずTencent Cloudコンソールでセキュリティ資格情報を申請する必要があります。セキュリティ資格情報にはSecretIDとSecretKeyが含まれます。SecretIDはAPI呼び出し元のIDを識別するために使用され、SecretKeyは署名文字列とサーバーを暗号化します。最後に署名文字列を検証するために使用されるキー。SecretKeyは、漏洩を防ぐために厳密に保管する必要があります。
Pip経由でインストール(推奨)
Tencent Cloud API Python SDKは、pipインストール方法を使用してプロジェクトにインストールできます。pipがプロジェクト環境にインストールされていない場合は、pipの公式Webサイトで詳細を参照してください 。
pipを介してインストールまたは更新するには、コマンドラインで次のコマンドを実行します。
pip install --upgrade tencentcloud-sdk-python
たとえば、中国本土のユーザーは、国内のミラーソースを使用してダウンロード速度を上げることができますpip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python
。
python2環境とpython3環境の両方がある場合は、pip3コマンドを使用してpython3環境をインストールする必要があることに注意してください。
クラウドサーバーCVMなどの特定の製品のパッケージのみを使用する場合は、個別にインストールできますが、一般的なパッケージと同時に機能することはできません。pip install --upgrade tencentcloud-sdk-python-common tencentcloud-sdk-python-cvm
ソースパッケージを介してインストール
Githubコードホスティングアドレスに移動して 最新のコードをダウンロードし、解凍します
$ cd tencentcloud-sdk-python
$ python setup.py install
例
例として、クエリインスタンスリストインターフェイスを取り上げます。
簡易版
tencentcloud.common輸入資格から tencentcloud.common.exception.tencent_cloud_sdk_exceptionインポートTencentCloudSDKExceptionから tencentcloud.cvm.v20170312輸入cvm_clientから、モデルは 試してみてください。 CRED = credential.Credential( "秘密識別情報Secret"、 "秘密鍵") クライアント= cvm_client.CvmClient(CRED、 "ap-shanghai") req = models.DescribeInstancesRequest() resp = client.DescribeInstances(req) print(resp.to_json_string()) ただし、TencentCloudSDKException as err: print(err)
詳細版
#-*-コーディング:utf-8-*- import sys import logging from tencentcloud.common import credential from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException #対応する製品モジュールのクライアントモデルをインポートします。 from tencentcloud.cvm.v20170312 import cvm_client、models #tencentcloud.common.profile.client_profileからオプションの構成クラス をインポートしますimport ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile try: #認証オブジェクトをインスタンス化し、入力パラメーターを渡す必要がありますTencent CloudアカウントsecretId、secretKey、ここでもキーペアの機密性に注意を払う必要があります cred = credential.Credential( "SecretId"、 "SecretKey") #httpオプションをインスタンス化します。オプションで、特別な要件をスキップすることはできません。 httpProfile = HttpProfile() #プロキシアクセスインターフェイスを指定する必要がある場合は、次のようにhpを初期化できます。 #httpProfile = HttpProfile(proxy = "http:// username:password @ Proxy IP:Proxy port") httpProfile.protocol = "https"#外部ネットワーク相互接続ネットワーク環境でhttpプロトコル(デフォルトはhttpsプロトコル)をサポートします。 httpsプロトコルを使用することをお勧めします httpProfile.keepAlive = True#状態を保持します。デフォルトはFalseです httpProfile.reqMethod = "GET"#リクエストを取得します(デフォルトはリクエスト後です) httpProfile.reqTimeout = 30#リクエストのタイムアウト時間(秒単位)(デフォルト) 60秒) httpProfile .endpoint = "cvm.ap-shanghai.tencentcloudapi.com"#アクセスドメインドメイン名を指定します(最も近いアクセスはデフォルトです) #クライアントオプションをインスタンス化します。オプションで、特別なものがない場合はスキップできます。要件。 clientProfile = ClientProfile() clientProfile.signMethod = "TC3-HMAC-SHA256"#署名アルゴリズムを指定します clientProfile.language = "en-US"#英語(デフォルトは中国語)の clientProfileを表示するように指定します。 client = cvm_client.CvmClient(cred、 "ap-shanghai"、clientProfile) #次の方法でログを出力します。log_formatを設定することもできます。デフォルトは '%(asctime)s%(process)d%(filename)s L %(lineno)s%(levelname)s%(message)s ' #client.set_stream_logger(stream = sys.stdout、level = logging.DEBUG) #client.set_file_logger(file_path = "/ log"、level = logging.DEBUG )ログファイル最大10ファイルのスクロール出力、1つのファイルの最大サイズは512MB #client.set_default_logger()すべてのログハンドラーを削除し、デフォルトでは出力なし #cvmインスタンス情報クエリ要求オブジェクトをインスタンス化すると、各インターフェイスが対応しますリクエストオブジェクトに。 req = models.DescribeInstancesRequest() #リクエストパラメータを入力します。リクエストオブジェクトのメンバー変数は、対応するインターフェイスの入力パラメータです。 #公式ウェブサイトインターフェースドキュメントからリクエストパラメータの定義を表示するか、リクエストオブジェクトの定義にジャンプできます。 respFilter = models.Filter()#ゾーンのディメンションでcvmインスタンスをクエリするためのFilterオブジェクトを作成します。 respFilter.Name = "zone" respFilter.Values = ["ap-shanghai-1"、 "ap-shanghai-2"] req.Filters = [respFilter] #FiltersはFilterオブジェクトのリストです #クライアントオブジェクトのDescribeInstancesメソッドを呼び出してリクエストを開始します。リクエストメソッド名はリクエストオブジェクトに対応していることに注意してください。 #返される応答は、リクエストオブジェクトに対応するDescribeInstancesResponseクラスのインスタンスです。 resp = client.DescribeInstances(req)#json 形式の文字列を出力しますback package print(resp.to_json_string(indent = 2)) #単一の値を取り出すこともできます。 #返されたフィールドの定義は、公式Webサイトのインターフェイスドキュメントから表示するか、応答オブジェクトの定義にジャンプできます。 errとしてのTencentCloudSDKExceptionを除く print(resp.TotalCount): print(err)
その他の例
より詳細な例は、githubのexamplesディレクトリにあります。
関連する構成
プロキシ
プロキシ環境がある場合は、2つの方法でプロキシを設定できます
- HttpProfileを初期化するときにプロキシを指定します。例を参照してください
- システム環境変数を設定する必要があります
https_proxy
そうしないと、正常に呼び出されず、接続タイムアウトの例外がスローされる可能性があります。
証明書の問題
オペレーティングシステムがMacにPython3.6以降でインストールされている場合、証明書エラーが発生する可能性がありますError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056).
。これは、Macオペレーティングシステムでは、Pythonがシステムのデフォルト証明書を使用せず、証明書自体を提供しないためです。HTTPSリクエストを行う場合は、certifi
ライブラリが提供する証明書を使用する必要 がありますが、SDKは指定をサポートしていないため、sudo "/Applications/Python 3.6/Install Certificates.command"
この問題を解決するには、コマンドを使用して証明書をインストールする必要があります 。
Python 2バージョンでも同じ問題が発生することはありませんが、個々のユーザー環境で同様の状況が観察されていることは事実であり、これもsudo /Applications/Python 2.7/Install Certificates.command
解決できます 。