AWS SDK for PHP バージョン 3 を使用した AWS のサービス リクエストの実行 - AWS SDK for PHP

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS SDK for PHP バージョン 3 を使用した AWS のサービス リクエストの実行

SDK リクエストワークフローの概要

AWS SDK for PHP バージョン 3 の操作は、すべての で一貫したパターンに従います AWS のサービス。基本的なワークフローには、主に 3 つのステップがあります。

  1. サービスクライアントを作成する — 使用する のクライアントオブジェクトをインスタンス化 AWS のサービス します。

  2. オペレーションの実行 — サービスの API のオペレーションに対応するクライアントでメソッドを呼び出します。

  3. 結果の処理 — 成功時に返された配列のような結果オブジェクトを使用するか、失敗時にスローされた例外を処理します。

以下のセクションでは、サービスクライアントを作成および設定する方法から始めて、これらの各ステップについて詳しく説明します。

基本的なサービスクライアントの作成

クライアントのコンストラクタにオプションの連想配列を渡すことによって、クライアントを作成できます。

インポート

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

サンプルコード

//Create an S3Client $s3 = new Aws\S3\S3Client([ 'region' => 'us-east-2' // Since version 3.277.10 of the SDK, ]); // the 'version' parameter defaults to 'latest'.

オプションの「version」パラメーターに関する情報は、「設定オプション」のトピックに記載されています。

このクライアントには明示的に認証情報を指定していないことがわかります。これは、SDK がデフォルトの認証情報プロバイダーチェーンを使用して認証情報を検索するためです。

すべての一般的なクライアント設定オプションについては、「AWS SDK for PHP バージョン 3 のクライアントコンストラクタオプション」で詳しく説明されています。クライアントに指定されるオプションの配列は、作成するクライアントによって異なります。これらのカスタムクライアント設定オプションについては、各クライアントの API ドキュメントで説明されています。

上記の例は基本的なクライアント作成を示していますが、特定の要件を満たすようにサービスクライアントをカスタマイズできます。コードによるサービスクライアントの設定の詳細については、「」を参照してくださいAWS SDK for PHP バージョン 3 のコードでサービスクライアントを設定する。外部設定ファイルまたは環境変数を使用してサービスクライアントを設定する必要がある場合は、「」を参照してくださいAWS SDK for PHP バージョン 3 のサービスクライアントを外部で設定する

リクエストの実行

クライアントオブジェクトで同じ名前の メソッドを呼び出すことで、サービスリクエストを行うことができます。例えば、Amazon S3 PutObject オペレーションを実行するには、 Aws\S3\S3Client::putObject()メソッドを呼び出します。

インポート

require 'vendor/autoload.php'; use Aws\S3\S3Client;

サンプルコード

// Use the us-east-2 region and latest version of each client. $sharedConfig = [ 'profile' => 'default', 'region' => 'us-east-2' ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Use an Aws\Sdk class to create the S3Client object. $s3Client = $sdk->createS3(); // Send a PutObject request and get the result object. $result = $s3Client->putObject([ 'Bucket' => 'my-bucket', 'Key' => 'my-key', 'Body' => 'this is the body!' ]); // Download the contents of the object. $result = $s3Client->getObject([ 'Bucket' => 'my-bucket', 'Key' => 'my-key' ]); // Print the body of the result by indexing into the result object. echo $result['Body'];

クライアントで使用可能なオペレーションおよび入力と出力の構造体は、サービス記述ファイルに基づいて実行時に定義されます。クライアントを作成するときに、サービスモデルのversionパラメータ (2006-03-01最新など) を指定しない場合、クライアントはデフォルトで最新バージョンになります。SDK は、提供されたバージョンに基づいて、対応する設定ファイルを見つけます。

putObject() などのオペレーションメソッドはすべて、オペレーションのパラメーターを表す連想配列である単一の引数を受け入れます。この配列の構造体 (および結果オブジェクトの構造体) は、SDK の API ドキュメント (たとえば、putObject オペレーションの API ドキュメントを参照) で各オペレーションに対して定義されています。

HTTP ハンドラーオプション

特別な @http パラメーターを使用することによって、基になるハンドラーでリクエストがどのように実行されるかを調整することもできます。@http パラメータに含めることができるオプションは、「http」クライアントオプションを使用してそのクライアントをインスタンス化するときに設定できるオプションと同じです。

// Send the request through a proxy $result = $s3Client->putObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'my-key', 'Body' => 'this is the body!', '@http' => [ 'proxy' => 'http://192.168.16.1:10' ] ]);

結果オブジェクトの使用

オペレーションの実行が正常に終了すると、Aws\Result オブジェクトが返されます。SDK では、サービスの RAW XML データまたは RAW JSON データを返すのではなく、レスポンスデータが連想配列の構造体に配置されます。特定のサービスおよび基になるレスポンス構造体に関する知識に基づいて、データの一部の側面が正規化されます。

関連付け PHP 配列などのAWS\Resultオブジェクトからデータにアクセスできます。

インポート

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

サンプルコード

// Use the us-east-2 region and latest version of each client. $sharedConfig = [ 'profile' => 'default', 'region' => 'us-east-2', ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Use an Aws\Sdk class to create the S3Client object. $s3 = $sdk->createS3(); $result = $s3->listBuckets(); foreach ($result['Buckets'] as $bucket) { echo $bucket['Name'] . "\n"; } // Convert the result object to a PHP array $array = $result->toArray();

結果オブジェクトの内容は、実行されたオペレーションやサービスのバージョンによって異なります。各 API オペレーションの結果の構造体は、各オペレーションの API ドキュメントに記載されています。

SDK には、JSON データや PHP 配列の検索および操作に使用される DSL である JMESPath が組み込まれています。結果オブジェクトには、より詳細な宣言によって結果からデータを抽出できる search() メソッドが含まれています。

サンプルコード

$s3 = $sdk->createS3(); $result = $s3->listBuckets();
$names = $result->search('Buckets[].Name');