API 呼び出しを容易にするために、プロジェクトに Alibaba Cloud SDK を統合することをお勧めします。 SDK は開発プロセスを簡素化し、機能を迅速に統合し、O&M コストを大幅に削減します。このトピックでは、プロジェクトに PHP 用 Alibaba Cloud SDK V1.0 を統合し、SDK を使用して開発する方法について説明します。
前提条件
PHP 5.5 以降がインストールされている。
PHP 用 Alibaba Cloud SDK V1.0 をインストールする
PHP 用 Alibaba Cloud SDK V1.0 をインストールすると、コアライブラリが自動的にインストールされます。そのため、SDK のみをインストールする必要があります。
サービス SDK
Alibaba Cloud サービスの SDK V1.0 は、API 操作のリクエストオブジェクトとレスポンスオブジェクト、および返される値をシリアル化するために使用される Unmarshaller オブジェクトを提供します。次のサンプルコードは、Elastic Compute Service (ECS) の SDK V1.0 を依存関係として構成する方法を示しています。
# ECS V1.0 SDK
composer require alibabacloud/ecs各 Alibaba Cloud サービスの SDK V1.0 は、alibabacloud/${サービス名} 形式で命名されています。各 Alibaba Cloud サービスの SDK V1.0 の詳細については、「SDK Center」をご覧ください。
コアライブラリ
SDK のコアライブラリには、クライアントオブジェクト、署名ロジック、およびエラー処理ロジックが含まれており、これらは API 操作を呼び出すために必要な情報です。汎用呼び出しを行う、または特定のバージョンのコアライブラリをインストールするには、次のコマンドを実行します。
composer require alibabacloud/client最新バージョンの詳細については、「alibabacloud/client - Packagist」をご参照ください。
SDK を使用する
次の例は、Alibaba Cloud SDK V1.0 を使用して ECS の DescribeInstances API 操作を呼び出す方法を示しています。
1. リクエストクライアントを初期化する
すべての API 操作は、コアライブラリによって提供される Client オブジェクトを使用して呼び出されます。API 操作を呼び出す前に、リクエストクライアントを初期化する必要があります。この例では、リクエストクライアントは AccessKey ペアを使用して初期化されます。詳細については、「アクセス認証情報を管理する」をご参照ください。
この例では、AccessKey ペアは ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数から取得されます。これらの環境変数は、コードを実行する前に構成する必要があります。詳細については、「Linux、macOS、および Windows で環境変数を構成する」をご参照ください。
use AlibabaCloud\Client\AlibabaCloud;
// 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'))
->regionId('<リージョン ID>')
->asDefaultClient();
2. リクエストオブジェクトを作成する
SDK によって提供されるリクエストオブジェクトを使用して、リクエストパラメータをカプセル化できます。
use AlibabaCloud\Ecs\Ecs;
// リクエストパラメータを構築します。
$request = Ecs::v20140526()
->describeInstances() // API 操作のリクエストオブジェクトを作成します。
->withInstanceIds(json_encode(["i-bp1dXXXXXXXXXXXX"])) // InstanceIds リクエストパラメータ。インスタンスの ID を指定します。
->withPageSize(10) // PageSize リクエストパラメータ。取得するエントリ数を指定します。
->withPageNumber(1); // PageNumber リクエストパラメータ。取得するページ番号を指定します。
3. API リクエストを開始する
request() 関数を呼び出して、API リクエストを開始します。
$result = $request
->debug(true) // 詳細を出力します。このフィールドが false に設定されている場合、詳細は出力されません。
->request(); // リクエストを実行します。
print_r($result->toArray()); // API リクエストへのレスポンスを出力します。
4. エラーを処理する
API 操作の呼び出し時にエラーがトリガーされた場合は、ServerException および ClientException をキャプチャしてエラーメッセージを取得できます。
関連情報
プロキシ設定やタイムアウト設定などの高度な SDK 設定の詳細については、「高度な設定」をご参照ください。
AccessKey ペアの作成方法の詳細については、「AccessKey ペアを作成する」をご参照ください。