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

Alibaba Cloud SDK:タイムアウト期間の設定

最終更新日:Jan 15, 2025

適切なタイムアウト期間を設定することで、リクエストが一定期間内に処理されるようにし、消費されるリソースを削減し、プログラムの堅牢性と信頼性を向上させることができます。このトピックでは、Alibaba Cloud SDK for PHP V1.0でタイムアウト期間を設定する方法について説明します。

設定方法

説明

タイムアウト期間を設定する方法の優先順位は、リクエストの開始、クライアントの使用、デフォルト設定の使用の順に降順でリストされています。

  • デフォルト設定を使用します。接続リクエストのデフォルトのタイムアウト期間は 5 秒で、読み取りリクエストのデフォルトのタイムアウト期間は 10 秒です。

  • タイムアウト期間を設定するリクエストを開始します。

    <?php
    
    require_once 'vendor/autoload.php';
    
    use AlibabaCloud\Client\AlibabaCloud;
    use AlibabaCloud\Client\Exception\ClientException;
    use AlibabaCloud\Client\Exception\ServerException;
    use AlibabaCloud\Ecs\Ecs;
    
    try {
        // ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認します。
        AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'))
            ->asDefaultClient();
        $request = Ecs::v20140526()->describeRegions();
        $result = $request
            ->scheme('https')
            ->version('2014-05-26')
            ->product('Ecs')
            ->action('DescribeRegions')
            ->regionId('cn-hangzhou')
            ->host("ecs.cn-hangzhou.aliyuncs.com")
            ->connectTimeout(5) // 接続リクエストのタイムアウト期間を 5 秒に設定します。
            ->timeout(10) // 読み取りリクエストのタイムアウト期間を 10 秒に設定します。
            ->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;
    }
  • クライアントを使用してタイムアウト期間を設定します。

    <?php
    
    require_once 'vendor/autoload.php';
    
    use AlibabaCloud\Client\AlibabaCloud;
    use AlibabaCloud\Client\Exception\ClientException;
    use AlibabaCloud\Client\Exception\ServerException;
    use AlibabaCloud\Ecs\Ecs;
    
    try {
        // ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認します。
        AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'))
            ->asDefaultClient()
            ->connectTimeout(5) // 接続リクエストのタイムアウト期間を 5 秒に設定します。
            ->timeout(10); // 読み取りリクエストのタイムアウト期間を 10 秒に設定します。
        $request = Ecs::v20140526()->describeRegions();
        $result = $request
            ->scheme('https')
            ->version('2014-05-26')
            ->product('Ecs')
            ->action('DescribeRegions')
            ->regionId('cn-hangzhou')
            ->host("ecs.cn-hangzhou.aliyuncs.com")
            ->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;
    }