AWS SDK for PHP バージョン 3 の設定 - AWS SDK for PHP

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

AWS SDK for PHP バージョン 3 の設定

クライアントコンストラクタは、クライアントコンストラクタまたは Aws\Sdk クラスで指定できます。特定のタイプのクライアントに指定されるオプションの配列は、作成するクライアントによって異なります。これらのカスタムクライアント設定オプションについては、各クライアントの API ドキュメントに記載されています。

一部の設定オプションでは、環境変数または AWS 設定ファイルに基づいてデフォルト値がチェックおよび使用されることに注意してください。デフォルトでは、チェックされる設定ファイルは、ホームディレクトリの .aws/configで、通常、~/.aws/config です。ただし、環境変数 AWS_CONFIG_FILE を使用して、デフォルトの設定ファイルの場所を設定できます。例えば、これは open_basedir などで特定のディレクトリへのファイルアクセスを制限する場合に便利です。

共有 AWS configファイルとcredentialsファイルの場所とフォーマットの詳細については、AWS SDKs and Tools リファレンスガイド」の「設定」を参照してください。

設定ファイルまたは環境変数として設定 AWS できるすべてのグローバル設定の詳細については、AWS SDKs and Tools リファレンスガイド「設定と認証設定のリファレンス」を参照してください。

以下の例では、Amazon S3 のクライアントコンストラクタにオプションを渡す方法を示しています。

use Aws\S3\S3Client; $options = [ 'region' => 'us-west-2', 'version' => '2006-03-01', 'signature_version' => 'v4' ]; $s3Client = new S3Client($options);

クライアントの作成の詳細については、「基本使用法ガイド」を参照してください。

api_provider

タイプ

callable

タイプ、サービス、バージョン引数を受け入れ、対応する設定データの配列を返す呼び出し可能な PHP。タイプの値は apiwaiterpaginator のいずれかです。

デフォルトでは、SDK は、API の src/dataフォルダから Word ファイルをロードAws\Api\FileSystemApiProviderする のインスタンスを使用しますSDK。

認証情報

タイプ

array|Aws\CacheInterface|Aws\Credentials\CredentialsInterface|bool|callable

特定の認証情報インスタンスを使用するための Aws\Credentials\CredentialsInterface オブジェクトを渡します。以下は、IAM Identity Center 認証情報プロバイダーを使用する必要があることを指定します。このプロバイダーは SSO 認証情報プロバイダーとも呼ばれます。

$credentials = Aws\Credentials\CredentialProvider::sso('profile default'); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $credentials ]);

名前付きプロファイルを使用する場合は、前の例の「default」をプロファイル名に置き換えてください。名前付きプロファイルの設定の詳細については、「 AWS SDKs and Tools リファレンスガイド」の「共有ファイルconfig」とcredentials「ファイル」を参照してください。

使用する認証情報プロバイダを指定せず、認証情報プロバイダチェーンに依存している場合、認証失敗によるエラーメッセージは通常一般的なものです。有効な認証情報を確認しているソースのリストの最後のプロバイダから生成されますが、そのプロバイダは使用しようとしているプロバイダではない可能性があります。どの認証情報プロバイダを使用するかを指定すると、表示されるエラーメッセージはそのプロバイダのみから出力されるため、より有用で関連性の高いものになります。認証情報をチェックしたソースチェーンの詳細については、AWS SDKs and Tools リファレンスガイド「認証情報プロバイダーチェーン」を参照してください。

Null 認証情報を使用し、リクエストに署名しないように、false を渡します。

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => false ]);

関数を使用して認証情報を作成するために、呼び出し可能な認証情報プロバイダ関数を渡します。

use Aws\Credentials\CredentialProvider; // Only load credentials from environment variables $provider = CredentialProvider::env(); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $provider ]);

複数のプロセスにわたってデフォルトプロバイダーチェーンで返される値をキャッシュするために、Aws\CacheInterface のインスタンスにキャッシュされた認証情報を渡します。

use Aws\Credentials\CredentialProvider; use Aws\PsrCacheAdapter; use Symfony\Component\Cache\Adapter\FilesystemAdapter; $cache = new PsrCacheAdapter(new FilesystemAdapter); $provider = CredentialProvider::defaultProvider(); $cachedProvider = CredentialProvider::cache($provider, $cache); $s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'credentials' => $cachedProvider ]);

クライアントへの認証情報の提供の詳細については、AWS SDK for PHP バージョン 3 の認証情報ガイドを参照してください。

注記

認証情報のロードおよび検証は、それが使用されるときまで遅延されます。

デバッグ

タイプ

bool|array

各転送に関するデバッグ情報を出力します。デバッグ情報には、トランザクションが準備されネットワーク経由で送信されるときの、トランザクションの状態の変更に関する情報が含まれています。デバッグ出力には、クライアントが使用する特定の HTTP ハンドラーに関する情報も含まれています (デバッグ cURL 出力など)。

true に設定すると、リクエストの送信時にデバッグ情報が表示されます。

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'debug' => true ]); // Perform an operation to see the debug output $s3->listBuckets();

または、以下のキーを持つ連想配列を指定できます。

logfn (callable)

ログメッセージで呼び出される関数。デフォルトでは、PHP のecho関数が使用されます。

stream_size (int)

ストリームのサイズがこの数より大きい場合、ストリームデータは記録されません。0 に設定すると、ストリームデータは一切記録されません。

scrub_auth (bool)

ログに記録されたメッセージからの認証データのスクラブを無効にするfalseには、 を設定します (つまり、 AWS アクセスキー ID と署名が に渡されますlogfn)。

http (bool)

を に設定falseして、下位レベルの HTTP ハンドラーのデバッグ機能 (詳細 cURL 出力など) を無効にします。

auth_headers (array)

置き換え先の値にマッピングされている、置き換えるヘッダーの、キーと値のマッピングに設定します。scrub_authtrue に設定されていない場合、これらの値は使用されません。

auth_strings (array)

置き換え先にマッピングするための正規表現の、キーと値のマッピングに設定します。scrub_authtrue に設定されている場合に、これらの値は認証データスクラバーで使用されます。

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'debug' => [ 'logfn' => function ($msg) { echo $msg . "\n"; }, 'stream_size' => 0, 'scrub_auth' => true, 'http' => true, 'auth_headers' => [ 'X-My-Secret-Header' => '[REDACTED]', ], 'auth_strings' => [ '/SuperSecret=[A-Za-z0-9]{20}/i' => 'SuperSecret=[REDACTED]', ], ] ]); // Perform an operation to see the debug output $s3->listBuckets();
注記

このオプションでは、httpデバッグオプションによって生成される基盤となる HTTP ハンドラー情報も出力されます。デバッグ出力は、 AWS SDK for PHPでの問題を診断する場合に非常に役立ちます。SDK で問題を開くときは、分離された障害ケースのデバッグ出力を指定してください。

stats

タイプ

bool|array

転送統計を SDK オペレーションによって返されるエラーと結果にバインドします。

true に設定すると、送信されたリクエストに関する統計情報が収集されます。

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'stats' => true ]); // Perform an operation $result = $s3->listBuckets(); // Inspect the stats $stats = $result['@metadata']['transferStats'];

または、以下のキーを持つ連想配列を指定できます。

retries (bool)

true に設定すると、再試行に関するレポートが有効になります。デフォルトでは、再試行の統計情報が収集されて、返されます。

http (bool)

を に設定trueして、下位レベルの HTTP アダプター (Word で返される値など GuzzleHttpTransferStats) から統計を収集できるようにします。HTTP ハンドラーが __on_transfer_stats オプションをサポートしている必要があります。HTTP統計は、関連付け配列のインデックス付き配列として返されます。各関連付け配列には、クライアントの HTTP ハンドラーによってリクエストに対して返される転送統計が含まれます。デフォルトでは無効になっています。

リクエストが再試行された場合、各リクエストの転送統計情報が返され、最初のリクエストの統計情報が $result['@metadata']['transferStats']['http'][0] に、2 回目のリクエストの統計情報が $result['@metadata']['transferStats']['http'][1] に入っています (以下同様)。

timer (bool)

true に設定すると、1 つのオペレーションの合計所要時間 (秒単位) をレポートするコマンドタイマーが有効になります。デフォルトでは無効になっています。

$s3 = new Aws\S3\S3Client([ 'region' => 'us-west-2', 'stats' => [ 'retries' => true, 'timer' => false, 'http' => true, ] ]); // Perform an operation $result = $s3->listBuckets(); // Inspect the HTTP transfer stats $stats = $result['@metadata']['transferStats']['http']; // Inspect the number of retries attempted $stats = $result['@metadata']['transferStats']['retries_attempted']; // Inspect the total backoff delay inserted between retries $stats = $result['@metadata']['transferStats']['total_retry_delay'];

エンドポイント

タイプ

string

ウェブサービスの完全な URI。これは、アカウント固有のエンドポイントを使用する AWS Elemental MediaConvert などのサービスに必須です。これらのサービスについては、describeEndpoints メソッドを使用してこのエンドポイントをリクエストしてください。

これは、カスタムエンドポイント (例: Amazon S3 または Amazon DynamoDB Local のローカルバージョン) に接続する場合にのみ必要です。

Amazon DynamoDB ローカルへの接続の例を次に示します。

$client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-east-1', 'endpoint' => 'http://localhost:8000' ]);

使用可能なAWS リージョンとエンドポイントのリストについては、 AWS リージョンとエンドポイントを参照してください。

endpoint_provider

タイプ

Aws\EndpointV2\EndpointProviderV2|callable

「サービス」や「リージョン」キーなど、オプションのハッシュを受け入れる EndpointProviderV2 または PHP callable のオプションインスタンス。NULL またはエンドポイントデータのハッシュ (「エンドポイント」キーが必要) を返します。

最小限のエンドポイントプロバイダーを作成する方法の例を次に示します。

$provider = function (array $params) { if ($params['service'] == 'foo') { return ['endpoint' => $params['region'] . '.example.com']; } // Return null when the provider cannot handle the parameters return null; });

endpoint_discovery

タイプ

array|Aws\CacheInterface|Aws\EndpointDiscovery\ConfigurationInterface|callable

エンドポイント検出は、エンドポイント検出をサポートするサービス API の正しいエンドポイントを識別して接続します。エンドポイント検出をサポートするが、これを必要としないサービスの場合、クライアントの作成中に endpoint_discovery を有効にします。サービスがエンドポイント検出をサポートしていない場合、この設定は無視されます。

Aws\EndpointDiscovery\ConfigurationInterface

サービスが指定するオペレーションのために、サービス API の適切なエンドポイントへの自動接続を有効にするオプションの設定プロバイダー。

Aws\EndpointDiscovery\Configuration オブジェクトでは 2 つのオプションを使用できます。1 つはエンドポイント検出が有効な場合にそれを示すブール値「enabled」で、もう 1 つはエンドポイントキャッシュのキーの最大数を示す整数「cache_limit」です。

作成されるクライアントごとに、エンドポイント検出の特定の設定を使用するために Aws\EndpointDiscovery\Configuration オブジェクトを渡します。

use Aws\EndpointDiscovery\Configuration; use Aws\S3\S3Client; $enabled = true; $cache_limit = 1000; $config = new Aws\EndpointDiscovery\Configuration ( $enabled, $cache_limit ); $s3 = new Aws\S3\S3Client([ 'region' => 'us-east-2', 'endpoint_discovery' => $config, ]);

複数のプロセスにわたってエンドポイント検出で返される値をキャッシュするために、Aws\CacheInterface のインスタンスを渡します。

use Aws\DoctrineCacheAdapter; use Aws\S3\S3Client; use Doctrine\Common\Cache\ApcuCache; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache), ]);

エンドポイント検出に配列を渡します。

use Aws\S3\S3Client; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => [ 'enabled' => true, 'cache_limit' => 1000 ], ]);

handler

タイプ

callable

コマンドオブジェクトとリクエストオブジェクトを受け入れて、GuzzleHttp\Promise\PromiseInterface オブジェクトで満たすかまたは Aws\ResultInterface で拒否する promise (Aws\Exception\AwsException) を返すハンドラーです。ハンドラーはターミナルであり、コマンドを満たすことになっているため、ハンドラーは next ハンドラーを受け入れません。ハンドラーが指定されていない場合は、デフォルトの Guzzle ハンドラーが使用されます。

Aws\MockHandler を使用して、模擬結果を返すか、または Mock 例外をスローできます。結果または例外をキューに入れると、 MockHandler はそれらを FIFO 順にキューに入れます。

use Aws\Result; use Aws\MockHandler; use Aws\DynamoDb\DynamoDbClient; use Aws\CommandInterface; use Psr\Http\Message\RequestInterface; use Aws\Exception\AwsException; $mock = new MockHandler(); // Return a mocked result $mock->append(new Result(['foo' => 'bar'])); // You can provide a function to invoke; here we throw a mock exception $mock->append(function (CommandInterface $cmd, RequestInterface $req) { return new AwsException('Mock exception', $cmd); }); // Create a client with the mock handler $client = new DynamoDbClient([ 'region' => 'us-east-1', 'handler' => $mock ]); // Result object response will contain ['foo' => 'bar'] $result = $client->listTables(); // This will throw the exception that was enqueued $client->listTables();

http

タイプ

array

HTTP によって作成された HTTP リクエストと転送に適用される一連の SDK オプションに設定します。

SDK では、次の設定オプションがサポートされています。

cert

タイプ

string|array

PEM 形式のクライアント側の証明書を指定します。

  • 証明書ファイルのみへのパスの文字列として設定します。

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['cert' => '/path/to/cert.pem'] ]);
  • パスとパスワードを含む配列として設定します。

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'http' => [ 'cert' => ['/path/to/cert.pem', 'password'] ] ]);

connect_timeout

サーバーへの接続の試行時に待機する秒数を記述する浮動小数点。0 に設定すると、無期限に待機します (デフォルト動作)。

use Aws\DynamoDb\DynamoDbClient; // Timeout after attempting to connect for 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'connect_timeout' => 5 ] ]);

デバッグ

タイプ

bool|resource

基盤となる HTTP ハンドラーにデバッグ情報を出力するように指示します。Word HTTPハンドラーによって提供されるデバッグ情報は異なります。

  • を渡trueしてデバッグ出力を STDOUT に書き込みます。

  • 特定の PHP ストリームリソースfopenにデバッグ出力を書き込むには、 から返された resource を渡します。

decode_content

タイプ

bool

基盤となる HTTP ハンドラーに、圧縮レスポンスの本文を膨張させるよう指示します。有効になっていない場合、圧縮されたレスポンス本文は GuzzleHttp\Psr7\InflateStream を使用して解凍されます。

注記

コンテンツデコードは、SDK のデフォルトの HTTP ハンドラーでデフォルトで有効になっています。下位互換性のために、このデフォルトは変更できません。圧縮されたファイルを Amazon S3 に保存する場合は、S3 クライアントレベルでコンテンツのデコードを無効にすることをお勧めします。

use Aws\S3\S3Client; use GuzzleHttp\Psr7\InflateStream; $client = new S3Client([ 'region' => 'us-west-2', 'http' => ['decode_content' => false], ]); $result = $client->getObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'massize_gzipped_file.tgz' ]); $compressedBody = $result['Body']; // This content is still gzipped $inflatedBody = new InflateStream($result['Body']); // This is now readable

delay

タイプ

int

リクエストを送信する前の遅延の時間数 (ミリ秒単位)。これは、リクエストを再試行する前に遅延するためによく使用されます。

expect

タイプ

bool|string

このオプションは、基盤となる HTTP ハンドラーに渡されます。デフォルトでは、リクエストの本文が 1 MB を超えたときに Expect: 100-Continue ヘッダーが設定されます。true または false により、すべてのリクエストでヘッダーが有効または無効になります。整数を使用する場合、この設定を超える本文を持つリクエストのみが、ヘッダーを使用します。整数として使用した場合、本文のサイズが不明なときは Expect ヘッダーが送信されます。

警告

Expect ヘッダーを無効にすると、サービスは認証エラーやその他のエラーを返すことができなくなる場合があります。このオプションの設定には注意が必要です。

progress

タイプ

callable

転送の進行状況が作成されたときに呼び出す関数を定義します。この関数は以下の次の引数を受け入れます。

  1. ダウンロードすることになっている総バイト数。

  2. これまでにダウンロード済みのバイト数。

  3. アップロードすることになっている総バイト数。

  4. これまでにアップロード済みのバイト数。

use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2' ]); // Apply the http option to a specific command using the "@http" // command parameter $result = $client->getObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'large.mov', '@http' => [ 'progress' => function ($expectedDl, $dl, $expectedUl, $ul) { printf( "%s of %s downloaded, %s of %s uploaded.\n", $expectedDl, $dl, $expectedUl, $ul ); } ] ]);

proxy

タイプ

string|array

proxy オプションを使用して、プロキシ経由で AWS サービスに接続できます。

  • すべてのタイプの URIs のプロキシに接続する文字列値を指定します。このプロキシ文字列値には、スキーム、ユーザー名、およびパスワードを含めることができます。例えば、"http://username:password@192.168.16.1:10" と指定します。

  • キーが URI のスキームであり、値が特定の URI のプロキシであるプロキシ設定の関連付け配列を指定します (つまり、「http」エンドポイントと「https」エンドポイントに異なるプロキシを指定できます)。

use Aws\DynamoDb\DynamoDbClient; // Send requests through a single proxy $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'proxy' => 'http://192.168.16.1:10' ] ]); // Send requests through a different proxy per scheme $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'proxy' => [ 'http' => 'tcp://192.168.16.1:10', 'https' => 'tcp://192.168.16.1:11', ] ] ]);

HTTP_PROXY 環境変数を使用して「http」プロトコル固有のプロキシを、HTTPS_PROXY 環境変数を使用して「https」固有のプロキシをそれぞれ設定できます。

sink

タイプ

resource|string|Psr\Http\Message\StreamInterface

sink オプションは、オペレーションのレスポンスデータのダウンロード先を制御します。

  • レスポンス本文を PHP ストリームにダウンロードfopenするには、 から返resourceされた を指定します。

  • ディスク上のファイルのパスを string 値として指定すると、レスポンス本文はディスク上の特定のファイルにダウンロードされます。

  • 特定の PSR ストリームオブジェクトにレスポンス本文をダウンロードするPsr\Http\Message\StreamInterfaceには、 を指定します。

注記

SDK は、デフォルトでレスポンス本文を PHP 一時ストリームにダウンロードします。つまり、本文のサイズが 2 MB に達するまでデータはメモリに保持され、2 MB に達した時点でそのデータはディスク上の一時ファイルに書き込まれます。

synchronous

タイプ

bool

synchronous オプションは、結果をブロックする予定の基になる HTTP ハンドラーに通知します。

ストリーム

タイプ

bool

trueに設定して、ウェブサービスからレスポンスのレスポンス本文を事前にダウンロードするのではなく、そのレスポンス本文をストリーミングするように基になる HTTP ハンドラーに指示します。例えば、Amazon S3 のストリームラッパークラスでは、データが確実にストリーミングされるように、このオプションを使用します。

timeout

タイプ

float

リクエストのタイムアウトを秒数で記述する浮動小数点。0 に設定すると、無期限に待機します (デフォルト動作)。

use Aws\DynamoDb\DynamoDbClient; // Timeout after 5 seconds $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'timeout' => 5 ] ]);

認証

タイプ

bool|string

verify http オプションを使用して、SDK のピア SSL/TLS 証明書の検証動作をカスタマイズできます。

  • を に設定trueして、SSL/TLS ピア証明書の検証を有効にし、オペレーティングシステムが提供するデフォルトの CA バンドルを使用します。

  • false に設定すると、ピアの証明書検証が無効になります (これは安全ではありません)。

  • CA 証明書バンドルのパスを指定する文字列に設定すると、カスタム CA バンドルを使用した検証が有効になります。

システムの CA バンドルが見つからず、エラーが表示された場合は、 SDK への CA バンドルへのパスを指定します。特定の CA バンドルが必要ない場合、Mozilla は一般的に使用される CA バンドルを提供しており、ここでダウンロードできます (これは cURL のメンテナーによって維持されます)。ディスクで CA バンドルを使用できるようになったら、ファイルへのパスを指すように openssl.cafile PHP .ini 設定を設定して、verifyリクエストオプションを省略できます。詳細については、cURL ウェブサイトの SSL 証明書を参照してください。

use Aws\DynamoDb\DynamoDbClient; // Use a custom CA bundle $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'verify' => '/path/to/my/cert.pem' ] ]); // Disable SSL/TLS verification $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http' => [ 'verify' => false ] ]);

http_handler

タイプ

callable

http_handler オプションは、SDK を他の HTTP クライアントと統合するために使用されます。http_handler オプションは、Psr\Http\Message\RequestInterface オブジェクトと、コマンドに適用する http オプションの配列を受け入れて、GuzzleHttp\Promise\PromiseInterface オブジェクトで満たすかまたは以下の例外データで拒否する Psr\Http\Message\ResponseInterface オブジェクトを返す関数です。

  • exception - (\Exception) 発生した例外。

  • response - (Psr\Http\Message\ResponseInterface) 受信したレスポンス (存在する場合)。

  • connection_error - (bool) true に設定すると、そのエラーが接続エラーとしてマークされます。この値を に設定すると、必要に応じて SDK が自動的にオペレーションを再試行trueできます。

SDK は、提供された をAws\WrappedHttpHandlerオブジェクトhttp_handlerでラップすることで、指定された を通常のhandlerオプションhttp_handlerに自動的に変換します。

デフォルトでは、SDK は HTTP ハンドラーとして Guzzle を使用します。ここで別の HTTP ハンドラーを指定するか、独自のカスタム定義オプションを Guzzle クライアントに提供できます。

TLS バージョンの設定

1 つのユースケースは、Curl が環境にインストールされていると仮定して、Guzzle with Curl で使用される TLS バージョンを設定することです。サポートされている TLS のバージョンに関する Curl バージョンの制約に注意してください。デフォルトでは、最新バージョンが使用されます。TLS バージョンが明示的に設定されていて、リモートサーバーがこのバージョンをサポートしていない場合、以前の TLS バージョンを使用する代わりにエラーが発生します。

クライアントオプションを true に設定し、TLS 接続出力を調べることで、特定のdebugクライアントオペレーションに使用される SSL バージョンを決定できます。その行は次のようになります。SSL connection using TLSv1.2

Guzzle 6 での TLS 1.2 の設定例:

use Aws\DynamoDb\DynamoDbClient; use Aws\Handler\GuzzleV6\GuzzleHandler; use GuzzleHttp\Client; $handler = new GuzzleHandler( new Client([ 'curl' => [ CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2 ] ]) ); $client = new DynamoDbClient([ 'region' => 'us-west-2', 'http_handler' => $handler ]);
注記

http_handler オプションは、指定されたどの handler オプションよりも優先されます。

profile

タイプ

string

「プロファイル」オプションは、HOME ディレクトリの認証情報ファイル (通常は ) から AWS 認証情報が作成されたときに使用するプロファイルを指定します~/.aws/credentials。この設定は AWS_PROFILE 環境変数をオーバーライドします。

注記

「プロファイル」オプションを指定すると、"credentials"オプションは無視され、 AWS 設定ファイル (通常は ~/.aws/config) の認証情報関連の設定は無視されます。

// Use the "production" profile from your credentials file $ec2 = new Aws\Ec2\Ec2Client([ 'version' => '2014-10-01', 'region' => 'us-west-2', 'profile' => 'production' ]);

認証情報と .ini ファイル形式の設定の詳細については、 AWS SDK for PHP バージョン 3 の認証情報を参照してください。

region

タイプ

string

必須

true

AWS 接続先のリージョン。利用可能なリージョンのリストについては、「AWS のリージョンとエンドポイント」を参照してください。

// Set the Region to the EU (Frankfurt) Region $s3 = new Aws\S3\S3Client([ 'region' => 'eu-central-1', 'version' => '2006-03-01' ]);

retries

タイプ

int|array|Aws\CacheInterface|Aws\Retry\ConfigurationInterface|callable

デフォルト

int(3)

クライアントに対して再試行モードと許可される最大再試行回数を設定します。0 を渡すと、再試行が無効になります。

次の 3 つの再試行モードがあります。

  • legacy - デフォルトのレガシー再試行実装

  • standard - 成功しそうもない再試行を防ぐため、再試行クォータシステムを追加

  • adaptive - 標準モードに基づいて構築され、クライアント側のレートリミッターを追加します。このモードは実験的と見なされることに注意してください。

再試行の設定は、モードと各リクエストに使用される最大試行回数で構成されます。設定は、次の優先順位に従って、いくつかの異なる場所で設定できます。

優先順位

再試行設定の優先順位は次のとおりです (1 は 2-3 を上書きします)。

  1. クライアント設定オプション

  2. 環境変数

  3. AWS 共有設定ファイル

環境変数

  • AWS_RETRY_MODElegacystandard、または adaptive に設定します。

  • AWS_MAX_ATTEMPTS - リクエストあたりの最大試行回数の整数値に設定

共有 Config ファイルキー

  • retry_modelegacystandard、または adaptive に設定します。

  • max_attempts - リクエストあたりの最大試行回数の整数値に設定

クライアント設定

次の例では、Amazon DynamoDB クライアントの再試行を無効にしています。

// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 0 ]);

次の例では、整数を渡します。デフォルトでは、再試行回数が渡された状態で legacy モードになります。

// Disable retries by setting "retries" to 0 $client = new Aws\DynamoDb\DynamoDbClient([ 'version' => '2012-08-10', 'region' => 'us-west-2', 'retries' => 6 ]);
Aws\Retry\Configuration オブジェクトは、2 つのパラメータ、

再試行モードとリクエストごとの最大試行回数の整数を受け付けます。この例では、

再試行設定の Aws\Retry\Configuration オブジェクトを渡します。

use Aws\EndpointDiscovery\Configuration; use Aws\S3\S3Client; $enabled = true; $cache_limit = 1000; $config = new Aws\Retry\Configuration('adaptive', 10); $s3 = new Aws\S3\S3Client([ 'region' => 'us-east-2', 'retries' => $config, ]);

この例では、再試行設定のために配列を渡します。

use Aws\S3\S3Client; $s3 = new S3Client([ 'region' => 'us-west-2', 'retries' => [ 'mode' => 'standard', 'max_attempts' => 7 ], ]);

この例では、Aws\CacheInterface のインスタンスを渡して、デフォルトの再試行設定プロバイダーから返された値をキャッシュします。

use Aws\DoctrineCacheAdapter; use Aws\S3\S3Client; use Doctrine\Common\Cache\ApcuCache; $s3 = new S3Client([ 'region' => 'us-west-2', 'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache), ]);

scheme

タイプ

string

デフォルト

string(5) "https"

接続時に使用するURIスキーム。SDK はデフォルトで「https」エンドポイントを使用します (つまり、SSL/TLS 接続を使用します)。scheme を「http」に設定することによって、暗号化されていない「http」エンドポイントでのサービスへの接続を試行できます。

$s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'scheme' => 'http' ]);

エンドポイントの一覧と http スキームをサポートするサービスについては、「AWS のリージョンとエンドポイント」を参照してください。

service

タイプ

string

必須

true

使用するサービスの名前。この値は、SDK によって提供されるクライアント ( などAws\S3\S3Client) を使用する場合にデフォルトで提供されます。このオプションは、SDK でまだ公開されていないが、ディスクで利用可能なサービスをテストする場合に役立ちます。

signature_provider

タイプ

callable

署名バージョン名 (例: v4)、サービス名、 AWS リージョンを受け入れ、Aws\Signature\SignatureInterfaceオブジェクトを返すか、プロバイダーが特定のパラメータの署名者を作成できるNULL場合に呼び出せる。このプロバイダは、クライアントで使用される署名者を作成するために使用されます。

クラスには、カスタマイズされた署名プロバイダーの作成Aws\Signature\SignatureProviderに使用できる SDK によって提供されるさまざまな関数があります。

signature_version

タイプ

string

サービスで使用されるカスタム署名バージョンを表す文字列 (例: v4)。オペレーションごとの署名バージョン MAY は、必要に応じて、このリクエストされた署名バージョンを上書きします。

次の例は、署名バージョン 4 を使用するように Amazon S3 クライアントを設定する方法を示しています。

// Set a preferred signature version $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'signature_version' => 'v4' ]);
注記

クライアント MUST signature_providerで使用される は、指定したsignature_versionオプションを作成できます。SDK signature_providerで使用されるデフォルトは、「v4」および「匿名」署名バージョンの署名オブジェクトを作成できます。

ua_append

タイプ

string|string[]

デフォルト

[]

HTTP ハンドラーに渡されるユーザーエージェント文字列に追加される文字列の文字列または配列。

use_aws_shared_config_files

タイプ

bool|array

デフォルト

bool(true)

false に設定して、「~/.aws/config’ and ‘~/.aws/credentials」で共有設定ファイルの確認を無効にします。これにより、AWS_CONFIG_FILE 環境変数が上書きされます。

validate

タイプ

bool|array

デフォルト

bool(true)

false に設定すると、クライアント側のパラメーター検証が無効になります。検証をオフにすると、クライアントのパフォーマンスがわずかに向上することがありますが、その違いは無視できる程度です。

// Disable client-side validation $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'eu-west-1', 'validate' => false ]);

検証オプションの連想配列に設定すると、以下の特定の検証の制約が有効になります。

  • required - 必須パラメーターが存在することを検証します (デフォルトでオン)。

  • min - 値の最小長さを検証します (デフォルトでオン)。

  • max - 値の最大長を検証します。

  • pattern - 値が正規表現と一致することを検証します。

// Validate only that required values are present $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'eu-west-1', 'validate' => ['required' => true] ]);

version

タイプ

string

必須

false

このオプションは、使用するウェブサービスのバージョン (例: 2006-03-01) を指定します。

SDK のバージョン 3.277.10 以降では、「バージョン」オプションは必要ありません。「バージョン」オプションを指定しない場合、SDK はサービスクライアントの最新バージョンを使用します。

サービスクライアントを作成するときに「version」パラメータが必要なのは 2 つの状況です。

  • 3.277.10 より前のバージョンの PHPSDK を使用します。

  • バージョン 3.277.10 以降を使用していて、「latest」以外のバージョンをサービスクライアントに使用したいと思っている。

例えば、次のスニペットは SDK のバージョン 3.279.7 を使用しますが、 の最新バージョンは使用しませんEc2Client

$ec2Client = new \Aws\Ec2\Ec2Client([ 'version' => '2015-10-01', 'region' => 'us-west-2' ]);

バージョン制約を指定すると、サービスに対して行われた互換性を破る変更の影響を受けないことが保証されます。

使用可能な API バージョンのリストは、各クライアントの API ドキュメントページにあります。特定の API バージョンをロードできない場合は、SDK のコピーを更新する必要がある場合があります。