このトピックでは、Service Catalog SDK for Python を使用して ListPortfolios 操作を呼び出し、製品ポートフォリオをクエリする方法について説明します。
ステップ 1:API ドキュメントを表示する
「API 概要」を読み、製品ポートフォリオリストをクエリするための OpenAPI である「製品ポートフォリオリストのクエリ」を選択します。この API の呼び出しに必要なパラメーターと権限については、API ドキュメントをご参照ください。
ステップ 2:RAM ユーザーを作成し、RAM ユーザーに権限を付与する
ID
Alibaba Cloud アカウント、Resource Access Management (RAM) ユーザーとして、または RAM ロールを引き受けることで、ListPortfolios 操作を呼び出すことができます。3 つのメソッドの違いの詳細については、「ID」をご参照ください。
この例では、RAM ユーザーを使用してこの操作を呼び出します。
RAM コンソールにログオンします。 RAM ユーザーを作成し、アクセスモードとして OpenAPI アクセスを選択します。 RAM ユーザーの AccessKey ペアが作成されます。 AccessKey ペアは機密として扱う必要があります。 詳細については、「RAM ユーザーの作成」をご参照ください。
権限付与
コンソール
RAM コンソールにログインします。
[ユーザー] ページで、作成したユーザーを見つけ、[操作] 列の [権限の追加] をクリックします。

[承認の追加] パネルで、RAM ユーザーに権限を付与できます。
[リソース範囲] で、[アカウントレベル] を選択します。これは一般的な設定です。
[アクセスポリシー]: テキストボックスで
servicecatalogを検索し、最小権限の原則 (PoLP) に基づいてアクセスポリシーを選択します。AliyunServiceCatalogAdminFullAccess: 管理者として Service Catalog を管理する権限。
AliyunServiceCatalogAdminReadOnlyAccess: 読み取り専用管理者として Service Catalog にアクセスする権限。
説明システムポリシーが要件を満たさない場合は、カスタムポリシーを作成できます。詳細については、「カスタム権限ポリシーの作成」および「承認情報」をご参照ください。
この例では、AliyunServiceCatalogAdminReadOnlyAccess システムポリシーを使用します。
[承認の追加を確認] をクリックします。
OpenAPI
カスタムポリシーの付与
CreatePolicy を呼び出して カスタムポリシーを作成できます。詳細については、「アクセスポリシーの基本要素」および「アクセスポリシーの例ライブラリの概要」をご参照ください。
AttachPolicyToUser 操作を呼び出して、指定した RAM ユーザーにアクセスポリシーをアタッチします。
PolicyTypeパラメーターをCustomに設定します。
システムポリシーの付与
AttachPolicyToUser 操作を呼び出して、指定した RAM ユーザーにアクセスポリシーをアタッチします。PolicyType パラメーターを System に、PolicyName パラメーターを AliyunServiceCatalogAdminFullAccess または AliyunServiceCatalogAdminReadOnlyAccess に設定します。
AliyunServiceCatalogAdminFullAccess: 管理者として Service Catalog を管理する権限。
AliyunServiceCatalogAdminReadOnlyAccess: 読み取り専用管理者として Service Catalog にアクセスする権限。
この例では、AliyunServiceCatalogAdminReadOnlyAccess システムポリシーを使用します。
認証情報
[ユーザー] ページで、作成した RAM ユーザーを見つけ、その名前をクリックします。 表示されるページで、[認証] タブの [accesskey] セクションで AccessKey ID を表示します。 また、[accesskey の作成] をクリックして AccessKey ペアを作成することもできます。 詳細については、「AccessKey ペアの作成」をご参照ください。
RAM ユーザーの AccessKey シークレットは、RAM ユーザーの作成時にのみ表示されます。 RAM ユーザーの作成後、AccessKey シークレットを表示することはできません。 AccessKey シークレットを記録し、機密として扱ってください。
ステップ 3:操作を呼び出す
このトピックでは、Service Catalog SDK for Python を使用して API 操作を呼び出します。他のプログラミング言語の SDK も同様の方法で使用できます。詳細については、SDK センターの「Service Catalog」をご参照ください。必要に応じて、他のメソッドを使用して API 操作を呼び出すこともできます。詳細については、「呼び出しメソッド」をご参照ください。
Python をインストールする
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
}
}