AWS SDK for PHP バージョン 3 のコードでサービスクライアントを設定する - AWS SDK for PHP

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

AWS SDK for PHP バージョン 3 のコードでサービスクライアントを設定する

外部でサービスクライアントを設定する代わりに、または追加で、プログラムでコードでサービスクライアントを設定できます。

サービスクライアントをコードで設定することで、利用可能な多くのオプションをきめ細かく制御できます。外部で設定できる設定のほとんどは、コードで設定することもできます。

コードの基本設定

オプションの連想配列をクライアントのコンストラクタに渡すことで、コードでサービスクライアントを作成して設定できます。次の例では、連想配列には、クライアントが使用する「リージョン」オプションのみが含まれます。

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException; //Create an S3Client $s3 = new S3Client([ 'region' => 'eu-south-2' ]);

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

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

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

Sdk クラスの使用

Aws\Sdk クラスは、クライアントファクトリとして機能し、複数のクライアント間で共有される設定オプションを管理するために使用されます。特定のクライアントコンストラクタに指定できる多くのオプションを、Aws\Sdk クラスに対しても指定できます。それらのオプションは、各クライアントコンストラクタにも適用されます。

インポート

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

サンプルコード

// The same options that can be provided to a specific client constructor can also be supplied to the Aws\Sdk class. // Use the us-west-2 region and latest version of each client. $sharedConfig = [ 'region' => 'us-west-2' ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Create an Amazon S3 client using the shared configuration data. $client = $sdk->createS3();

すべてのクライアント間で共有されるオプションは、ルートレベルのキーと値のペアに配置されます。サービス固有の設定データは、サービスの名前空間と同じキー (「S3」、DynamoDb」など) を持つ関連付け配列で提供できます。

$sdk = new Aws\Sdk([ 'region' => 'us-west-2', 'DynamoDb' => [ 'region' => 'eu-central-1' ] ]); // Creating an Amazon DynamoDb client will use the "eu-central-1" AWS Region. $client = $sdk->createDynamoDb();

サービス固有の設定値は、サービス固有の値とルートレベルの値の共用体です (つまり、サービス固有の値がルートレベルの値にシャローマージされている)。

注記

アプリケーションでクライアントの複数のインスタンスを使用している場合は、Sdk クラスを使用してクライアントを作成することを強くお勧めします。Sdk クラスでは、各 SDK クライアントに対して同じ HTTP クライアントが自動的に使用されるため、異なるサービス用の SDK クライアントでノンブロッキング HTTP リクエストを実行できます。SDK クライアントで同じ HTTP クライアントを使用していない場合は、SDK が送信する HTTP リクエストによってサービス間でのプロミスオーケストレーションがブロックされます。