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

Alibaba Cloud SDK:PHP 用 Alibaba Cloud SDK V1.0 を構成する

最終更新日:May 17, 2025

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 をキャプチャしてエラーメッセージを取得できます。

完全なサンプルコード

<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Ecs\Ecs;

require_once 'vendor/autoload.php';

try {
    // Resource Access Management (RAM) ユーザーの AccessKey ペアを、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('cn-hangzhou') // リージョン ID。この例では、cn-hangzhou を使用します。
        ->asDefaultClient();

    // リクエストパラメータを構築します。    
    $request = Ecs::v20140526()
        ->describeInstances()
        ->withInstanceIds(json_encode(["i-bp1dXXXXXXXXXXXX"]))
        ->withPageSize(10)
        ->withPageNumber(1);

    $result = $request
        ->debug(true)
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    # 実際のビジネスシナリオに基づいてエラーを慎重に処理し、プロジェクトで例外を無視しないでください。この例に表示されているエラーメッセージは参考用です。
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    # 実際のビジネスシナリオに基づいてエラーを慎重に処理し、プロジェクトで例外を無視しないでください。この例に表示されているエラーメッセージは参考用です。
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

関連情報

  • プロキシ設定やタイムアウト設定などの高度な SDK 設定の詳細については、「高度な設定」をご参照ください。

  • AccessKey ペアの作成方法の詳細については、「AccessKey ペアを作成する」をご参照ください。