このトピックでは、Python 用 Service Catalog SDK を使用して ListPortfolios 操作を呼び出し、プロダクトポートフォリオをクエリする方法について説明します。
ステップ 1:API ドキュメントを表示する
ListPortfolios 操作のリンクをクリックして、「関数別の操作リスト」トピックで API リファレンスを表示します。API リファレンスでは、リクエストパラメータや権限などの情報を取得できます。
ステップ 2:RAM ユーザーを作成し、RAM ユーザーに権限を付与する
ID
ListPortfolios 操作は、Alibaba Cloud アカウントを使用するか、Resource Access Management(RAM)ユーザーとして、または RAM ロールを引き受けることによって呼び出すことができます。 3 つの方法の違いの詳細については、「ID」をご参照ください。
この例では、RAM ユーザーを使用してこの操作を呼び出します。
RAM コンソールにログオンします。 RAM ユーザーを作成し、アクセスモードとして OpenAPI アクセスを選択します。 RAM ユーザーの AccessKey ペアが作成されます。 AccessKey ペアは機密として扱う必要があります。 詳細については、「RAM ユーザーの作成」をご参照ください。
権限付与
RAM コンソールの ユーザー ページに移動します。 作成した RAM ユーザーを見つけ、[権限の追加] 列の [アクション] をクリックします。
[権限の付与] パネルで、[ポリシー] セクションの検索ボックスにキーワード
servicecatalog
を入力し、最小権限の原則(PoLP)に基づいて必要なシステムポリシーを選択します。AliyunServiceCatalogAdminFullAccess:Service Catalog 管理者の管理権限。
AliyunServiceCatalogAdminReadOnlyAccess:Service Catalog 管理者の読み取り専用権限。
説明システムポリシーがビジネス要件を満たしていない場合は、カスタムポリシーを作成できます。 詳細については、「カスタムポリシーの作成」および「RAM 権限付与」をご参照ください。
この例では、AliyunServiceCatalogAdminReadOnlyAccess を選択します。
[権限の付与] をクリックして、権限付与を完了します。
認証情報
[ユーザー] ページで、作成した RAM ユーザーを見つけ、その名前をクリックします。 表示されるページで、[認証] タブの [accesskey] セクションで AccessKey ID を表示します。 また、[accesskey の作成] をクリックして AccessKey ペアを作成することもできます。 詳細については、「AccessKey ペアの作成」をご参照ください。
RAM ユーザーの AccessKey シークレットは、RAM ユーザーの作成時にのみ表示されます。 RAM ユーザーの作成後、AccessKey シークレットを表示することはできません。 AccessKey シークレットを記録し、機密として扱ってください。
ステップ 3:操作を呼び出す
このトピックでは、Python 用 Service Catalog SDK を使用して API 操作を呼び出します。 同様の方法で、他のプログラミング言語用の SDK を使用することもできます。 詳細については、SDK センターの Service Catalog をご参照ください。 また、ビジネス要件に基づいて、他の方法を使用して API 操作を呼び出すこともできます。 詳細については、「呼び出し方法」をご参照ください。
Python をインストールする
Python 3 をダウンロードしてインストールします。
Python 3 をインストールしたら、ターミナルで python --version
コマンドを実行して、Python のバージョンを確認します。
環境変数を設定する
この例では、AccessKey ペアを管理するために環境変数を設定します。 これにより、AccessKey ペアをビジネスコードにハードコーディングすることによって発生するセキュリティリスクを防ぎます。 詳細については、「Linux、macOS、および Windows での環境変数の設定」をご参照ください。
依存関係をインストールする
pip install alibabacloud_credentials
pip install alibabacloud_servicecatalog20210901==1.1.4
pip install alibabacloud_tea_console
サンプルコードをダウンロードする
OpenAPI ポータルの ListPortfolios デバッグページに移動します。
リクエストパラメータを指定し、[呼び出し開始] をクリックして、呼び出しが成功したかどうかを確認します。
[SDK サンプルコード] タブで、言語として [python] を選択します。 [プロジェクトのダウンロード] をクリックして、Python 用 Service Catalog SDK のサンプルコードパッケージをダウンロードします。
デバイスでサンプルコードパッケージを解凍し、[alibabacloud_sample] ディレクトリに移動します。
サンプルコードを実行する
次のコマンドを実行します。
python sample.py
次のサンプル出力が返されます。
{
"headers": {
"date": "Fri, 14 Jul 2023 06:29:19 GMT",
"content-type": "application/json;charset=utf-8",
"content-length": "577",
"connection": "keep-alive",
"keep-alive": "timeout=25",
"access-control-allow-origin": "*",
"access-control-expose-headers": "*",
"x-acs-request-id": "A453CDA5-B557-57A5-A05B-48F14646****",
"x-acs-trace-id": "131ed76192b0df2396bb6fb51342****",
"etag": "5+OC5aIgno6FJurD4O1s****"
},
"statusCode": 200,
"body": {
"PageNumber": 1,
"PageSize": 10,
"PortfolioDetails": [{
"CreateTime": "2023-07-14T06:11:31Z",
"Description": "",
"PortfolioArn": "acs:servicecatalog:cn-hangzhou:151266687691****:portfolio/port-bp1ac4uk39****",
"PortfolioId": "port-bp1ac4uk39****",
"PortfolioName": "test",
"ProviderName": "test"
}, {
"CreateTime": "2022-09-23T01:32:59Z",
"Description": "",
"PortfolioArn": "acs:servicecatalog:cn-hangzhou:151266687691****:portfolio/port-bp1rfbwd2f****",
"PortfolioId": "port-bp1rfbwd2f****",
"PortfolioName": "abc",
"ProviderName": "abc"
}],
"RequestId": "A453CDA5-B557-57A5-A05B-48F1464622A4",
"TotalCount": 2
}
}